Electrokit Buggfix Plus
Aktuellt datum och tid: 09.41 2019-03-22

Alla tidsangivelser är UTC + 1 timme




Svara på tråd  [ 36 inlägg ]  Gå till sida Föregående  1, 2, 3  Nästa
Författare Meddelande
 Inläggsrubrik: Re: Enkel Mätinsamling?
InläggPostat: 16.23 2019-01-05 

Blev medlem: 09.51 2009-02-24
Inlägg: 133
Ort: Göteborg
Har inte kollat ELFA men tycker det brukar bli lite dyrt.. Hittade dessa hos electrokit som borde funka?

https://www.electrokit.com/produkt/blue ... 6-seriell/
https://www.electrokit.com/produkt/utve ... mpatibelt/

Men du behöver ändå en mjukvara på datorn som tar emot seriell data från blåtanden. Skulle tro att det kodmässigt blir rätt likt ut det som behövs för att ta emot data seriellt från usb.

Ett annat alternativ kan vara att köra via wifi och en ESP8266. Har själv en temperaturlogger baserat på en sån med ESPeasy installerat. Den pratar MQTT med en raspberry men det går att subscriba på dataflödet från en dator med.


Upp
 Profil  
 
 Inläggsrubrik: Re: Enkel Mätinsamling?
InläggPostat: 16.35 2019-01-05 

Blev medlem: 14.43 2007-06-14
Inlägg: 4017
Ort: Hälsingland
Behöver du det trådlöst?
Om inte så krånglar du till det i onödan. Anslut bara Arduinon och öppna Serial monitor och datan rullar fram.


Upp
 Profil  
 
 Inläggsrubrik: Re: Enkel Mätinsamling?
InläggPostat: 16.37 2019-01-05 
Användarvisningsbild

Blev medlem: 18.04 2009-08-16
Inlägg: 10504
Men kan inte blåtanden lagra data i en fil?
, precis som när man för över från mobilen till datorn.
Det är väldigt enkelt i java att öppna och läsa filer.


Upp
 Profil  
 
 Inläggsrubrik: Re: Enkel Mätinsamling?
InläggPostat: 16.43 2019-01-05 
Användarvisningsbild

Blev medlem: 18.04 2009-08-16
Inlägg: 10504
Borre skrev:
Behöver du det trådlöst?
Om inte så krånglar du till det i onödan. Anslut bara Arduinon och öppna Serial monitor och datan rullar fram.


Tänke väl att jag bygger en liten låda med värmeelement, tempsensor och ansluter en NTC.
Startar Arduinon - mäter temperaturen och beräknar NTC-motståndet och låter värmeelementet
bli varmare varpå jag mäter på nytt. Om jag kan ställa den prylen i tex kylskåpet så kan jag få
NTC-kurvan redan från låga temperaturer. Det vore praktiskt att slippa sladd.


Upp
 Profil  
 
 Inläggsrubrik: Re: Enkel Mätinsamling?
InläggPostat: 16.44 2019-01-05 

Blev medlem: 09.51 2009-02-24
Inlägg: 133
Ort: Göteborg
Nä en sån BT modul lägger sig som en COM port på datorn när den är ansluten, precis som en arduino gör. Så egentligen skulle du kunna börja utveckla med en arduino kopplad via usb och sen ifall det blir aktuellt med trådlöst koppla på en sån modul på arduinon utan att egentligen behöva koda om något på datorn.

Det var java du ville köra på dator-sidan va?
https://github.com/Fazecast/jSerialComm
Kanske är ett alternativ?


Upp
 Profil  
 
 Inläggsrubrik: Re: Enkel Mätinsamling?
InläggPostat: 16.50 2019-01-05 
Användarvisningsbild

Blev medlem: 18.04 2009-08-16
Inlägg: 10504
Det där har jag faktiskt sett förut.
Citera:
Ensure that the Visual Studio C++ Compiler is installed on your system.


Jag kan givetvis detta för dåligt ännu men http://rxtx.qbang.org/wiki/index.php/Main_Page
där finns en färdig 64-bitar variant och bra exempel för enklare USB-funktioner.


Upp
 Profil  
 
 Inläggsrubrik: Re: Enkel Mätinsamling?
InläggPostat: 17.39 2019-01-05 

Blev medlem: 11.20 2009-05-26
Inlägg: 5564
Ort: Kristinehamn
4kTRB skrev:
Men kan inte blåtanden lagra data i en fil?
, precis som när man för över från mobilen till datorn.
Det är väldigt enkelt i java att öppna och läsa filer.

