- Komponenter kreves
- Kretsdiagram
- Thinger.io Oppsett for ESP8266 temperaturlogger
- IFTTT-oppsett for NodeMCU-datalogger
- Programmering av NodeMCU for datalogging
- Logge data på Thinger.io fra NodeMCU
- Opprette sluttpunkt i Thinger.io for å sende e-postvarsling
Vi har tidligere brukt NodeMCU til å logge temperaturdata i Google-arket. Nå skal vi sende data til Thinger.io IoT-skyen og vise dem i et attraktivt grafisk format. En BMP180-sensor er grensesnittet med NodeMCU ESP8266 for å samle temperatur-, fuktighets- og høydedataene som vil bli sendt til Thinger.io-plattformen. I denne opplæringen vil vi lære hvordan du administrerer forskjellige funksjoner på thinger.io-plattformen, som enheter, sluttpunkter, dataspann eller tilgangstokener.
Komponenter kreves
- NodeMCU ESP8266
- BMP180 Trykkføler
- Jumper Wires
- Brettbrett
Kretsdiagram
Kretsdiagram for denne ESP8266 dataloggeren er veldig grei, her er bare BMP180 sensoren grensesnittet med NodeMCU.
BMP180-sensoren bruker I2C-kommunikasjonsprotokollen. Så du må koble SCL- og SDA-pinnene til BMP180 til SCL- og SDA-pinnene (D1 og D2) på NodeMCU. Koble også V IN og GND-pinnen til BMP180 til 3,3 V og GND av NodeMCU. Ikke koble sensoren direkte til 5V, fordi den kan skade sensoren permanent.
For å lære mer om NodeMCU, sjekk forskjellige IoT-prosjekter basert på NodeMCU ESP8266.
Thinger.io Oppsett for ESP8266 temperaturlogger
Thinger.io er en åpen kildekodeplattform for tingenes internett. Det gir alle nødvendige verktøy for å prototype, skalere og administrere tilkoblede produkter på en veldig enkel måte. Thinger.io tilbyr tre viktige verktøy, dvs. Data Bucks, Dashboard og Endpoint for å jobbe med enhetsdata; disse verktøyene kan brukes til å visualisere enhetsdataene og utvide enhetens interoperabilitet.
Data Bucks: Data Bucks-verktøyet kan brukes til å lagre enhetsdata på en skalerbar måte, og programmere forskjellige samplingsintervaller eller registrere hendelser som er hevet av enheter.
Dashboard: Dashboard-verktøyet har noen paneler med tilpassbare widgets som kan opprettes på få minutter ved hjelp av dra og slipp-teknologi for å visualisere sanntid og lagrede data.
Endpoints: Endpoints kan brukes til å integrere plattformen med andre tjenester som IFTTT, tilpassede webtjenester, e-post eller ringe til andre enheter.
I denne ESP8266-loggingen skal vi utforske disse verktøyene.
For å sende data til Thinger.io, må du opprette en gratis konto på Thinger.io-plattformen og følge trinnene nedenfor for å koble til enheten.
Trinn 1: Det første trinnet er å opprette en ny enhet. For å opprette en ny enhet, klikk på Enheter i menyfanen og klikk deretter på Legg til enhet- knappen.
Fyll deretter skjemaet med enhets-ID, beskrivelse og legitimasjon eller generer tilfeldige referanser for enheten din, og klikk på " Legg til enhet ."
Det er alt; enheten din er klar til å koble til. I neste trinn vil vi programmere NodeMCU for å sende dataene til Thinger.io-plattformen.
IFTTT-oppsett for NodeMCU-datalogger
Her bruker vi IFTTT for å sende advarsler via e-post når temperaturen overskrider en grense. IFTTT (If This Then That) er en nettbasert tjeneste som vi kan lage kjeder av betingede utsagn, kalt applets. Ved hjelp av disse appletene kan vi sende e-post, Twitter, Facebook-varsler.
For å bruke IFTTT, logg inn på IFTTT-kontoen hvis du allerede har en eller opprette en konto.
Søk nå etter ' Webhooks ' og klikk på Webhooks i Services-delen.
Deretter klikker du på 'Dokumentasjon' i øvre høyre hjørne i Webhooks-vinduet for å hente den private nøkkelen. Kopier denne nøkkelen, denne nøkkelen vil bli brukt mens du oppretter Endpoint i Thinger.io.
Deretter oppretter du en applet ved hjelp av Webhooks and Email-tjenester . For å opprette en applet, klikk på profilen din og klikk deretter på ' Create. '
Nå, i neste vindu, klikker du på ' Dette ' -ikonet. Nå søker du etter Webhooks i søkseksjonen og klikker på " Webhooks ."
Velg nå ' Motta en nettforespørsel' -utløser og skriv inn hendelsesnavnet som en temp, og klikk deretter på opprett en utløser.
Etter dette klikker du på ' Then That' og deretter på Email.
Nå i e-post, klikk på 'send meg en e-post' , skriv inn e-postens emne og kropp, og klikk deretter på opprett handling. I det siste trinnet klikker du på ' Fullfør ' for å fullføre oppsett av applet.
Programmering av NodeMCU for datalogging
Den komplette koden for sending av data til Thinger.io er gitt på slutten av siden. Her forklarer vi noen viktige deler.
Start koden ved å inkludere alle nødvendige biblioteker. Den ThingerESP8266.h blir brukt til å etablere en forbindelse mellom den IOT plattformen og NodeMCU mens Adafruit_BMP085.h brukes til å lese den BMP-sensordata. Du kan installere ThingerESP8266.h- biblioteket fra Arduino IDEs biblioteksjef.
#inkludere
Deretter skriver du inn legitimasjon i koden, slik at enheten kan gjenkjennes og tilknyttes kontoen din.
#define USERNAME "Your Account Username" #define DEVICE_ID "NodeMCU" // Your Device Name #define DEVICE_CREDENTIAL "FcLySVkP8YFR"
Skriv deretter inn endepunktnavnet ditt. Endepunktet brukes til å integrere plattformen med eksterne tjenester som IFTTT, HTTTP-forespørsel, etc.
#define EMAIL_ENDPOINT "IFTTT"
Definer variablene som skal lagre dataene for trykk, temperatur og høyde.
int Trykk, temperatur, høyde;
Les inn sensordataene inne i tomrumsløyfen () . Den Pson datatype kan inneholde ulike datatyper. Så Pson-datatypen brukes til å motta flere verdier samtidig.
ting >> (pson & out) {out = bmp.readPressure () / 100; ut = bmp.readAltitude (); ut = bmp.readTemperature (); };
Bruk hvis betingelse for å ringe sluttpunktet hvis temperaturverdien går over 15 grader. Her er data sluttpunktnavnet.
hvis (temperatur> 15) {thing.call_endpoint (EMAIL_ENDPOINT, "data");} Serial.print ("Sending Data");
Logge data på Thinger.io fra NodeMCU
Koble nå BMP-sensoren til NodeMCU og last opp koden. NodeMCU vil bruke kontoopplysningene dine for å koble til enheten du opprettet tidligere. Hvis den kobles sammen, vil den vise tilkoblet, som vist på bildet nedenfor:
Du kan sjekke enhetsstatistikken din som overførte data, mottatte data, IP-adresse, tilkoblet tid, etc. ved å bare klikke på enhetsnavnet fra Enheter-menyen.
Når vi nå mottar dataene, vil vi lage et dashbord for å visualisere dataene ved hjelp av widgetene.
For å lage et Dashboard, klikk på Dashboards fra menyfanen og klikk deretter på ' Add Dashboard .'
Nå i neste vindu, skriv inn dashborddetaljene som dashboardnavn, ID og beskrivelse, og klikk deretter på Dashboard.
Etter dette, få tilgang til det nye dashbordet ved å klikke på Dashboard-navnet. Som standard vises dashbordet tomt. For å legge til modulene, må du først aktivere redigeringsmodus ved å klikke på bryteren øverst til høyre på dashbordet. Klikk deretter på ' Legg til widget' -knappen.
Når du klikker på " Legg til widget" -knappen, vil den vise en popup der du kan velge widgetype, bakgrunnsfarge osv. I mitt tilfelle har jeg valgt Gauge Widget.
Når du klikker på lagre, tar det deg til neste skjermbilde der du må velge kildeverdi, enhet, ressurs, verdi og oppdatering. Velg alle verdiene, og klikk deretter på Lagre-knappen.
Gjenta nå samme prosedyre for resten av variablene. Dashbordet mitt så slik ut:
Opprette sluttpunkt i Thinger.io for å sende e-postvarsling
Nå skal vi lage et sluttpunkt for å integrere Thinger.io med IFTTT. Et sluttpunkt kan kalles av enheten for å utføre en hvilken som helst handling, for eksempel å sende en e-post, sende en SMS, ringe et REST API, samhandle med IFTTT, ringe en enhet fra en annen konto, eller ring et hvilket som helst annet
For å opprette et sluttpunkt, klikk på alternativet "Endpoint" fra menyfanen og klikk deretter på "Add Endpoint."
Nå i neste vindu, skriv inn de nødvendige detaljene. Detaljene er:
Endpoint Id: Unik identifikator for endepunktet ditt.
Endpoint Description: Skriv en beskrivelse eller detaljert informasjon om endepunktet ditt.
Endpoint Type: Velg Endpoint type fra de gitte alternativene.
Navn på maker maker: Skriv inn navnet ditt på IFTTT-appleten.
Maker Channel Key: Din hemmelige nøkkel til Webhooks.
Etter dette, klikk på Test Endpoint for å sjekke om alt fungerer. Den skal sende deg en e-post med en advarsel om temperaturdataene.
I stedet for å bruke IFTTT Webhook Trigger, kan du sende en e-post eller Telegram-melding, eller du kan sende en HTTP-forespørsel ved hjelp av Endpoint-funksjonene.
Slik kan en NodeMCU ESP8266 brukes til å logge temperatur-, trykk- og høydedata fra BMP180-sensoren til internett.
En arbeidsvideo og fullstendig kode er gitt på slutten av siden.