Obsah:
- Krok 1: Specifikace hardwaru a softwaru
- Krok 2: Bezdrátové snímače tlaku a teploty
- Krok 3: Připojení k WiFi
- Krok 4: Nastavení UbiDots na ESP32
- Krok 5: Publikování údajů ze senzorů do UbiDots
- Krok 6: Vizualizace dat
- Krok 7: Celkový kód
Video: Publikování dat senzoru bezdrátového tlaku pomocí MQTT: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
ESP32 a ESP 8266 jsou velmi dobře známé SoC v oblasti IoT. Toto jsou jakési výhody pro projekty IoT. ESP 32 je zařízení s integrovaným WiFi a BLE. Stačí zadat konfiguraci SSID, hesla a IP a integrovat věci do cloudu. Zde v tomto pokynu se zamyslíme nad některými základními pojmy IoT, jako je platforma IoT, MQTT, Captive portals atd. Pojďme si to tedy projít
- Architektura IoT ve velmi jednoduchých slovech se skládá z integrovaného zařízení a platformy IoT pro umístění zařízení do cloudu. Zde používáme platformu UbiDots IoT k vizualizaci dat ze senzorů.
- Správa nastavení IP a přihlašovacích údajů uživatele může být pro uživatele bolest hlavy. Co když chce uživatel změnit pověření WiFi? Co když chce uživatel změnit nastavení DHCP/Static IP? Blikání ESP32 pokaždé není spolehlivé a dokonce ani řešení těchto problémů. Projdeme tedy portál pro zajetí, abychom uložili přihlašovací údaje WiFi a další konfigurace.
- MQTT se nyní stává velmi běžným pojmem ve světě IoT. díky rychlé, robustní a štíhlé architektuře překonal požadavky na publikování a odběr (HTTP).
Zde v tomto pokynu budeme demonstrovat.
- Poskytování pověření WiFi a MQTT pomocí Captive Portal.
- Publikování a přihlášení k odběru více dat senzorů do UbiDots.
- Čtení dat senzoru z bezdrátového senzoru tlaku a teploty
- Hostování webového formuláře z ESP32.
- Čtení a zápis z SPIFFS ESP32.
Krok 1: Specifikace hardwaru a softwaru
Specifikace hardwaru
- ESP32 WiFi/BLE
- Bezdrátový snímač tlaku a teploty
Specifikace softwaru
- Arduino IDE
- XCTU
- Nástroj Labview
Krok 2: Bezdrátové snímače tlaku a teploty
Funkce
- Průmyslový snímač Bezdrátový snímač teploty s dlouhým dosahem
- Provozní rozsah 0 až 14 000 mbar -40 ° až +85 ° C (-40 ° až 185 ° F)
- Konfigurovatelné interní výpočetní rozlišení tlaku 0,012 až 0,065 mbar
- Konfigurovatelné vnitřní výpočetní teplotní rozlišení 0,002 až 0,012 ° C
- Přesnost ± 2,5 mbar, ± 2 ° C
- Výstupy pro absolutní tlak, relativní tlak a relativní nadmořskou výšku
- 2 mílový dosah s integrovanou anténou
- Vynikající dosah LOS až 28 mil s anténami s vysokým ziskem
- Rozhraní k Raspberry Pi, Microsoft® Azure®, Arduino a dalším
- Bezdrátová síťová síť využívající DigiMesh®
Konfigurace bezdrátového senzoru tlaku a teploty pomocí Labview Utility a XCTU
Senzor pracuje ve dvou režimech
- Konfigurační režim: Nakonfigurujte ID Pan, zpoždění, počet opakování atd. Více o tom je mimo rozsah tohoto pokynu a bude vysvětleno v dalším pokynu.
- Run Mode: Zařízení provozujeme v režimu Run. A pro analýzu těchto hodnot používáme nástroj Labview Utility
Toto uživatelské rozhraní Labview zobrazuje hodnoty v pěkných grafech. Zobrazuje aktuální i minulé hodnoty. Chcete -li si stáhnout uživatelské rozhraní Labview, přejděte na tento odkaz. kliknutím na ikonu Spustit v nabídce vstupní stránky přejdete do režimu spuštění.
Krok 3: Připojení k WiFi
Portál pro zajetí používáme k ukládání pověření WiFi a k přechodu přes nastavení IP. Podrobný úvod do portálu pro zajetí můžete projít následujícím návodem.
Portál pro zajetí nám dává možnost vybrat si mezi statickým a DHCP nastavením. Stačí zadat přihlašovací údaje, jako je statická IP, maska podsítě, brána a bezdrátová senzorová brána se na této IP nakonfigurují.
Hostuje se webová stránka se seznamem dostupných WiFi sítí a RSSI. Vyberte síť WiFi a heslo a zadejte odeslat. Pověření budou uložena do EEPROM a nastavení IP bude uloženo do SPIFFS. Více o tom najdete v tomto návodu.
Krok 4: Nastavení UbiDots na ESP32
Zde používáme bezdrátové snímače tlaku a teploty se zařízením ESP 32 k získávání údajů o teplotě a vlhkosti. Data odesíláme do UbiDots pomocí protokolu MQTT. MQTT sleduje spíše mechanismus publikování a odběru, než požadavek a odpověď. Je rychlejší a spolehlivější než HTTP. Funguje to následovně.
- Používáme Plánovač úloh k naplánování úkolu, jako je načítání dat ze senzorů, publikování údajů ze senzorů, Přihlášení k tématu MQTT.
- Nejprve zahrňte soubory záhlaví Plánovače úloh, je to instance a naplánuje úkoly.
- Naplánovali jsme dva úkoly odkazující na dvě různé řídicí operace.
#define _TASK_TIMEOUT#include Plánovač ts; // --------- Úkoly ------------ // Úkol tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL, & taskSensorDisable); Úkol tWiFi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);
- Úkol 1 je pro čtení hodnoty senzoru, který běží po dobu 1 sekundy, dokud nedosáhne časového limitu 10 sekund.
- Když úkol 1 vyprší, připojujeme se k místnímu brokerovi Wifi a MQTT.
- Nyní je úkol 2 povolen a deaktivujeme úkol 1
- Úkol 2 je pro publikování dat senzoru brokerovi UbiDots MQTT. Tento úkol běží 20 sekund, dokud nedosáhne časového limitu 20 sekund
- Když úkol 2 vyprší, úkol 1 je znovu povolen a úkol 2 je deaktivován. Zde opět získáváme aktualizovanou hodnotu a proces pokračuje.
Čtení dat senzoru I2C
Získáváme 29bajtový rámec z bezdrátových snímačů teploty a vlhkosti. Tento rámec je zpracován tak, aby získal údaje o skutečné teplotě a vlhkosti
pokud (Serial1.available ())
{data [0] = Serial1.read (); zpoždění (k); if (data [0] == 0x7E) {while (! Serial1.available ()); pro (i = 1; i <36; i ++) {data = Serial1.read (); zpoždění (1); } if (data [15] == 0x7F) /////// pro kontrolu, zda jsou přijímaná data správná {if (data [22] == 0x06) //////// zkontrolujte typ senzoru je správná {int cTemp = (((((data [24]) * 256) + data [25])); int16_t abs_pressure = (((((uint16_t) (data [26]) << 8) | data [27])*0,001); int rlt_pressure = (((((data [28]) * 256) + data [29]) * 0,001); int16_t delta_alt = (((((uint16_t) (data [30]) << 8) | data [31])*0,01); float baterie = ((data [18] * 256) + data [19]); plovoucí napětí = 0,00322 * baterie; Serial.print („číslo senzoru“); Serial.println (data [16]); Serial.print („Typ senzoru“); Serial.println (data [22]); Serial.print („Verze firmwaru“); Serial.println (data [17]); Serial.print ("Teplota ve stupních Celsia:"); Serial.print (cTemp); Serial.println ("C"); Serial.print („Absolutní tlak:“); Serial.println (abs_pressure); Serial.print ("mbar"); Serial.print („Relativní tlak:“); Serial.println (rlt_pressure); Serial.print ("mbar"); Serial.print ("Delta Altitude:"); Serial.println (delta_alt); Serial.print ("metr"); Serial.print ("hodnota ADC:"); Serial.println (baterie); Serial.print ("Napětí baterie:"); Serial.print (napětí); Serial.println ("\ n"); if (napětí <1) {Serial.println ("Čas na výměnu baterie"); }}} else {for (i = 0; i <36; i ++) {Serial.print (data ); Serial.print (","); zpoždění (1); }}}}
Připojení k UbiDots MQTT API
Zahrňte soubor záhlaví pro proces MQTT
#zahrnout
definujte pro MQTT další proměnné, jako je jméno klienta, adresa makléře, ID tokenu
#define TOKEN "BBFF-*************************************" // // Vaše Ubidots TOKEN#definovat MQTT_CLIENT_NAME "****************************"
char mqttBroker = "things.ubidots.com";
užitečné zatížení char [100]; char téma [150]; // vytvoření proměnné pro uložení tokenu ID tokenu
Krok 5: Publikování údajů ze senzorů do UbiDots
Vytvořte proměnné pro ukládání různých dat ze senzorů a vytvořte proměnnou char pro uložení tématu
#define VARIABLE_LABEL_TEMPF "tempF" // Zadání označení proměnné #define VARIABLE_LABEL_TEMPC "tempC" // Zadání označení proměnné #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "vlhké" // Označení proměnné
char topic1 [100];
char topic2 [100]; char topic3 [100];
publikovat data do zmíněného tématu MQTT, užitečné zatížení bude vypadat jako {"tempc": {value: "tempData"}}
sprintf (topic1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (užitečné zatížení, "%s", ""); // Čistí sprintf užitečného zatížení (užitečné zatížení, "{"%s / ":", VARIABLE_LABEL_TEMPC); // Přidá hodnotu sprintf (užitečné zatížení, "%s {" hodnota / ":%s}", užitečné zatížení, str_cTemp); // Přidá hodnotu sprintf (užitečné zatížení, "%s}", užitečné zatížení); // Zavře závorky slovníku Serial.println (užitečné zatížení); Serial.println (client.publish (topic1, užitečné zatížení)? "Publikováno": "nezveřejněno"); // Udělejte to samé i pro jiné téma
client.publish () publikuje data do UbiDots
Krok 6: Vizualizace dat
- Přejděte na Ubidots a přihlaste se ke svému účtu.
- Přejděte na hlavní panel z karty Data uvedené v horní části.
- Nyní klikněte na ikonu „+“a přidejte nové widgety.
- Vyberte ze seznamu widget a přidejte proměnnou a zařízení.
- Data senzorů lze zobrazit na palubní desce pomocí různých widgetů.
Krok 7: Celkový kód
Over code pro HTML a ESP32 najdete v tomto úložišti GitHub.
Kredity
- ncd ESP32 breakout deska.
- ncd Bezdrátové snímače tlaku a teploty
- pubsubclient
- UbiDots
- Plánovač úkolů
Doporučuje:
Vykreslování živých dat teplotního senzoru (TMP006) pomocí MSP432 LaunchPad a Pythonu: 9 kroků
Vykreslování živých dat teplotního senzoru (TMP006) pomocí MSP432 LaunchPad a Pythonu: TMP006 je teplotní senzor, který měří teplotu objektu bez nutnosti kontaktu s objektem. V tomto tutoriálu vykreslíme data o živé teplotě z BoosterPack (TI BOOSTXL-EDUMKII) pomocí Pythonu
Pořizujte a odesílejte obrázky pomocí kamery ESP32-Cam pomocí bezdrátového procesoru ESP8266 WeMos D1 R1 s Uno: 7 kroků
Zachyťte a odešlete obrázky pomocí ESP32-Cam pomocí ESP8266 WeMos D1 R1 Wifi procesoru s Uno: Zachyťte obrázek pomocí ESP32-Cam (OV2640) pomocí ESP8266 WeMos D1 R1 WiFI procesoru s Uno a odešlete jej na e-mail, uložte na Disk Google a odešlete na Whatsapp pomocí Twilio. Požadavky: ESP8266 WeMos D1 R1 WiFI procesor s Uno (https: // protosupplies
Odeslání dat bezdrátového snímače vibrací a teploty do Excelu pomocí Node-RED: 25 kroků
Odesílání dat bezdrátového snímače vibrací a teploty do Excelu pomocí Node-RED: Představujeme průmyslový bezdrátový snímač vibrací a teploty NCD s dlouhým dosahem IoT od společnosti NCD, který se může pochlubit dosahem až 2 míle použitím struktury bezdrátové síťové sítě. Toto zařízení obsahuje přesný 16bitový snímač vibrací a teploty a
UbiDots-připojení ESP32 a publikování více senzorových dat: 6 kroků
UbiDots-Připojení ESP32 a publikování více senzorových dat: ESP32 a ESP 8266 jsou velmi dobře známé SoC v oblasti IoT. To jsou jakési výhody pro projekty IoT. ESP 32 je zařízení s integrovaným WiFi a BLE. Stačí zadat konfiguraci SSID, hesla a IP a integrovat věci do
Vizualizace dat bezdrátového senzoru pomocí grafů Google: 6 kroků
Vizualizace dat bezdrátového senzoru pomocí grafů Google: Prediktivní analýza strojů je velmi nezbytná, aby se minimalizovaly prostoje stroje. Pravidelná kontrola pomáhá prodloužit pracovní dobu stroje a naopak zvyšuje jeho odolnost vůči chybám. Bezdrátový snímač vibrací a teploty