Jag har nu kört ThingSpeak några dagar och insett många av fördelarna med att skicka data direkt till internet med enkla http kommandon. Jag bestämde mig för att ta WIFI projekten baserade på ESP8266 ett steg längre och bygga nått riktigt MOBILT!
Resultatet blev följande:
WIFI sensor (ESP8266) med temperatur & luftfuktighet (DHT11) och en mobiltelefon som WIFI hotspot. Vilket gör det möjligt att köra den överallt! (Det går att köra vanligt WIFI med)
Detta är VÄLDIGT billigt sätt att övervaka olika fastigheter utan krav på fast internetuppkoppling eller specialprogram. Just den här telefonen klarar upp till 10 samtidiga enheter, vilket gör det möjligt att koppla upp WIFI sensorer i många olika rum, och sedan rapporterar direkt till internet. Jag kommer att lägga till fler typer av sensorer allt eftersom jag bygger dom 🙂
Jag har gjort en guide på allt som behövs för att själv bygga detta själv nedan
* Detta är väll värt ett Gilla / Dela *
Jag skickar data lite sporadisk eftersom jag kopplat just den här sensorn till en mobiltelefon för tillfället. Det skulle gå lika bra att koppla upp den på WIFI hemma och skippa mobiltelefonen helt om man så önskar.
Data som skickats via mobilnätet
Bakgrund
Tidigare köpte jag ett kontantkort till mitt sms projektet (Vera). Jag fick en telefon på köptet utan extra kostnad (Sony XPERIA med Android), den har inte använts alls utan legat och samlat damm… Antar att det är fler än jag som har mobiltelefoner liggandes (vilket kanske är tur nu).
Jag insåg att telefonen har ju allt som behöver för att göra en mobil övervakning med inbyggd batteribackup! Med den här lösningen går det att övervaka sommarstugor, jaktstugor osv. Allt som krävs att det finns GSM / Edge eller bättre för att transportera data till Internet. Jag kommer att bygga fler sensorer och spinna vidare på den här lösningen (Observera att det går lika bra med det vanligt WIFI hemma med)
Nedan är ALLT som behövs för att själv bygga detta 🙂
- DHT11
- ESP8266
- Mobiltelefon + kontantkort med datatrafik
- LD1117V33 Transistor.
- TTL USB2.0 To 6Pin CH340G Converter
Steg för steg hur jag gjorde:
Den första delen av guiden beskriver hur jag laddade in stöd för ESP8266 direkt i Arduino verktyget.
1 – Ladda hem Arduino IDE (för tillfället ARDUINO 1.6.5)
Starta Arduino IDE och gå till Inställningar
2 – Lägg nu till sökvägen till http://arduino.esp8266.com/stable/package_esp8266com_index.json enligt bilden nedan. Efter du tryckt på ”OK” och fått detta sparat, starta om Arduino programvaran för att vara säker på att konfigurationen ska laddas in.
3 – För att hämta hem komponenterna till Arduino IDE gå till: Verktyg \ kort (det kan stå nått annat än det gör för mig, exempelvis Arduino Uno) \ Bords Manager
4 – Om allt har gått bra så bör du längre ner i listan nu se: ESP8266 by ESP8266 Community, välj där installera ( ca 200 MB kommer att laddas hem)
5 – KLART! Nu har du möjlighet att köra i stort sett all din Arduino kod på ESP8266 (inte allt men mycket!)
Del 2 – Skapa ett konto hos ThingSpeak genom att följa guiden
- https://www.automatiserar.se/guide-logga-till-thingspeak/ ( tar ca 3 – 5 minuter att fixa )
- Det går även att skicka data till andra tjänster, jag har dock valt detta eftersom det färdiga scriptet innehöll all kod för just ThingSpeak.
DEL 3 – Ladda in programmet till ESP8266
Hämta koden från: http://www.arduinesp.com/arduinesp. Observera att jag inte har skrivit någon del av koden, utan jag har bara nyttjat det dom delade 🙂
Hämta även DHT11 koden om du inte har den (finns här: DHT11.zip), packa upp den i din Arduino mapp under ”libraries”, i mitt fall blev sökvägen: \arduino-1.6.5-r2\libraries\DHT-sensor-library-master
När detta är klart koppla in din ESP8266 enligt följande skiss med hjälp av en
Uppkoppling:
ESP8266 nyttjar inte 5V som Arduino och många andra enheter, därför är det viktigt att USB TTL programmeraren som används konverterar signalen från RXD och TXD ner till 3.3V. Det går att använda en Arduino som programmerare med (förklarar dock inte hur man gör det här). ESP8266 kan dra upp till 200mA vilket är för mycket för USB porten, enheten behöver därför matas från en separat strömmatning. Jag nyttjar en LD1117V33 spänningsregulator för att kunna köra spänningar mellan ~3.7V – 15V.
TTL USB2.0 To 6Pin CH340G Converter
Layout på ESP8266 (sett uppifrån)
Koppla upp enheten.
- USB TTL programmeraren => JORD
- EPS8266 – RXD => TXD (usb TTL programmeraren)
- ESP8266 – TXD => RXD (usb TTL Programmeraren)
- ESP8266 – GND => JORD
- ESP8266 – VCC => 3.3V
- ESP8266 – RST => 3.3V
- ESP8266 – CH_PD => 3.3V
- GPIO0 – JORD (VID programmering, kopplas bort efter programmering)
Ladda upp konfiguration till din enhet:
När du öppnat Arduino IDE:n så är det bara att klistra in koden
Editera följande:
- apiKey: Den du får efter att du registrerat dig och skapat en kanal på ThingSpeak
- ssid: Ditt Wifi hemma eller det som delas från mobilen.
- password: Lösenordet för att få åtkomst till ditt WIFI
- field(X): (byt ut X mot den kanal du vill skicka data till på Thingspeak, 1-8 är giltigt)
Exempel på hur det ser ut i koden.
String apiKey =
"DinAPIKEY-Thingspeak"
;
const
char
* ssid =
"ssid"
;
const
char
* password =
"password"
;
postStr +=
"&field1="
;
postStr += String(t);
postStr +=
"&field2="
;
Kontrollera i menyn att du fortfarande har rätt kort valt samt att ”PORT” stämmer med com porten din enhet hamnade på.
Nu är det bara att ladda upp koden till din esp8266, fungerar allt ok så bör en blå diod blinka på ESP8266. Blinkar inte den så är det något som är felkopplat eller enheten matas med för lite ström. Jag missade att koppla in Jord en gång, vilket fick enheten att lysa svagt röd och bli riktigt varm!
Nu är det bara att koppla upp enheten enligt följande:
ESP8266 – GND => JORD
ESP8266 – VCC => 3.3V
ESP8266 – RST => 3.3V (på bilden är den kopplad på annat sätt) Jag har dock kör den till 3.3V och det fungerar bra.
ESP8266 – CH_PD => 3.3V
GPIO2 – Pinne två på DHT11
Det va allt! Nu har du byggt en WIFI sensor som rapporterar data till ThingSpeak! (Köper man ESP8266 från Ebay så kostar dom ca 20kr st)
Källor och bilder:
- STORT tack till ”http://www.arduinesp.com/thingspeak” för att ni delar med er av kod och bilder!
- http://www.arduinesp.com/thingspeak – ALL Kod i projektet kommer från den sidan, jag tar inte cred för den alls utan uppskattar att fler delar sin kod 🙂
Tänk på att kontrollera alla kopplingar och bekräfta allt du läser nån gång extra! Jag har gått igenom detta några gånger och tycker att allt ser ok ut.
// Ispep

