Obsah:
- Krok 1: ESP32 Pinout
- Krok 2: Pinout NodeMCU
- Krok 3: MQTT
- Krok 4: Sestavení
- Krok 5: Diagram
- Krok 6: Knihovny
- Krok 7: Knihovna pro čtení teploty a vlhkosti
- Krok 8: Knihovna MQTT
- Krok 9: MQTT.ino
- Krok 10: Grafika
- Krok 11: Soubory
Video: IBM Watson s ESP32 jako koncovým bodem: 11 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Dnes zde zveřejňuji první video ze série o tom, jak připojit zařízení Endpoint pomocí ESP32 a poté jej odeslat do cloudové služby. V této konkrétní epizodě vám ukážu, jak odesílat informace ze snímače DHT22 pomocí protokolu MQTT pro IBM Watson.
Nejprve představíme MQTT, což je protokol stroj-stroj používaný v IoT (Internet of Things). Pomocí tohoto protokolu také odešleme data ze snímače teploty a vlhkosti a poté zkontrolujeme graf s těmito údaji na webové stránce.
Krok 1: ESP32 Pinout
Umístil jsem sem Pinout ESP32, který používáme v našem příkladu. Chci však objasnit, že projekt funguje také s ESP8266, a dokonce se stejným zdrojovým kódem.
Krok 2: Pinout NodeMCU
Krok 3: MQTT
MQTT je protokol stroj-stroj používaný v IoT. Byl navržen tak, aby byl lehký a rychlý. Používá systém odběru/publikování, kde se zařízení „přihlásí“k tématu s konkrétními informacemi, které vás zajímají, a poté obdrží informace, kdykoli zařízení zveřejní data týkající se tohoto tématu.
Stejně jako serverový program, MQTT potřebuje software. Tomu se říká makléř. V tomto konkrétním případě použijeme službu Bluemix IoT společnosti IBM. Tato služba je pro testování koncových bodů zdarma.
Dále potřebujeme mít mobilní telefon nebo tablet na straně aplikace, tj. Jako klient MQTT. Máme také stranu zařízení, což je strana ESP s teploměrem. To odešle data o teplotě a vlhkosti do Bluemix, který pak odešle tyto informace na stranu aplikace.
Krok 4: Sestavení
Náš obvod se skládá z odporu 4,7 kOhm mezi 3,3 V a datovým pinem a DHT22 připojeného k GPIO4 ESP32 nebo NodeMCU. Toto je tedy náš koncový bod.
Krok 5: Diagram
Ukazuji zde několik způsobů práce s lokálním makléřem MQTT. Umístil jsem dva diagramové modely. Ve videu mluvím o situaci, kdy se například pomocí Raspberry Pi otevírá brána.
Na obrázku výše máme první architekturu, která používá lokální Broker s trvalostí, a druhou architekturu níže, která komunikuje pouze s brokerem v cloudu.
Jak ukazuje diagram, náš senzor poté odešle údaje o teplotě a vlhkosti do IBM Watson. Je důležité zdůraznit, že IBM Watson v tomto případě nepíše data, protože se zobrazují pouze v grafech. Důvodem je, že v dnešním příkladu nebudeme řešit žádné databázové operace, ale pouze indikujeme přístup na stránku Quickstart (https://quickstart.internetofthings.ibmcloud.com/), která zobrazí stav koncového bodu. Schéma je jednoduché a k odesílání dat využívá WiFi.
Krok 6: Knihovny
V Arduino IDE přejděte do nabídky Sketch -> Include Library -> Manage Libraries…
Na obrazovce, která se otevře, zadejte do vyhledávání „DHT“a nainstalujte lib „Knihovna snímačů DHT“
Poté zadejte „PubSubClient“a nainstalujte lib „PubSubClient“.
Krok 7: Knihovna pro čtení teploty a vlhkosti
Krok 8: Knihovna MQTT
Krok 9: MQTT.ino
Zdrojový kód spustíme kontrolou, který ESP se používá, a importem odpovídající knihovny a WiFi. Stále zahrnujeme MQTT Libs a snímač teploty a vlhkosti.
// Kvalitní ověřování ESP odesílání // // import a sdílení wifi korespondence #pokud je definováno (ESP8266) #include #else #include #endif // Lib de MQTT #include // Lib do sensor de temperatura e umidade #include
Dále definujeme následující: interval mezi odesláním dat, server MQTT, který bude použit, tiskové informace v grafu a ID. Také jsme poukázali na to, jak by měl být řetězec QUICK_START.
// Interval entre os envios #define INTERVAL 1000 // Substitua pelo SSID da sua rede #define SSID "TesteESP" // Substitua pela senha da sua rede #define PASSWORD "87654321" // Server MQTT que iremos utlizar #define MQTT_SERVER "quickst.messaging.internetofthings.ibmcloud.com "// Nome do tópico que devemos enviar os dados // para que eles apareçam nos gráficos #define TOPIC_NAME" iot-2/evt/status/fmt/json "// ID que usaremos para conectar // QUICK_START vývojový řádek s konstantním řetězcem QUICK_START = "d: quickstart: arduino:";
V tomto kroku definujeme jedinečné ID. V tomto případě používáme MAC adresu zařízení, které používáme. To bude sloužit jako identifikace na webu QuickStart. Zde také propojíme Quickstart ID s ID našeho zařízení.
// Žádná DEVICE_ID nevytváří více parametrů // Účetní název // MAC adresa // Adresa URL // nevyužívá žádné možnosti // Servirá como identificação no site //https://quickstart.internetofthings.ibmcloud.com const String DEVICE_ID = "240ac40e3fd0"; // Concatemos o id do quickstart com o id do nosso // dispositivo const String CLIENT_ID = QUICK_START + DEVICE_ID;
Poté nakonfigurujeme MQTT a WiFi, stejně jako objekty a proměnné související s hodnotami teploty a vlhkosti.
// Klienti WiFi que o MQTT využívají hlavně conectarWiFiClient wifiClient; // Cliente MQTT, passamos a url do server, a porta // e o cliente WiFi PubSubClient client (MQTT_SERVER, 1883, wifiClient); // Tempo em que o último envio foi feito long lastPublishTime = 0; // Objeto que realiza a leitura da temperatura e da umidade DHT dht (4, DHT22); // Variável para guardarmos o valor da temperatura float temperature = 0; // Variável para guardarmos o valor da umidade float vlhkost = 0;
MQTT.ino - nastavení
V nastavení inicializujeme DHT a připojíme se k síti WiFi a serveru MQTT.
neplatné nastavení () {Serial.begin (115200); // Incializamos o dht dht.begin (); // Conectamos à rede WiFi setupWiFi (); // Conectamos ao server MQTT connectMQTTServer (); }
MQTT.ino - smyčka
Ve smyčce shromažďujeme data ze senzorů, abychom vytvořili JSON, který bude publikován v tématu, které IBM Watson očekává ke generování grafu.
void loop () {// Tempos agora em milisegundos long now = millis (); // Se o tempo desde o último envio for maior que o intervalo de envio if (now - lastPublishTime> INTERVAL) {// Atualizamos o tempo em que ocorreu o último envio lastPublishTime = now; // Fazemos a leitura da temperatura e umidade readSensor (); Serial.print ("Publikovat zprávu:"); // Criamos o json que enviaremos para o server mqtt String msg = createJsonString (); Serial.println (zpráva); // Publicamos no tópico onde o servidor espera para receber // e gerar o gráfico client.publish (TOPIC_NAME, msg.c_str ()); }}
MQTT.ino - nastavení Wi -Fi
Zde máme funkci zodpovědnou za připojení k síti WiFi.
// Odpovědnost na připojení k WiFivoid setupWiFi () {Serial.println (); Serial.print („Připojování k“); Serial.print (SSID); // Manda o esp se conectar à rede através // do ssid e senha WiFi.begin (SSID, PASSWORD); // Espera até que a conexão com a rede seja establishmentelecida while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } // Se chegou aqui é porque conectou Serial.println (""); Serial.println („WiFi připojeno“); }
MQTT.ino - connectMQTTServer
V tomto kroku používáme funkci zodpovědnou za připojení k serveru MQTT.
// Odpovědnost na připojení k serveru MQTTvoid connectMQTTServer () {Serial.println ("Připojování k serveru MQTT …"); // Se conecta ao id que definimos if (client.connect (CLIENT_ID.c_str ())) {// Se a conexão foi bem sucedida Serial.println ("connected"); } else {// Se ocorreu algum erro Serial.print ("error ="); Serial.println (client.state ()); }}
MQTT.ino - readSensor
V této funkci je definováno čtení údajů o teplotě a vlhkosti.
// Odpovídající funkce nebo lekce // Teplota a umdade void readSensor () {float value; // Faz a leitura da temperatura value = dht.readTemperature (); // Se o valor lido é válido if (! Isnan (hodnota)) {// Armazena o novo valor da temperatura teplota = hodnota; } // Faz a leitura da umidade value = dht.readHumidity (); // Se o valor for válido if (! Isnan (value)) {// Armazena o novo valor da umidade vlhkost = hodnota; }}
MQTT.ino - createJsonString
Zde máme funkci zodpovědnou za vytvoření JSON s načtenými daty.
// Odpovědná funkce // // Json com os dados lidos String createJsonString () {String data = "{"; data+= "\" d / ": {"; data+= "\" teplota / ":"; data+= řetězec (teplota); data+= ","; data+= "\" vlhkost / ":"; data+= řetězec (vlhkost); data+= "}"; data+= "}"; vrátit data; }
Krok 10: Grafika
Chcete -li zobrazit graf senzorů, přejděte na
na
Do pole ID zařízení zadejte DEVICE_ID, které jste definovali v kódu.
- Je důležité změnit toto ID zařízení na jedinečné ID, které slouží pouze k zamezení konfliktu s daty odeslanými jinou osobou.
Nakonec přijměte podmínky a klikněte na Přejít.
V tomto projektu jsme testovali náš koncový bod na serveru IBM Watson. Tím je zajištěno, že náš program Arduino správně komunikuje s platformou a že data, která posíláme, budou hladce přijímána cloudovou službou, pokud si vytvoříme účet.
V připravovaném videu z této série vám ukážu, jak se přihlásit k IBM Watson a také zapisovat mimo jiné do databanky této nebo jiné cloudové služby, jako je Google, Amazon.
Krok 11: Soubory
Stáhnout soubory:
INO
Doporučuje:
Ovladač pro 3 magnetické smyčkové antény s koncovým spínačem: 18 kroků (s obrázky)
Ovladač pro 3 magnetické smyčkové antény s koncovým spínačem: Tento projekt je pro ty šunkové amatéry, kteří nemají komerční. S páječkou, plastovým pouzdrem a trochou znalostí arduina se snadno staví. Ovladač je vyroben z rozpočtových komponent, které snadno najdete na internetu (~ 20 EUR)
Ručně vyráběná slitina pájky s nízkým bodem tání: 5 kroků
Ručně vyráběná slitina pájky s nízkým bodem tání: Vyrobte slitinu pájky s nízkou teplotou tání pro snadné odpájení. Navštivte můj blog. Materiály Bismutový kov 2,5 g 63/37 Rosin Core Solder 2,5 g
Arduino jako ISP -- Vypálit šestihranný soubor v AVR -- Pojistka v AVR -- Arduino jako programátor: 10 kroků
Arduino jako ISP || Vypálit šestihranný soubor v AVR || Pojistka v AVR || Arduino jako programátor: ……………………… Přihlaste se k odběru mého YouTube kanálu pro další videa …….. Tento článek je vše o arduino jako isp. Pokud chcete nahrát hex soubor nebo chcete nastavit pojistku v AVR, nemusíte kupovat programátor, můžete
Visuino Jak používat tlačítko jako vstup k ovládání věcí, jako je LED: 6 kroků
Visuino Jak používat tlačítko jako vstup pro ovládání věcí jako LED: V tomto tutoriálu se naučíme, jak zapnout a vypnout LED pomocí jednoduchého tlačítka a Visuina. Podívejte se na ukázkové video
IoT Hydroponics - Využití IBM Watson pro měření PH a EC: 7 kroků (s obrázky)
IoT Hydroponics - Použití IBM Watson pro měření PH a EC: Tento návod ukáže, jak monitorovat EC, pH a teplotu nastavení hydroponie a nahrát data do služby Watson společnosti IBM. Watson může začít. Existují placené plány, ale bezplatný plán pro tento projekt více než stačí