Obsah:
- Krok 1: Pinout ESP32
- Krok 2: Pinout NodeMCU
- Krok 3: MQTT
- Krok 4: Zostavenie
- Krok 5: Diagram
- Krok 6: Knižnice
- Krok 7: Knižnica na čítanie teploty a vlhkosti
- Krok 8: Knižnica MQTT
- Krok 9: MQTT.ino
- Krok 10: Grafika
- Krok 11: Súbory
Video: IBM Watson s koncovým bodom ESP32: 11 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
Dnes tu uverejňujem prvé video zo série o tom, ako pripojiť zariadenie Endpoint k systému ESP32 a potom ho odoslať do cloudovej služby. V tejto konkrétnej epizóde vám ukážem, ako odosielať informácie zo senzora DHT22 pomocou protokolu MQTT pre IBM Watson.
Najprv predstavíme MQTT, čo je protokol stroj-stroj používaný v IoT (internet vecí). Pomocou tohto protokolu tiež odošleme údaje zo snímača teploty a vlhkosti a potom skontrolujeme graf s týmito údajmi na webovej stránke.
Krok 1: Pinout ESP32
Tu som umiestnil Pinout ESP32, ktorý používame v našom príklade. Chcem však objasniť, že projekt funguje aj s ESP8266, a dokonca s rovnakým zdrojovým kódom.
Krok 2: Pinout NodeMCU
Krok 3: MQTT
MQTT je protokol stroj-stroj používaný v IoT. Bol navrhnutý tak, aby bol ľahký a rýchly. Využíva systém predplatného/publikovania, kde sa zariadenie „prihlási“na odber témy s konkrétnymi informáciami, ktoré vás zaujímajú, a potom dostane informácie vždy, keď zariadenie zverejní údaje týkajúce sa tejto témy.
Rovnako ako serverový program, MQTT potrebuje softvér. Tomu sa hovorí maklér. V tomto konkrétnom prípade použijeme službu IoT Bluemix spoločnosti IBM. Táto služba je bezplatná na testovanie koncových bodov.
Ďalej musíme mať mobilný telefón alebo tablet so stranou Aplikácie, to znamená ako klienta MQTT. Máme tiež stranu zariadenia, ktorá je stranou ESP s teplomerom. To odošle údaje o teplote a vlhkosti do zariadenia Bluemix, ktoré potom tieto informácie odošle na stranu aplikácií.
Krok 4: Zostavenie
Náš obvod pozostáva z rezistora 4,7 kOhm medzi 3,3 V a dátovým pinom a DHT22 pripojeného k GPIO4 ESP32 alebo NodeMCU. Toto je teda náš koncový bod.
Krok 5: Diagram
Ukazujem tu niekoľko spôsobov práce s miestnym maklérom MQTT. Umiestnil som dva diagramové modely. Vo videu hovorím o situácii, keď sa napríklad pomocou Raspberry Pi otvorí brána.
Na obrázku vyššie máme prvú architektúru, ktorá perzistentne používa lokálneho makléra, a druhú architektúru nižšie, ktorá komunikuje iba s maklérom v cloude.
Ako je znázornené na obrázku, náš snímač potom odošle údaje o teplote a vlhkosti do IBM Watson. Je dôležité zdôrazniť, že IBM Watson v tomto prípade nepíše údaje, pretože sa zobrazujú iba v grafoch. Dôvodom je, že v dnešnom príklade sa nebudeme zaoberať žiadnymi databázovými operáciami, ale iba naznačíme prístup na stránku Quickstart (https://quickstart.internetofthings.ibmcloud.com/), ktorá zobrazí stav koncového bodu. Schéma je jednoduchá a na odosielanie údajov používa WiFi.
Krok 6: Knižnice
V Arduino IDE prejdite do ponuky Skica -> Zahrnúť knižnicu -> Spravovať knižnice …
Na obrazovke, ktorá sa otvorí, zadajte do vyhľadávania „DHT“a nainštalujte lib „Knižnica senzorov DHT“
Potom zadajte „PubSubClient“a nainštalujte lib „PubSubClient“.
Krok 7: Knižnica na čítanie teploty a vlhkosti
Krok 8: Knižnica MQTT
Krok 9: MQTT.ino
Zdrojový kód spustíme tak, že skontrolujeme, ktorý ESP sa používa, a importujeme zodpovedajúcu knižnicu a WiFi. Stále zahrnujeme MQTT Libs a snímač teploty a vlhkosti.
// Kvalitné overenie ESP odoslaním // // import a wifi korešpondencia #ak je definovaný (ESP8266) #include #else #include #endif // Lib de MQTT #include // Lib do sensor de temperatura e umidade #include
Ďalej definujeme nasledujúce: interval medzi odoslaním údajov, server MQTT, ktorý sa použije, tlačové informácie v grafe a ID. Tiež sme poukázali na to, ako by mal byť reťazec QUICK_START.
// Interve 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 ".messaging.internetofthings.ibmcloud.com "// Niektoré typy súborov pre vývojárov // 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ý radový reťazec QUICK_START = "d: quickstart: arduino:";
V tomto kroku definujeme jedinečné ID. V tomto prípade používame MAC adresu zariadenia, ktoré používame. Toto bude slúžiť ako identifikácia na webe QuickStart. Tu tiež spájame ID rýchleho štartu s ID nášho zariadenia.
// Žiadne zariadenie DEVICE_ID nemá žiadny identifikátor // Územie // Využitie MAC adresy // Adresa zariadenia // Dopredu nevyužíva žiadne stránky //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;
Potom nakonfigurujeme MQTT a WiFi, ako aj objekty a premenné súvisiace s hodnotami teploty a vlhkosti.
// Klienti, ktorí majú WiFi, alebo používajú MQTT, používajú sa ako konektoryWiFiClient 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 - nastavenie
V nastavení inicializujeme DHT a pripojíme sa k sieti WiFi a serveru MQTT.
void setup () {Serial.begin (115200); // Incializamos o dht dht.begin (); // Conectamos à rede WiFi setupWiFi (); // Conectamos ao server MQTT connectMQTTServer (); }
MQTT.ino - slučka
V slučke zhromažďujeme údaje zo senzorov, aby sme vytvorili JSON, ktorý bude publikovaný v téme, ktorú IBM Watson očakáva, že vygeneruje graf.
void loop () {// Tempo 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; // Fazémy a leitura da temperatura e umidade readSensor (); Serial.print ("Publikovať správu:"); // Criamos o json que enviaremos para o server mqtt String msg = createJsonString (); Serial.println (msg); // Publicamos no tópico onde o servidor espera para receber // e gerar o gráfico client.publish (TOPIC_NAME, msg.c_str ()); }}
MQTT.ino - nastavenieWiFi
Tu máme funkciu zodpovednú za pripojenie k sieti WiFi.
// Funkcie odpovedajúce na pripojenie WiFivoid setupWiFi () {Serial.println (); Serial.print („Pripojenie 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 and rede seja establishmentelecida while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } // Se chegou aqui é porque conectou Serial.println (""); Serial.println ("WiFi pripojené"); }
MQTT.ino - connectMQTTServer
V tomto kroku používame funkciu zodpovednú za pripojenie k serveru MQTT.
// Funkcie odpovedajúce na server a MQT Vyhnite sa connectMQTTServer () {Serial.println ("Pripojenie k serveru MQTT …"); // Pozrite sa na ďalšie definície if (client.connect (CLIENT_ID.c_str ()))) {// Pozrite sa na ďalšie informácie o Serced.println ("pripojené"); } else {// Se ocorreu algum erro Serial.print ("error ="); Serial.println (client.state ()); }}
MQTT.ino - readSensor
V tejto funkcii je definované čítanie údajov o teplote a vlhkosti.
// Funkcie zodpovedajúce mnohým lektúram // Teplota a umidade void readSensor () {float value; // Faz a leitura da temperatura value = dht.readTemperature (); // Se o valor lido é válido if (! Isnan (value)) {// 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
Tu máme funkciu zodpovednú za vytvorenie JSON s načítanými údajmi.
// Funkcie odpovedajúce // // Json com dados lidos String createJsonString () {String data = "{"; údaje+= "\" d / ": {"; údaje+= "\" teplota / ":"; údaje+= Reťazec (teplota); údaje+= ","; údaje+= "\" vlhkosť / ":"; údaje+= Reťazec (vlhkosť); údaje+= "}"; údaje+= "}"; vrátiť údaje; }
Krok 10: Grafika
Ak si chcete pozrieť graf senzora, choďte
na
Do poľa ID zariadenia zadajte DEVICE_ID, ktoré ste definovali v kóde.
- Je dôležité zmeniť toto ID zariadenia na jedinečný identifikátor, ktorý sa používa iba na zabránenie konfliktu s údajmi odoslanými inou osobou.
Nakoniec prijmite podmienky a kliknite na položku Prejsť.
V tomto projekte sme testovali náš koncový bod na serveri IBM Watson. To zaisťuje, že náš program Arduino správne komunikuje s platformou a že údaje, ktoré odosielame, budú hladko prijaté cloudovou službou, ak si vytvoríme účet.
V pripravovanom videu z tejto série vám ukážem, ako sa prihlásiť do IBM Watson, a okrem iného zapisovať do databanky tejto alebo inej cloudovej služby, ako je Google, Amazon.
Krok 11: Súbory
Stiahnite si súbory:
INO
Odporúča:
Ovládač pre 3 magnetické slučkové antény s koncovým spínačom: 18 krokov (s obrázkami)
Ovládač pre 3 magnetické slučkové antény s koncovým spínačom: Tento projekt je pre tých šunkových amatérov, ktorí nemajú komerčné. Ľahko sa stavia pomocou spájkovačky, plastového puzdra a trocha znalostí o arduine. Ovládač je vyrobený z rozpočtových komponentov, ktoré ľahko nájdete na internete (~ 20 €).
Ručne vyrábaná zliatina spájky s nízkym bodom topenia: 5 krokov
Ručne vyrábaná zliatina spájky s nízkym bodom topenia: Vyrobte zliatinu spájky s nízkou teplotou topenia pre ľahké odpájanie. Navštívte môj blog. Materiály Bismutový kov 2,5 g 63/37 Rosin Core Core 2,5 g
Oživte prehistorického dinosaura IBM PS2 55SX!: 15 krokov
Oživte prehistorického dinosaura … IBM PS2 55SX!: Tento návod zahŕňa fyzické hacknutie otvorenej zostavy Dallas DS 1287 a tiež zmontovanie staršieho napájacieho zdroja v štýle ATX, aby fungoval s počítačom IBM PS2 55SX. Odkedy objavujem veľa informácií cestou by som odporučil prečítať si všetky informácie
Zapnite diódu LED pomocou konverzácie Watson: 6 krokov
Zapnite LED pomocou konverzácie Watson: Čo budete potrebovať: Zagros Artificial Intelligence Raspberry Pi Kit
IoT Hydroponics - Použitie Watsona spoločnosti IBM na meranie PH a EC: 7 krokov (s obrázkami)
IoT Hydroponics - Použitie Watsonu spoločnosti IBM na meranie PH a EC: Tento návod vám ukáže, ako monitorovať EC, pH a teplotu nastavenia hydroponie a nahrať údaje do služby Watson spoločnosti IBM. Watson môže zadarmo začať. Existujú platené plány, ale bezplatný plán pre tento projekt viac než stačí