Skribent:
Markus Jakobsson har mer än 10 års erfarenhet inom smarta hem, så han har hunnit testa och lära sig det mesta! Men fullärd blir man aldrig dock aldrig 🙂
TIPS:
Vill gärna tipsa om ett inlägg där du hittar grupperad information om smarta hem: Automatiserar.se/smarta-hem/
Skulle du mot förmodan inte hittat det du sökte kommer du troligen hitta det här: Automatiserar.se/sok-om-hemautomation/
Vill du diskutera smarta hem så har vi en kanal på Facebook med +7000 medlemmar: Smartare hem & Hemautomation | Facebook
Sedan början av 2023 har vi skapat mer material på Youtube kanalen: Stötta oss gärna genom att kolla in filmerna där och följa kanalen
Övrigt
Du kanske uppskattade och fick nytta av det här inlägget och vill hjälpa sidan Automatiserar.se?
Swisha gärna en slant till kaffe på 0705470065 om du vill stötta bloggen. Då visar du din uppskattning av den tid vi lägger på Bloggen och vi kan fortsätta driva sidan helt utan reklam. Du kan även stötta bloggen genom att köpa någon av våra smarta hållare.
Alla bidrag vi får går till att täcka driftkostnaderna för bloggen, samt att köpa den teknik vi kan skriver om på bloggen.
Om bloggen:
Vi kör sidan helt på fritiden, därigenom helt oberoende och gör detta för att det är roligt och lärorikt.
Vi hoppas att du som läsare hittat ett inlägg som hjälper dig att automatisera mera.
Gillade du bloggen så dela den gärna med vänner, och var det något du inte tyckte var allt för bra så hör av dig så vi får veta!
Stort tack för att du tog dig tid att läsa vårt inlägg.
Med vänliga hälsningar Markus Jakobsson
Allt går att automatisera!
Intressant!
Jag hittar dock ett par små fel.
Under rubriken uppkoppling skriver du:
”ESP8266 kan dra upp till 200mAh vilket är för mycket för USB porten”
Det skall stå 200mA
Ampere är ett mått på strömmen.
Ah betyder AmpereHours = amperetimmar dvs. ett mått på energi (t.ex. energiinnehållet i ett batteri).
Under samma rubrik skriver du:
”Jag nyttjar en LD1117V33 Transistor för att kunna köra spänningar mellan ~3.7V – 15V.”
LD1117V33 är en spänningsregulator, det enda den har gemensamt med transistorer är att den är byggd i en TO220 kapsel (och så innehåller den ett antal transistorer).
Vänliga hälsningar
Tony
Stort tack Tony för att du tog dig tid att svara på felen du hittade! Det uppskattar jag enormt mycket. Ser du mer saker som du inte tycker stämmer så hör av dig direkt så korrigerar vi 🙂
Håller för tillfället på att testa ESP8266-12E, kommer snart några roligt byggen baserat på det med.
// Ispep
Hej Automatiserar!
När jag kopierar in texten nedan och kompletterar koden i länken ni angett får jag ett felmeddelande då koden ska verifieras, felmeddelandet lyder: ’postStr’ does not name a type. Vad göra? 🙂
postStr +=”&field1=”;
postStr += String(t);
postStr +=”&field2=”;
Kontrollera så du har placerat detta runt rad 59
String postStr = apiKey;
postStr +=”&field1=”; // fält 1 i thingspeak
postStr += String(t);
postStr +=”&field2=”; // fält 2 i thingspeak
postStr += String(h);
postStr += ”\r\n\r\n”;
Verkar även som att det är en bugg i Arduino 1.6.5 nu… när man kompilerar så dyker följande upp :
d:\ivan\projects\arduinoesp\toolchain\dl\esp-newlib\build\xtensa-lx106-elf\newlib\libm\math/../../../../../newlib/libm/math/w_sqrt.c:63: undefined reference to `__ieee754_sqrt’
collect2.exe: error: ld returned 1 exit status
står lite om hur man ska lösa det här https://github.com/esp8266/Arduino/issues/612 ( har själv inte hunnit testa detta )
// Ispep