Om du har Android så är det gjort på ett kick att göra en app som sparar mottagen data från BlueTooth som en textfil i din androdlur. Jag använder MIT App Inventor när jag gör mina appar. Obefintlig tröskel för att komma igång och göra appar.

Här är min app som tar emot data från braskaminen och ritar ett diagram. Den tar även emot SMS från en annan mobiltelefon och returnerar på ordern "braskamin" braskamindata via SMS till den andra mobilen i fall jag är utom räckhåll för Blue Tooth. Att även spara inkommen data i en fil är ett par rader till i appen.
Bilaga:
braskamindiagram.jpg


Logga in för att visa de filer som bifogats till detta inlägg.


Upp
 Profil  
 
 Inläggsrubrik: Re: Enkel Mätinsamling?
InläggPostat: 17.42 2019-01-05 
Användarvisningsbild

Blev medlem: 18.04 2009-08-16
Inlägg: 10504
Liten omväg, från Arduino till en fil på mobilen och sen vidare till datorn och där kan mitt java-program
läsa filen.

Kan man inte hoppa över steget med mobilen frågas?


Upp
 Profil  
 
 Inläggsrubrik: Re: Enkel Mätinsamling?
InläggPostat: 17.58 2019-01-05 

Blev medlem: 11.20 2009-05-26
Inlägg: 5564
Ort: Kristinehamn
Jo visst kan du det. Under förutsättning att du har en dator med Blue Tooth. Det brukar finnas på de flesta laptopdatorer. Om det inte finns så kan man ju hänga på en på USB-porten.


Upp
 Profil  
 
 Inläggsrubrik: Re: Enkel Mätinsamling?
InläggPostat: 19.12 2019-01-05 

Blev medlem: 09.51 2009-02-24
Inlägg: 133
Ort: Göteborg
4kTRB skrev:
Det där har jag faktiskt sett förut.
Citera:
Ensure that the Visual Studio C++ Compiler is installed on your system.


Jag kan givetvis detta för dåligt ännu men http://rxtx.qbang.org/wiki/index.php/Main_Page
där finns en färdig 64-bitar variant och bra exempel för enklare USB-funktioner.



Men du behöver väl inte bygga jSerialComm själv? Finns färdiga releaser att länka till.


Upp
 Profil  
 
 Inläggsrubrik: Re: Enkel Mätinsamling?
InläggPostat: 19.45 2019-01-11 
Användarvisningsbild

Blev medlem: 18.04 2009-08-16
Inlägg: 10504
Tackar!
Jag har köpt en Arduino Uno och så laddade jag hem jSerialComm som jag labbat med en bra stund nu.

Har fått det att lira med Java så jag kan låta Arduinon skicka data med Serial.write och sedan
lyckas jag på något vis få upp data som skickas i konsolen på Eclipse. Det är långt ifrån
självklart hur det fungerar mer i detalj men jag kan i vilket fall skapa en tvåradig tabell i
Arduinon och få upp samma i konsolen i Eclipse.

En sak till jag inte hajar är att om jag startar om java-programmet innan Arduinon skrivit klart
tabellen (jag kan inte ha IDE-monitorn igång samtidigt) är att tabellen i Eclipse konsolen
börjar skrivas ut på nytt från START tills p når 100 och com-porten stängs.

Arduinokoden
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
int n = 0;
int p = 0;
int o = 0;

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(13, OUTPUT);
  Serial.begin(19200);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB
  } 
}
void loop() {
      Serial.write("START\n");
      while(p<100){
        Serial.write("O");
        Serial.write(" ");
        Serial.print(o);
        Serial.write(" ");
        Serial.write("P");
        Serial.write(" ");
        Serial.print(p);
        Serial.write('\n');     
        delay(400);
        p = p+2;
        o = p+o+p;
      }               
  Serial.end();
}


Tabellen som skrivs ut i Monitorn på Arduino IDE:et
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
START
O 0 P 0
O 4 P 2
O 12 P 4
O 24 P 6
O 40 P 8
O 60 P 10
O 84 P 12
O 112 P 14
O 144 P 16
O 180 P 18
O 220 P 20
O 264 P 22
O 312 P 24
O 364 P 26
O 420 P 28
O 480 P 30
O 544 P 32
O 612 P 34
O 684 P 36
O 760 P 38
O 840 P 40
O 924 P 42
O 1012 P 44
O 1104 P 46
O 1200 P 48
O 1300 P 50
O 1404 P 52
O 1512 P 54
O 1624 P 56
O 1740 P 58
O 1860 P 60
O 1984 P 62
O 2112 P 64
O 2244 P 66
O 2380 P 68
O 2520 P 70
O 2664 P 72
O 2812 P 74
O 2964 P 76
O 3120 P 78
O 3280 P 80
O 3444 P 82
O 3612 P 84
O 3784 P 86
O 3960 P 88
O 4140 P 90
O 4324 P 92
O 4512 P 94
O 4704 P 96
O 4900 P 98


Upp
 Profil  
 
 Inläggsrubrik: Re: Enkel Mätinsamling?
InläggPostat: 19.57 2019-01-11 
Användarvisningsbild

Blev medlem: 18.04 2009-08-16
Inlägg: 10504
Så här blir det i Eclipse-konsolen utan att jag har stoppat programmet och startat det på nytt.

Jag tycker det verkar som när Arduinon skriver till porten så lagras data i en buffert som jag
sedan läser med java-programmet även om jag startar java lite senare.

Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
Antal tillgängliga seriella portar: 4
===========================================
HUAWEI Mobile Connect - 3G Modem öppen = false
HUAWEI Mobile Connect - 3G Application Interface (COM4) öppen = false
HUAWEI Mobile Connect - 3G PC UI Interface (COM5) öppen = false
Arduino Uno (COM9) öppen = false
Arduino Uno (COM9) öppnad = true
FlowControl 0
ReadTimeout 1500
START
O 0 P 0
O 4 P 2
O 12 P 4
O 24 P 6
O 40 P 8
O 60 P 10
O 84 P 12
O 112 P 14
O 144 P 16
O 180 P 18
O 220 P 20
O 264 P 22
O 312 P 24
O 364 P 26
O 420 P 28
O 480 P 30
O 544 P 32
O 612 P 34
O 684 P 36
O 760 P 38
O 840 P 40
O 924 P 42
O 1012 P 44
O 1104 P 46
O 1200 P 48
O 1300 P 50
O 1404 P 52
O 1512 P 54
O 1624 P 56
O 1740 P 58
O 1860 P 60
O 1984 P 62
O 2112 P 64
O 2244 P 66
O 2380 P 68
O 2520 P 70
O 2664 P 72
O 2812 P 74
O 2964 P 76
O 3120 P 78
O 3280 P 80
O 3444 P 82
O 3612 P 84
O 3784 P 86
O 3960 P 88
O 4140 P 90
O 4324 P 92
O 4512 P 94
O 4704 P 96
O 4900 P 98

port stängd: true


Kom gärna med tips, t.ex det där med serialPort.setComPortTimeouts(SerialPort.TIMEOUT_SCANNER, 2500, 0);
, finns det någon särskild vits med att utnyttja den raden?
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
import java.util.Scanner;
import com.fazecast.jSerialComm.SerialPort;

public class SerialMainScanner {

   public static void main(String[] args) {

      boolean AUnoFlag = false;
      int AUnoIndex = -1;
      SerialPort serialPort;
      Scanner arduinoScanIn = null;

      SerialPort[] sp = SerialPort.getCommPorts();
      System.out.println("Antal tillgängliga seriella portar: "+sp.length);
      System.out.println("===========================================");
      for(int j=0;j<sp.length;j++) {
         System.out.println(sp[j].getDescriptivePortName()+" öppen = "+sp[j].isOpen());
         if(sp[j].getDescriptivePortName().contains("Arduino Uno")){
            AUnoFlag = true;
            AUnoIndex = j;
         }
      }
      if(AUnoFlag) {
         serialPort = sp[AUnoIndex];
         serialPort.openPort();                   // Open connection
         serialPort.setBaudRate(19200);
         serialPort.setComPortTimeouts(SerialPort.TIMEOUT_READ_SEMI_BLOCKING, 1500, 0);
         //serialPort.setComPortTimeouts(SerialPort.TIMEOUT_SCANNER, 2500, 0);
         
         System.out.println(serialPort.getDescriptivePortName()+ " öppnad = "+serialPort.isOpen());         
         System.out.println("FlowControl "+serialPort.getFlowControlSettings());
         System.out.println("ReadTimeout "+serialPort.getReadTimeout());

         if((serialPort.bytesAvailable()>0)) {
            try
            {
               arduinoScanIn = new Scanner(serialPort.getInputStream());
            }
            catch(Exception  e)
            {
               e.printStackTrace();
            }
            arduinoScanIn.useDelimiter(" ");            
            System.out.println(arduinoScanIn.findInLine("START"));
            arduinoScanIn.nextLine();
            while(arduinoScanIn.hasNextLine())
            {
               try
               {
                  String line = arduinoScanIn.nextLine();
                  System.out.println(line);
               }
               catch(Exception e)
               {
                  arduinoScanIn.close();
                  e.printStackTrace();
               }               
            }
            System.out.println();
            arduinoScanIn.close();
         }

         serialPort.closePort();
         System.out.println("port stängd: "+!serialPort.isOpen());
      }
   }
}



