Obsah:

Připojení senzoru DHT11/DHT22 ke cloudu pomocí desky založené na ESP8266: 9 kroků
Připojení senzoru DHT11/DHT22 ke cloudu pomocí desky založené na ESP8266: 9 kroků

Video: Připojení senzoru DHT11/DHT22 ke cloudu pomocí desky založené na ESP8266: 9 kroků

Video: Připojení senzoru DHT11/DHT22 ke cloudu pomocí desky založené na ESP8266: 9 kroků
Video: Measure Temperature and Humidity WiFi with ESP32 DHT11 and DHT22 - Robojax 2024, Prosinec
Anonim
Připojení senzoru DHT11/DHT22 ke cloudu pomocí desky založené na ESP8266
Připojení senzoru DHT11/DHT22 ke cloudu pomocí desky založené na ESP8266

V předchozím článku jsem připojil svoji desku NodeMCU založenou na ESP8266 ke službě Cloud4RPi. Nyní je čas na skutečný projekt!

Zásoby

Hardwarové požadavky:

  • Jakákoli deska založená na čipu ESP8266 (například NodeMCU)
  • Senzor DHT11 nebo DHT22

Software a služby:

  • Knihovna snímačů DHT od Adafruit - v1.3.7
  • Sjednocený senzor Adafruit - v1.0.3
  • cloud4rpi-esp-arduino-v0.1.0
  • Cloud4RPI - cloudový ovládací panel pro zařízení IoT
  • PlatformIO IDE pro VSCode

Krok 1: Změřte teplotu a vlhkost

Měření teploty a vlhkosti
Měření teploty a vlhkosti

Senzor DHT11 jsem již měl, a tak jsem se rozhodl použít jej pro měření teploty a vlhkosti. Vyberme si knihovnu Arduino pro čtení dat ze senzorů.

Registr Arduino obsahuje několik knihoven, z nichž jsem vybral tu nejoblíbenější.

Podle jejich úložiště GitHub jsme také povinni přidat balíček Adafruit Unified Sensor.

Krok 2: Vytvoření a konfigurace projektu

Vytvořit a konfigurovat projekt
Vytvořit a konfigurovat projekt

V první části jsem již popsal, jak vytvořit projekt PlatformIO a nainstalovat knihovny. Můj projekt se nazývá „MyNodeMCU“. Struktura je zobrazena výše.

Tento projekt je mírně upraveným příkladem Cloud4RPi. Rozhodl jsem se uložit token zařízení a pověření Wi-Fi do konfiguračního souboru místo kódu.

Soubor platform.io vypadá následovně:

[platformio] default_envs = nodemcuv2 [env: nodemcuv2] platform = espressif8266 framework = arduino board = nodemcuv2

Krok 3: Nainstalujte si knihovny

Nainstalujte si knihovny
Nainstalujte si knihovny

Instalace knihoven je celkem jednoduchá. Můžete to udělat z grafického rozhraní IDE nebo přidáním požadovaných názvů knihoven do sekce lib_deps souboru platform.io:

; … Lib_deps = cloud4rpi -esp -arduino Adafruit Unified Sensor knihovna build_flags = -D MQTT_MAX_PACKET_SIZE = D CLOUD4RPI_TOKEN = / "_ VAŠE_DEVICE_TOKEN _ \"

Přidané knihovny budou automaticky nainstalovány do podsložky projektu.

Hlavička main.cpp vypadá následovně:

#include #include #include #include "DHT.h"

Krok 4: Připojte snímač DHT11

Adafruit poskytuje příklad připojení snímače pomocí DHTtester.ino.

Tento kód inicializuje senzor a definuje strukturu pro uložení výsledku měření (v případě, že byl úspěšný):

#define DHTPIN 2 // Digitální pin připojený k senzoru DHT#definovat DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE); dht.begin (); //… struct DHT_Result {float h; float t; }; DHT_Result dhtResult;

Další funkce ukazuje, jak číst data ze senzorů a ukládat je do výše popsané datové struktury

void readSensors () {float h = dht.readHumidity (); // Čtení teploty jako Celsia (výchozí) float t = dht.readTemperature ();

// Zkontrolujte, zda některá čtení selhala, a ukončete

if (isnan (h) || isnan (t)) {Serial.println (F ("Failed to reading from DHT sensor!")); vrátit se; } dhtResult.h = h; dhtResult.t = t; }

