- Componenten vereist
- Schakelschema
- Thinger.io Setup voor ESP8266 temperatuurlogger
- IFTTT-instelling voor NodeMCU-datalogger
- NodeMCU programmeren voor datalogging
- Gegevens loggen op Thinger.io vanuit NodeMCU
- Eindpunt maken in Thinger.io om e-mailwaarschuwing te verzenden
We hebben eerder NodeMCU gebruikt om temperatuurgegevens in het Google-blad te loggen. Nu gaan we hier gegevens naar de Thinger.io IoT-cloud sturen en deze in een aantrekkelijk grafisch formaat weergeven. Een BMP180-sensor is gekoppeld aan NodeMCU ESP8266 om de temperatuur-, vochtigheids- en hoogtegegevens te verzamelen, die naar het Thinger.io-platform worden verzonden. In deze zelfstudie leren we hoe we verschillende functies van het thinger.io-platform kunnen beheren, zoals apparaten, eindpunten, gegevensbuckets of toegangstokens.
Componenten vereist
- NodeMCU ESP8266
- BMP180 Druksensor
- Doorverbindingsdraden
- Breadboard
Schakelschema
Het schakelschema voor deze ESP8266 datalogger is heel eenvoudig, hier is alleen de BMP180-sensor gekoppeld aan NodeMCU.
De BMP180-sensor maakt gebruik van het I2C-communicatieprotocol. U moet dus de SCL- en SDA-pinnen van BMP180 verbinden met SCL- en SDA-pinnen (D1 en D2) van NodeMCU. Verbind ook de V IN en GND-pin van BMP180 met 3.3V en GND van NodeMCU. Sluit de sensor niet rechtstreeks aan op 5V, omdat dit de sensor permanent kan beschadigen.
Raadpleeg voor meer informatie over NodeMCU verschillende IoT-projecten op basis van NodeMCU ESP8266.
Thinger.io Setup voor ESP8266 temperatuurlogger
Thinger.io is een open-sourceplatform voor het internet der dingen. Het biedt alle benodigde tools om op een zeer eenvoudige manier een prototype te maken, te schalen en verbonden producten te beheren. Thinger.io biedt drie essentiële tools, namelijk Data Bucks, Dashboard en Endpoint om met apparaatgegevens te werken; deze tools kunnen worden gebruikt om de apparaatgegevens te visualiseren en de interoperabiliteit van de apparaten uit te breiden.
Data Bucks: Data Bucks-tool kan worden gebruikt om apparaatgegevens op een schaalbare manier op te slaan, verschillende bemonsteringsintervallen te programmeren of gebeurtenissen op te nemen die door apparaten zijn gegenereerd.
Dashboard: de Dashboard-tool heeft een aantal panelen met aanpasbare widgets die binnen enkele minuten kunnen worden gemaakt met behulp van slepen en neerzetten om de realtime en opgeslagen gegevens te visualiseren.
Endpoints: Endpoints kunnen worden gebruikt om het platform te integreren met andere services zoals IFTTT, aangepaste webservices, e-mails of om andere apparaten te bellen.
In deze ESP8266-logboekregistratie gaan we deze tools verkennen.
Om gegevens naar Thinger.io te verzenden, moet u een gratis account aanmaken op het Thinger.io-platform en de onderstaande stappen volgen om uw apparaat te verbinden.
Stap 1: De eerste stap is om een nieuw apparaat te maken. Om een nieuw apparaat aan te maken, klikt u op Apparaten in het menutabblad en vervolgens op de knop Apparaat toevoegen.
Vul vervolgens het formulier in met de apparaat-ID, beschrijving en inloggegevens of genereer willekeurige inloggegevens voor uw apparaat en klik op ' Apparaat toevoegen '.
Dat is alles; uw apparaat is klaar om verbinding te maken. In de volgende stap zullen we de NodeMCU programmeren om de gegevens naar het Thinger.io-platform te sturen.
IFTTT-instelling voor NodeMCU-datalogger
Hier gebruiken we IFTTT om e-mailwaarschuwingen te verzenden wanneer de temperatuur een limiet overschrijdt. IFTTT (If This Then That) is een webgebaseerde service waarmee we ketens van voorwaardelijke instructies kunnen maken, applets genaamd. Met behulp van deze applets kunnen we e-mails, Twitter, Facebook-meldingen verzenden.
Om de IFTTT te gebruiken, logt u in op het IFTTT-account als u er al een heeft of maakt u een account aan.
Zoek nu naar ' Webhooks ' en klik op de sectie Webhooks in Services.
Klik vervolgens in het Webhooks-venster op 'Documentatie' in de rechterbovenhoek om de privésleutel te krijgen. Kopieer deze sleutel, deze sleutel wordt gebruikt bij het maken van Endpoint in Thinger.io.
Maak daarna een applet met behulp van webhooks en e-mailservices . Om een applet aan te maken, klikt u op uw profiel en vervolgens op ' Aanmaken ' . '
Klik nu in het volgende venster op het pictogram ' Dit '. Zoek nu naar Webhooks in het zoekgedeelte en klik op ' Webhooks '.
Kies nu de trigger ' Een webverzoek ontvangen' en voer de naam van de gebeurtenis in als een temp en klik vervolgens op een trigger maken.
Klik hierna op ' Then That' en klik vervolgens op E-mail.
Klik nu in de e-mail op 'stuur mij een e-mail' en voer het onderwerp en de hoofdtekst van de e-mail in en klik vervolgens op actie maken. Klik in de laatste stap op ' Voltooien ' om de installatie van de applet te voltooien.
NodeMCU programmeren voor datalogging
De volledige code voor het verzenden van gegevens naar Thinger.io staat aan het einde van de pagina. Hier leggen we enkele belangrijke onderdelen uit.
Start de code door alle vereiste bibliotheken op te nemen. De ThingerESP8266.h wordt gebruikt om een verbinding tot stand te brengen tussen het IoT-platform en de NodeMCU, terwijl Adafruit_BMP085.h wordt gebruikt om de BMP-sensorgegevens te lezen. U kunt de ThingerESP8266.h- bibliotheek installeren vanuit de Arduino IDE's bibliotheekbeheerder.
# omvatten
Voer vervolgens inloggegevens in de code in, zodat het apparaat kan worden herkend en aan uw account kan worden gekoppeld.
#define USERNAME "Uw account gebruikersnaam" #define DEVICE_ID "NodeMCU" // Uw apparaatnaam #define DEVICE_CREDENTIAL "FcLySVkP8YFR"
Voer vervolgens uw eindpuntnaam in. Het endpoint wordt gebruikt om het platform te integreren met externe services zoals IFTTT, HTTTP-aanvraag, enz.
#define EMAIL_ENDPOINT "IFTTT"
Definieer de variabelen om de gegevens over druk, temperatuur en hoogte op te slaan.
int Druk, temperatuur, hoogte;
Lees de sensorgegevens in de lege lus () . Het pson- gegevenstype kan verschillende gegevenstypen bevatten. Dus het Pson-gegevenstype wordt gebruikt om meerdere waarden tegelijkertijd te ontvangen.
thing >> (pson & out) {out = bmp.readPressure () / 100; out = bmp.readAltitude (); out = bmp.readTemperature (); };
Gebruik if- voorwaarde om het eindpunt op te roepen als de temperatuurwaarde hoger is dan 15 graden. Hier zijn gegevens de naam van het eindpunt.
if (Temperatuur> 15) {thing.call_endpoint (EMAIL_ENDPOINT, "data");} Serial.print ("Gegevens verzenden");
Gegevens loggen op Thinger.io vanuit NodeMCU
Verbind nu de BMP-sensor met NodeMCU en upload de code. De NodeMCU gebruikt uw accountreferenties om verbinding te maken met het apparaat dat u eerder hebt gemaakt. Als het succesvol verbinding maakt, wordt verbonden weergegeven, zoals weergegeven in de onderstaande afbeelding:
U kunt uw apparaatstatistieken bekijken, zoals verzonden gegevens, ontvangen gegevens, IP-adres, tijd verbonden, enz. Door gewoon op de apparaatnaam te klikken in het menu Apparaten.
Aangezien we nu de gegevens ontvangen, zullen we een dashboard maken om de gegevens te visualiseren met behulp van de widgets.
Om een dashboard aan te maken, klikt u op Dashboards in het menutabblad en vervolgens op ' Dashboard toevoegen '.
Voer nu in het volgende venster de dashboardgegevens in, zoals de dashboardnaam, ID en beschrijving, en klik vervolgens op Dashboard.
Hierna opent u het nieuwe dashboard door op de Dashboard-naam te klikken. Standaard wordt het dashboard leeg weergegeven. Om de widgets toe te voegen, moet u eerst de bewerkingsmodus inschakelen door op de schakelaar rechtsboven op het dashboard te klikken. Klik vervolgens op de knop ' Widget toevoegen' .
Wanneer u op de knop ' Widget toevoegen' klikt, wordt een pop-upvenster weergegeven waarin u het type widget, de achtergrondkleur, enz. Kunt selecteren. In mijn geval heb ik de meterwidget geselecteerd.
Wanneer u op Opslaan klikt, gaat u naar het volgende scherm waar u de modus Bronwaarde, Apparaat, Bron, Waarde en Vernieuwen moet selecteren. Selecteer alle waarden en klik vervolgens op de knop Opslaan.
Herhaal nu dezelfde procedure voor de rest van de variabelen. Mijn dashboard zag er als volgt uit:
Eindpunt maken in Thinger.io om e-mailwaarschuwing te verzenden
Nu zullen we een eindpunt maken om de Thinger.io te integreren met IFTTT. Een eindpunt kan door het apparaat worden aangeroepen om elke actie uit te voeren, zoals het verzenden van een e-mail, het verzenden van een sms, het aanroepen van een REST API, interactie met IFTTT, het aanroepen van een apparaat vanuit een ander account of het aanroepen van een ander
Om een eindpunt te maken, klikt u op de optie 'Eindpunt' in de menutabbladen en klikt u vervolgens op 'Eindpunt toevoegen'.
Voer nu in het volgende venster de vereiste gegevens in. De details zijn:
Eindpunt-ID: unieke identificatie voor uw eindpunt.
Eindpuntbeschrijving: schrijf een beschrijving of gedetailleerde informatie over uw eindpunt.
Endpoint Type: Selecteer het Endpoint-type uit de gegeven opties.
Maker Event Name: Voer de naam van uw IFTTT-applet in.
Maker Channel Key: de geheime sleutel van uw Webhooks.
Klik hierna op Test Endpoint om te controleren of alles werkt. Het zou u een e-mail moeten sturen met een waarschuwing over de temperatuurgegevens.
In plaats van IFTTT Webhook Trigger te gebruiken, kunt u een e-mail- of telegrambericht verzenden, of u kunt een HTTP-verzoek verzenden met behulp van de Endpoint-functies.
Dit is hoe een NodeMCU ESP8266 kan worden gebruikt om temperatuur-, druk- en hoogtegegevens van de BMP180-sensor op internet te loggen.
Aan het einde van de pagina vindt u een werkende video en volledige code.