- Komponenter krävs
- Kretsschema
- Thinger.io Inställning för ESP8266 temperaturlogger
- IFTTT-inställning för NodeMCU-datalogger
- Programmering av NodeMCU för dataloggning
- Logga data på Thinger.io från NodeMCU
- Skapa slutpunkt i Thinger.io för att skicka e-postvarning
Vi använde tidigare NodeMCU för att logga temperaturdata i Google-arket. Nu ska vi skicka data till Thinger.io IoT-molnet och visa det i ett attraktivt grafiskt format. En BMP180-sensor är gränssnitt med NodeMCU ESP8266 för att samla in temperatur, luftfuktighet och höjddata, som kommer att skickas till Thinger.io-plattformen. I den här självstudien lär vi oss hur man hanterar olika funktioner på thinger.io-plattformen, som enheter, slutpunkter, databuckar eller åtkomsttoken.
Komponenter krävs
- NodeMCU ESP8266
- BMP180 Trycksensor
- Bygeltrådar
- Bakbord
Kretsschema
Kretsschemat för denna ESP8266 datalogger är väldigt enkelt, här är endast BMP180-sensorn gränssnitt med NodeMCU.
BMP180-sensorn använder kommunikationsprotokollet I2C. Så du måste ansluta SCL- och SDA-stiften på BMP180 till SCL- och SDA-stiften (D1 och D2) på NodeMCU. Anslut också V IN och GND-stiftet på BMP180 till 3,3 V och GND till NodeMCU. Anslut inte sensorn direkt till 5V eftersom det kan skada sensorn permanent.
För att lära dig mer om NodeMCU, kolla olika IoT-projekt baserat på NodeMCU ESP8266.
Thinger.io Inställning för ESP8266 temperaturlogger
Thinger.io är en öppen källkodsplattform för sakernas internet. Det ger alla verktyg som behövs för att prototypa, skala och hantera anslutna produkter på ett mycket enkelt sätt. Thinger.io tillhandahåller tre viktiga verktyg, dvs. Data Bucks, Dashboard och Endpoint för att arbeta med enhetsdata; dessa verktyg kan användas för att visualisera enhetsdata och utöka enheternas interoperabilitet.
Data Bucks: Data Bucks-verktyget kan användas för att lagra enhetsdata på ett skalbart sätt, programmera olika samplingsintervall eller spela in händelser som tagits upp av enheter.
Instrumentpanel: Instrumentpanelverktyget har några paneler med anpassningsbara widgetar som kan skapas inom några minuter med hjälp av dra-och-släpp-teknik för att visualisera realtid och lagrad data.
Slutpunkter: Slutpunkter kan användas för att integrera plattformen med andra tjänster som IFTTT, anpassade webbtjänster, e-postmeddelanden eller ringa andra enheter.
I denna ESP8266-loggning kommer vi att utforska dessa verktyg.
För att skicka data till Thinger.io måste du skapa ett gratis konto på Thinger.io-plattformen och följa stegen nedan för att ansluta din enhet.
Steg 1: Det första steget är att skapa en ny enhet. För att skapa en ny enhet, klicka på Enheter i menyfliken och klicka sedan på knappen Lägg till enhet.
Fyll sedan i formuläret med enhets-ID, beskrivning och referenser eller generera slumpmässiga referenser för din enhet och klicka på " Lägg till enhet ."
Det är allt; din enhet är redo att anslutas. I nästa steg kommer vi att programmera NodeMCU för att skicka data till Thinger.io-plattformen.
IFTTT-inställning för NodeMCU-datalogger
Här använder vi IFTTT för att skicka e-postvarningar när temperaturen överskrider en gräns. IFTTT (If This Then That) är en webbaserad tjänst genom vilken vi kan skapa kedjor av villkorliga uttalanden, kallade applets. Med hjälp av dessa appletter kan vi skicka e-post, Twitter, Facebook-aviseringar.
För att använda IFTTT, logga in på IFTTT-kontot om du redan har ett eller skapa ett konto.
Sök nu efter " Webhooks " och klicka på Webhooks i avsnittet Services.
Klicka sedan på 'Dokumentation' i det övre högra hörnet i Webhooks-fönstret för att hämta den privata nyckeln. Kopiera den här nyckeln, den här nyckeln kommer att användas när du skapar Endpoint i Thinger.io.
Skapa sedan en applet med hjälp av Webhooks och e-posttjänster . För att skapa en applet, klicka på din profil och klicka sedan på ' Skapa. ''
Klicka nu på ikonen " Detta " i nästa fönster. Sök nu efter Webhooks i sökavsnittet och klicka på " Webhooks ."
Välj nu " Få en webbförfrågan" -utlösare och ange händelsens namn som en temp och klicka sedan på skapa en utlösare.
Efter detta klickar du på ' Then That' och sedan på Email.
Nu i e-post, klicka på "skicka mig ett e-postmeddelande", ange e-postens ämne och kropp och klicka sedan på skapa åtgärder. I det sista steget klickar du på " Slutför " för att slutföra appletinställningen.
Programmering av NodeMCU för dataloggning
Den fullständiga koden för att skicka data till Thinger.io ges i slutet av sidan. Här förklarar vi några viktiga delar.
Starta koden genom att inkludera alla nödvändiga bibliotek. Den ThingerESP8266.h används för att upprätta en anslutning mellan sakernas plattformen och NodeMCU medan Adafruit_BMP085.h används för att läsa BMP sensordata. Du kan installera ThingerESP8266.h- biblioteket från Arduino IDEs bibliotekshanterare.
#omfatta
Därefter anger du autentiseringsuppgifter i koden så att enheten kan kännas igen och associeras med ditt konto.
#define USERNAME "Your account Username" #define DEVICE_ID "NodeMCU" // Your Device Name #define DEVICE_CREDENTIAL "FcLySVkP8YFR"
Ange sedan ditt slutpunktsnamn. Slutpunkten används för att integrera plattformen med externa tjänster som IFTTT, HTTTP-begäran etc.
#define EMAIL_ENDPOINT "IFTTT"
Definiera variablerna för att lagra data om tryck, temperatur och höjd.
int Tryck, temperatur, höjd;
Läs in sensordata i hålrummet () . Den Pson datatyp kan hålla olika datatyper. Så Pson-datatypen används för att ta emot flera värden samtidigt.
sak >> (pson & ut) {ut = bmp.readPressure () / 100; ut = bmp.readAltitude (); ut = bmp.readTemperature (); };
Använd if villkoret för att anropa slutpunkten om temperaturvärdet går över 15 grader. Här är data slutpunktens namn.
if (Temperatur> 15) {thing.call_endpoint (EMAIL_ENDPOINT, "data");} Serial.print ("Sending Data");
Logga data på Thinger.io från NodeMCU
Anslut nu BMP-sensorn till NodeMCU och ladda upp koden. NodeMCU använder dina kontouppgifter för att ansluta till enheten som du skapade tidigare. Om den ansluts framgångsrikt kommer den att visas ansluten, som visas i bilden nedan:
Du kan kontrollera din enhetsstatistik som överförd data, mottagen data, IP-adress, tidsanslutning etc. genom att bara klicka på enhetsnamnet från Enheter-menyn.
Eftersom vi nu tar emot data kommer vi att skapa en instrumentpanel för att visualisera data med hjälp av widgetarna.
För att skapa en Dashboard, klicka på Dashboards från menyfliken och klicka sedan på " Lägg till Dashboard ."
Nu i nästa fönster anger du instrumentpanelens detaljer som instrumentpanelens namn, ID och beskrivning och klickar sedan på instrumentpanelen.
Efter detta öppnar du den nya instrumentpanelen genom att klicka på instrumentpanelens namn. Som standard visas instrumentbrädan tom. För att lägga till widgets måste du först aktivera redigeringsläget genom att klicka på den övre högra reglaget på instrumentpanelen. Klicka sedan på knappen " Lägg till widget" .
När du klickar på knappen " Lägg till widget" visas en popup där du kan välja widgettyp, bakgrundsfärg osv. I mitt fall har jag valt Gauge Widget.
När du klickar på spara tar det dig till nästa skärm där du måste välja läget Källvärde, Enhet, Resurs, Värde och Uppdatera. Markera alla värden och klicka sedan på Spara-knappen.
Upprepa nu samma procedur för resten av variablerna. Min instrumentpanel såg ut så här:
Skapa slutpunkt i Thinger.io för att skicka e-postvarning
Nu skapar vi en slutpunkt för att integrera Thinger.io med IFTTT. En slutpunkt kan anropas av enheten för att utföra alla åtgärder, som att skicka ett e-postmeddelande, skicka ett SMS, ringa ett REST API, interagera med IFTTT, ringa en enhet från ett annat konto eller ring någon annan
För att skapa en slutpunkt, klicka på alternativet "slutpunkt" från menyflikarna och klicka sedan på "Lägg till slutpunkt".
Nu i nästa fönster anger du önskad information. Detaljerna är:
Endpoint Id: Unik identifierare för din endpoint.
Endpoint Description: Skriv en beskrivning eller detaljerad information om din Endpoint.
Endpoint Type: Välj slutpunkttyp från de givna alternativen.
Maker Event Name: Ange ditt IFTTT-appletnamn.
Maker Channel Key: Din Webhooks hemliga nyckel.
Klicka sedan på Testa slutpunkt för att kontrollera om allt fungerar. Det ska skicka ett e-postmeddelande med en varning om temperaturdata.
Istället för att använda IFTTT Webhook Trigger kan du skicka ett e-post- eller telegrammeddelande eller så kan du skicka en HTTP-begäran med hjälp av Endpoint-funktionerna.
Så här kan en NodeMCU ESP8266 användas för att logga temperatur-, tryck- och höjddata från BMP180-sensorn till internet.
En arbetsvideo och fullständig kod ges i slutet av sidan.