ESP8266 och Thingspeak 100% ”Mobilt”

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)

MobiltIOT

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.

graferna

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).

Eureka

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

ArduinoIde-1

 

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.

ArduinoIde-2-1

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

ArduinoIde-4

 

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)

del2 - aktivera JSON via bortmanager

 

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

 

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.

 

US232

TTL USB2.0 To 6Pin CH340G Converter

ESP8266-Koppling

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=";
Innan du skickar koden till din ESP8266, koppla pÄ en extern strömmatning med GPIO0 mot jord (Detta sÀtter ESP8266 i flash lÀge)

Kontrollera i menyn att du fortfarande har rĂ€tt kort valt samt att ”PORT” stĂ€mmer med com porten din enhet hamnade pĂ„.

ArduinoIde-3

 

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!

LaddaUppKod

 

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

http://www.arduinesp.com/thingspeak

 

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 tillhttp://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

4 reaktioner pĂ„ ”ESP8266 och Thingspeak 100% ”Mobilt””

  1. 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

  2. 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

  3. 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=”;

  4. 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

LĂ€mna en kommentar

Din e-postadress kommer inte publiceras.