DIY: Temperaturlogging med Arduino og/eller ESP8266

ESP8266-TempLogg har fått ny kode. Største endring skjer dersom den ikke klarer å koble seg til de forhåndsprogrammerte nettverkene. Dette sikrer at den kan tas med til nye nett uten omfattende programmering.
Ved manglende nettverksoppkobling, går den fra å være en nettverksenhet til å bli en 'Hot-spot' med sitt eget nettverk. Dette nye nettverket kan du enkelt koble din mobil / bærbar pc mot og programmere enheten trådløst. Nytt trådløst nettverk kan da legges inn, og dette ligger i minnet også etter at strømmen tas (reboot).

Du finner all info i post #1

ESP8266-TempLogger kommer med følgende standardvalg
  • Sender data til ThingSpeak.com som er en gratis skytjeneste med forhåndsdefinerte intervaller.
  • Klargjort for 1 eller 4 målesensorer. Har man versjonen som håndterer 4, søker den selv og rapporterer kun på det antallet som faktisk er tilkoblet, men 4 er max på den versjonen. Antall over 4 må spesialkodes.
  • Forhåndsprogrammert med 2 SSID'er slik at den kan benyttes mot flere nettverk uten omprogrammering. I områder hvor flere av de forhåndsprogrammerte SSID'ene er tilgjengelig, vil de fungere som automatisk backup dersom en faller bort. Flere SSID'er kan lett legges inn i koden.
  • Dersom den ikke får kontakt med noen nett, går den fra å være en nettverks-enhet, til å bli en nettverks-router med sitt eget nettverk. Via mobil eller bærbar pc kan du koble deg direkte til enheten for programmering mot nytt trådløst nettverk. Dette lagres i eeprom og er automatisk tilgjengelig også etter omstart.
  • Sjekker hvorvidt den har kontakt med internett. 'Re-Connect' ved manglende 'ping'. Den forsøker da og koble seg til begge SSID'ene og eventuell SSID som er lagt inn i eeprom minnet.
  • Enheten kjører også sin egen web-server slik at man kan koble seg opp mot denne via nettverket den er tilkoblet. Flere funksjoner vil bli lagt til på web-serveren
  • Selvvalgt rapporteringsintervall til thingspeak.com. Standard er 1 minutt.
... og alt kjører på denne lille enheten.
ESP8266.jpg
 
Jeg har programmert flere funksjoner på den lille brikken. Føler jeg har nådd grensen for hva den trenger å levere :) . Alle funksjoner og web-sider ligger programmert på selve brikken slik at den ikke er avhengig av eksterne tjenester for å fungere. Mer info i post #1
ESP8266-Nett-funksjoner.jpg
 
Har ikke forsøkt. Det blir da en ekstra del å koble til...
Prisforskjellen er liten på en omformer og en DA18B20 sensor.
 
Mulig det er jeg som er helt talentløs her, men når jeg prøver å verifisere ESP8266_Temp_To_Thingspeak_02.ino sketchen får jeg følgende feilmeldinger.

Kode:
ESP8266_Temp_To_Thingspeak_02.ino: In function 'void loop()':
ESP8266_Temp_To_Thingspeak_02.ino:36:5: error: 'WiFiClient' was not declared in this scope
ESP8266_Temp_To_Thingspeak_02.ino:36:16: error: expected ';' before 'client'
ESP8266_Temp_To_Thingspeak_02.ino:43:7: error: 'client' was not declared in this scope
ESP8266_Temp_To_Thingspeak_02.ino:65:3: error: 'client' was not declared in this scope
ESP8266_Temp_To_Thingspeak_02.ino: In function 'void wifiConnect()':
ESP8266_Temp_To_Thingspeak_02.ino:76:5: error: 'WiFi' was not declared in this scope
ESP8266_Temp_To_Thingspeak_02.ino:77:29: error: 'WL_CONNECTED' was not declared in this scope
'WiFiClient' was not declared in this scope
 
Kompilerer helt fint hos meg. Jeg testet for sikkerhetsskyld med å laste ned versjonen som lå på serveren.
Det ser mest ut som om du har et gammelt bibliotek.
Først i koden finner du lenken til de bibliotekene jeg har benyttet for denne sketchen
[Edit] Du slo meg med egen feilretting på målstreken
 
Hva gjør man når arduinoen har sluttet å logge? Det nyttet tydeligvis ikke å trekke ut strømmen. Må man laste opp sketchen på ny?
 
Jeg har hatt noen logg-stopp (en i kvartalet) på arduinologgerne, men de har startet hver gang dersom jeg kutter strømmen. Sketchen ligger lagret i minnet og skal være upåvirket av kjøring eller strømbrudd. Så lenge den har kjørt før, skal den i prinsippet kjøre igjen ved reset.
Jeg vil anta at det er noe annet som er årsaken, men mistanken går alltid til koden først. Ihvertfall hos meg :) Flere ganger har jeg feilsøking i timer, for til slutt å finne en fysisk (koblings) feil et sted.
Etter hva jeg husker, kjører du uten display som kunne ha hjulpet deg med feilsøking. Da legger jeg inn noen ser.print eller serial.print som viser meg hvor det stopper.
Hvor stopper det for deg, eller er det slik at den ikke vil starte i det hele tatt?
Jeg har alltid kjørt mine Arduinologgere med breadboard / uten lodding. Flere har opplevd stor forbedring i stabilitet med lodding.
Med bruk av koding rett på ESP8266, har jeg enda ikke opplevd stopp. Grunnen er trolig fraværet av mange koblinger siden alt kjører på en brikke.
 
Merket at den sluttet å sende data til thingspeak nå på onsdag. Da er det nok dårlig kontakt som er årsaken. Har brukt breadboard, som ligger åpent sammen med arduinoen på toppen av kjøleskapet, så det er nok sensoren som har fått en rykk når jeg har åpnet døren. Skal få loddet alle ledningene når jeg får alle komponentene til ESP loggeren.

Takk for oppklaringen Sevland :)
 
Tilbake
Topp