Krok 5: Odesílání dat do cloudu

Jakmile tato data máme, dalším krokem je jejich odeslání do služby Cloud4RPi.

Stránka Cloud4RPi pro Arduino popisuje API knihovny, což je sada metod používaných k:

  • vytvářet, číst a aktualizovat proměnné,
  • odesílejte hodnoty proměnných do cloudu pomocí protokolu MQTT.

Knihovna podporuje tři typy proměnných: Bool, Numeric a String.

Pracovní postup knihovny začíná vytvořením instance API pomocí Tokenu zařízení z webu cloud4rpi.io (podrobnosti najdete v části 1 článku).

#if definováno (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #else Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!"); #endif

Poté deklarujte proměnné pro hodnoty DHT11:

c4r.declareNumericVariable ("DHT11_Temp"); c4r.declareNumericVariable ("DHT11_Hum");

Poté získejte data ze senzoru, uložte je do proměnných a publikujte data do Cloud4RPi:

c4r.setVariable ("DHT11_Temp", dhtResult.t); c4r.setVariable ("DHT11_Hum", dhtResult.h); c4r.publishData ();

Teplota a vlhkost se nemění rychle, takže odesílání více než jedné hodnoty za 5 minut není nutné.

Krok 6: Diagnostika

Cloud4RPi podporuje diagnostická data spolu s proměnnými hodnotami. Jako diagnostická data jsem použil provozuschopnost, sílu signálu Wi-Fi a IP adresu:

c4r.declareDiagVariable ("IP_Address"); c4r.declareDiagVariable ("RSSI"); // Síla WiFi signálu c4r.declareDiagVariable ("Uptime");

Poznámka: Funkce millis, kterou používám k získání uptime, se resetuje na nulu každých ~ 50 dní. Což je pro můj projekt víc než dost.

Následující kód nastavuje hodnoty diagnostických proměnných:

c4r.setDiagVariable ("RSSI", (String) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Address", WiFi.localIP (). toString ()); c4r.setDiagVariable ("Uptime", uptimeHumanReadable (currentMillis)); c4r.publishDiag ();

Funkce uptimeHumanReadable převádí milisekundy na praktickou formu:

Řetězec uptimeHumanReadable (bez znaménka dlouhé milisekundy) {static char uptimeStr [32]; nepodepsané dlouhé sekundy = milisekundy / 1000; bez znaménka dlouhé min = s / 60; nepodepsané int hodiny = min / 60; nepodepsané int dny = hodiny / 24; s -= min * 60; min -= hodiny * 60; hodiny -= dny * 24; sprintf (uptimeStr, "%d days%2.2d:%2.2d:%2.2d", (byte) days, (byte) hours, (byte) mins, (byte) secs); return String (uptimeStr); }

Funkce místo podivného velkého čísla vygeneruje řetězec takto 5 dní 10:23:14.

Krok 7: Spusťte a laděte projekt

Spustit a ladit projekt
Spustit a ladit projekt

Po kompilaci vytvořeného kódu a jeho flashování do NodeMCU se zařízení připojí ke cloudové službě a začne odesílat data.

Podrobnost protokolování můžete zvýšit nastavením proměnné preprocesoru CLOUD4RPI_DEBUG na 1 (přidejte -D CLOUD4RPI_DEBUG = 1 do sekce build_flags v souboru platform.io).

Dále otevřete web cloud4rpi.io a všimněte si nového zařízení online. Otevřete jej a zobrazte všechny hodnoty proměnných přijaté ze zařízení: senzor a diagnostiku.

Krok 8: Konfigurace řídicího panelu

Konfigurace řídicího panelu
Konfigurace řídicího panelu

V tomto kroku je datové připojení ke cloudu funkční. Nyní nakonfigurujme vizuální reprezentaci dat.

Pomocí uživatelského rozhraní konfigurace řídicího panelu jsem vytvořil následující řídicí panel.

Palubní desku lze sdílet, takže ji okamžitě sdílím se svým přítelem.

Krok 9: Závěr

Závěr
Závěr

Úplný kód projektu je k dispozici v hlavní části.

To je prozatím vše!

Otázky a návrhy jsou vítány v komentářích.

Doporučuje: