Arduino temperaturlogger + Thingspeak

Så da er det eneste jeg trenger å endre i koden er(se uthevet):

temperatur1 = (sensors.getTempCByIndex(0));
temperatur2 = (sensors.getTempCByIndex(1));

...
Serial.print("Temperature for the device 2 (index 1) is: ");
Serial.println(sensors.getTempCByIndex(1));

...
postStr +="&field1=";
postStr += String(t);

Dette vil i hvert fall skrive ut temperaturen fra den andre sensoren, men du sender jo ikke denne verdien til ThingSpeak. Litt usikker på hvorfor du tilordner to variabler som aldri brukes?
Du kan fikse sending av to temperaturer ved å legge til en linje rett under koden over:

postStr += "&field2=" + String(sensors.getTempCByIndex(1));

Men hvorfor ikke bare bruke koden som det er linket til i innlegg #2? Den er mye mer robust, og det brukes også et ThingSpeak-library som du finner her: https://github.com/mathworks/thingspeak-arduino
Der finner du mange eksempler også.
 
Fjern dette:
Kode:
float h = (sensors.getTempCByIndex(0));
float t = (DallasTemperature::toFahrenheit(h));


Så forandrer du dette:
Kode:
Serial.print("Temperature for the device 1 (index 0) is: ");
Serial.println(sensors.getTempCByIndex(0));
Serial.print("Temperature for the device 2 (index 1) is: ");
Serial.println(sensors.getTempCByIndex(1));


Til dette, fordi du allerede har lagret temperaturene i variablene temperatur1 og temperatur2:
Kode:
Serial.print("Temperature for the device 1 (index 0) is: ");
Serial.println(temperatur1);
Serial.print("Temperature for the device 2 (index 1) is: ");
Serial.println(temperatur2);


Så forandrer du Thingspeak-koden fra:
Kode:
postStr +="&field1=";
postStr += String(t);


Til:
Kode:
postStr +="&field1=";
postStr += String(temperatur1);
postStr +="&field2=";
postStr += String(temperatur2);

Jeg ville også fjernet alle kommentarene og Serial.print-linjene for å få en mer oversiktlig kode, du har ikke bruk for dem når du har temperaturene på Thingspeak. Jo færre linjer jo lettere er det å skjønne logikken i koden.

Lykke til!
 
Sist redigert:
Tilbake
Topp