Upp
 Profil  
 
 Inläggsrubrik: Re: Enkel Mätinsamling?
InläggPostat: 11.23 2019-01-12 
Användarvisningsbild

Blev medlem: 18.04 2009-08-16
Inlägg: 10504
Jag undrar om det finns någon som kan förklara följande:

Arduino-koden nedan ska ju avsluta efter 100 genomgångna värden.
Det hela avslutas med Serial.end();

loop, vad jag förstår kör koden på nytt men inte ges väl värdet på celsius på nytt 24?
while loopen ska ju hoppas över och så verkar vara fallet.

Men om jag stänger fönstret Serial Monitor och startar det igen så får jag en ny tabell.
Startar alltså monitorn Arduinon på samma sätt som man trycker på reset-knappen på
Arduino-kortet?
Kommentaren är hämtad från ett exempel som följer med IDE...
// the setup function runs once when you press reset or power the board

Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)


// the setup function runs once when you press reset or power the board
int celcius = 24;
int ohm = 500;

void setup() {
  Serial.begin(19200);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB
  } 
}
void loop() {
      Serial.write("START\n");
      while(celcius < 100){
        Serial.print(celcius);
        Serial.write(" ");
        Serial.print(ohm);
        Serial.write('\n');     
        delay(100);
        celcius++;
        ohm = -5.9*celcius+635;       
      }
      //delay(1);
      Serial.write("End from Aurdino!\n");               
      Serial.end();     
}


Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
START
24 500
25 487
26 481
27 475
28 469
29 463
30 458
31 452
32 446
33 440
34 434
35 428
36 422
37 416
38 410
39 404
40 399
41 393
42 387
43 381
44 375
45 369
46 363
47 357
48 351
49 345
50 340
51 334
52 328
53 322
54 316
55 310
56 304
57 298
58 292
59 286
60 281
61 275
62 269
63 263
64 257
65 251
66 245
67 239
68 233
69 227
70 222
71 216
72 210
73 204
74 198
75 192
76 186
77 180
78 174
79 168
80 163
81 157
82 151
83 145
84 139
85 133
86 127
87 121
88 115
89 109
90 104
91 98
92 92
93 86
94 80
95 74
96 68
97 62
98 56
99 50
End from Aurdino!


Upp
 Profil  
 
 Inläggsrubrik: Re: Enkel Mätinsamling?
InläggPostat: 11.26 2019-01-12 

Blev medlem: 21.06 2011-01-29
Inlägg: 798
> Startar alltså monitorn [om] Arduinon på samma sätt som man trycker på reset-knappen på Arduino-kortet?

Ja. Det är skitdumt, men så är det designat.


Upp
 Profil  
 
 Inläggsrubrik: Re: Enkel Mätinsamling?
InläggPostat: 11.29 2019-01-12 

Blev medlem: 14.43 2007-06-14
Inlägg: 4017
Ort: Hälsingland
Citera:
Startar alltså monitorn Arduinon på samma sätt som man trycker på reset-knappen på
Arduino-kortet?

Ja, när du öppna serial monitor resetas Arduinon.


Upp
 Profil  
 
Visa inlägg nyare än:  Sortera efter  
Svara på tråd  [ 36 inlägg ]  Gå till sida Föregående  1, 2, 3  Nästa

Alla tidsangivelser är UTC + 1 timme


Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 6 gäster


Du kan inte skapa nya trådar i denna kategori
Du kan inte svara på trådar i denna kategori
Du kan inte redigera dina inlägg i denna kategori
Du kan inte ta bort dina inlägg i denna kategori
Du kan inte bifoga filer i denna kategori

Sök efter:
Hoppa till:  
    Electrokit
Drivs av phpBB® Forum Software © phpBB Group
Swedish translation by Peetra & phpBB Sweden © 2006-2010