![Začínáme s AWS IoT s bezdrátovým snímačem teploty pomocí MQTT: 8 kroků Začínáme s AWS IoT s bezdrátovým snímačem teploty pomocí MQTT: 8 kroků](https://i.howwhatproduce.com/images/006/image-15175-10-j.webp)
Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38
![Začínáme s AWS IoT s bezdrátovým snímačem teploty pomocí MQTT Začínáme s AWS IoT s bezdrátovým snímačem teploty pomocí MQTT](https://i.howwhatproduce.com/images/006/image-15175-11-j.webp)
V dřívějších Instructables jsme prošli různými cloudovými platformami, jako jsou Azure, Ubidots, ThingSpeak, Losant atd. Pro odesílání dat senzorů do cloudu používáme téměř na celé cloudové platformě protokol MQTT. Další informace o MQTT, jeho výhodách a výhodách oproti protokolu HTTP naleznete v tomto pokynu.
V tomto pokynu přiblížíme ještě další a nejznámější cloudovou platformu Amazon Web Services. Mnoho z vás možná zná AWS alias Amazon Web Services a cloudové funkce poskytované AWS. Je to již mnoho let jádro webového vývoje. S rostoucím rozsahem aplikací IoT přichází AWS s řešením AWSIoT. AWSIoT je spolehlivé řešení pro hostování našich aplikací IoT.
Dodržováním tohoto pokynu:
- Pro svou aplikaci IoT budete moci nastavit účet AWS
- Budete moci připojit jádro ESP32 k AWS IoT
- Odesílejte a přijímejte zprávy pomocí protokolu MQTT a
- Vizualizujte odeslaná data v AWS
Krok 1: Nastavení účtu AWS
Nastavení účtu AWS je poměrně snadné. Stačí nahrát několik certifikátů, připojit k nim zásady, zaregistrovat zařízení a začít přijímat zprávy o senzorech v AWS.
Chcete -li nastavit účet AWS, postupujte podle tohoto tutoriálu.
Krok 2: Specifikace hardwaru a softwaru
![Specifikace hardwaru a softwaru Specifikace hardwaru a softwaru](https://i.howwhatproduce.com/images/006/image-15175-12-j.webp)
Specifikace softwaru
Účet AWS
Specifikace hardwaru
- ESP32
- Bezdrátový snímač teploty a vibrací
- Přijímač brány Zigmo
Krok 3: Bezdrátové snímače vibrací a teploty
![Bezdrátové snímače vibrací a teploty Bezdrátové snímače vibrací a teploty](https://i.howwhatproduce.com/images/006/image-15175-13-j.webp)
Jedná se o bezdrátový snímač vibrací a teploty IoT s dlouhým dosahem, který se může pochlubit dosahem až 2 míle pomocí bezdrátové síťové architektury. Tento 16bitový snímač vibrací a teploty přenáší vysoce přesná data o vibracích v uživatelem definovaných intervalech. Má následující funkce:
- Průmyslový tříosý snímač vibrací s rozsahem ± 32 g
- Vypočítává RMS, MAX a MIN g vibrací
- Odstranění šumu pomocí dolního filtru
- Frekvenční rozsah (šířka pásma) až 12 800 Hz
- Vzorkovací frekvence až 25 600 Hz
- Šifrovaná komunikace s bezdrátovým dosahem 2 míle
- Rozsah provozních teplot -40 až +85 ° C
- Nástěnná nebo magnetická skříň s krytím IP65 Příklad softwaru pro Visual Studio a LabVIEW
- Senzor vibrací s možností externí sondy
- Až 500 000 přenosů ze 4 baterií AA K dispozici je mnoho možností brány a modemu
Krok 4: Firmware ESP32 AWS
Chcete -li se připojit k AWS a začít odesílat data, proveďte následující kroky
- Stáhněte si knihovnu AWS z následujícího úložiště Github
- naklonujte repo a umístěte soubor AWS_IOT do složky knihovny v adresáři Arduino
klon git
Nyní si projdeme kód:
- V této aplikaci jsme využili portál pro zajetí k uložení přihlašovacích údajů 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 5: Získání dat senzoru z bezdrátového senzoru vibrací a teploty
![Získání dat senzoru z bezdrátového senzoru vibrací a teploty Získání dat senzoru z bezdrátového senzoru vibrací a teploty](https://i.howwhatproduce.com/images/006/image-15175-14-j.webp)
![Získání dat senzoru z bezdrátového senzoru vibrací a teploty Získání dat senzoru z bezdrátového senzoru vibrací a teploty](https://i.howwhatproduce.com/images/006/image-15175-15-j.webp)
Získáváme 54bajtový rámec z bezdrátových snímačů teploty a vibrací. Tento rámec je upraven tak, aby získal aktuální teplotu a údaje o vibracích.
ESP32 má pro sériové použití k dispozici tři UART
- RX0 GPIO 3, TX0 GPIO 1
- RX1 GPIO9, TX1 GPIO 10
- RX2 GPIO 16, TX2 GPIO 17
a 3 hardwarové sériové porty
- Seriál
- Sériové 1
- Sériové 2
Nejprve inicializujte hlavičkový soubor Hardware Serial. Zde budeme používat RX2 a TX2 aka. GPIO 16 a GPIO 17 piny desky ESP32 pro získání sériových dat.
#zahrnout
# definovat RXD2 16 # definovat TXD2 17
Serial2.begin (115200, SERIAL_8N1, RXD2, TXD2); // piny 16 rx2, 17 tx2, 19200 bps, 8 bitů bez parity 1 stop bit
Následující kroky vás dále dovedou k získání skutečných hodnot senzorů
- Vytvářejte proměnné pro ukládání hodnot teploty, vlhkosti, baterie a dalších senzorů
- Pro hardwarový seriál nastavte bity Rx, tx, přenosovou rychlost a paritu
- Nejprve zkontrolujte, zda je možné něco přečíst pomocí Serial1.available ()
- Dostaneme rám 54 bajtů.
- Zkontrolujte 0x7E, což je počáteční bajt.
- Údaje o vibracích se skládají z hodnoty RMS pro 3 osy, minimální hodnoty pro 3 osy, maximální hodnoty pro 3 osy.
- hodnoty teploty a baterie budou obsahovat 2 bajty dat
- získejte název senzoru, typ, verze senzoru bude obsahovat 1 byte dat a lze jej získat z příslušné adresy
if (Serial2.available ()) {Serial.println ("Read Serial"); data [0] = Serial2.read (); zpoždění (k); if (data [0] == 0x7E) {Serial.println ("Got Packet"); while (! Serial2.available ()); pro (i = 1; i <55; i ++) {data = Serial2.read (); zpoždění (1); } if (data [15] == 0x7F) /////// pro kontrolu správnosti přijímaných dat {if (data [22] == 0x08) //////// zkontrolujte typ senzoru je správné {rms_x = ((uint16_t) (((data [24]) << 16) + ((data [25]) << 8) + (data [26]))/100); rms_y = ((uint16_t) (((data [27]) << 16) + ((data [28]) << 8) + (data [29]))/100); rms_z = ((uint16_t) (((data [30]) << 16) + ((data [31]) << 8) + (data [32]))/100); int16_t max_x = ((uint16_t) (((data [33]) << 16) + ((data [34]) << 8) + (data [35]))/100); int16_t max_y = ((uint16_t) (((data [36]) << 16) + ((data [37]) << 8) + (data [38]))/100); int16_t max_z = ((uint16_t) (((data [39]) << 16) + ((data [40]) << 8) + (data [41]))/100);
int16_t min_x = ((uint16_t) (((data [42]) << 16) + ((data [43]) << 8) + (data [44]))/100); int16_t min_y = ((uint16_t) (((data [45]) << 16) + ((data [46]) << 8) + (data [47]))/100); int16_t min_z = ((uint16_t) (((data [48]) << 16) + ((data [49]) << 8) + (data [50]))/100);
cTemp = ((((data [51]) * 256) + data [52])); float baterie = ((data [18] * 256) + data [19]); napětí = 0,00322 * baterie; Serial.print („číslo senzoru“); Serial.println (data [16]); senseNumber = 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 ("RMS vibrace v ose X:"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("RMS vibrace v ose Y:"); Serial.print (rms_y); Serial.println ("mg"); Serial.print ("RMS vibrace v ose Z:"); Serial.print (rms_z); Serial.println ("mg");
Serial.print ("Minimální vibrace v ose X:");
Serial.print (min_x); Serial.println ("mg"); Serial.print ("Minimální vibrace v ose Y:"); Serial.print (min_y); Serial.println ("mg"); Serial.print ("Minimální vibrace v ose Z:"); Serial.print (min_z); Serial.println ("mg");
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 <54; i ++) {Serial.print (data ); Serial.print (","); zpoždění (1); }}}}
Krok 6: Připojení k AWS
![Připojení k AWS Připojení k AWS](https://i.howwhatproduce.com/images/006/image-15175-16-j.webp)
- Zahrňte soubory záhlaví AWS_IOT.h, WiFi.h pro nastavení připojení k rozbočovači AWSIoT
- Zadejte svou hostitelskou adresu, ID klienta, což bude název zásady, a název tématu, který bude název věci
// ********* Pověření AWS ************* // char HOST_ADDRESS = "a2smbp7clzm5uw-ats.iot.us-east-1.amazonaws.com"; char CLIENT_ID = "ncdGatewayPolicy"; char TOPIC_NAME = "ncdGatewayThing";
Vytvořte proměnnou char pro uložení vašeho JSON, v tomto případě jsme vytvořili formát pro ukládání JSON
const char *format = "{" SensorId / ": \"%d / ", \" messageId / ":%d, \" rmsX / ":%d, \" rmsY / ":%d, \" rmsZ / ":%d, \" cTemp / ":%d, \" napětí / ":%. 2f}";
Vytvořte instanci třídy AWS_IOT
AWS_IOT esp; // Instance třídy AWS_IOT
Nyní se připojte k rozbočovači AWSIoT pomocí následující metody
void reconnectMQTT () {if (hornbill.connect (HOST_ADDRESS, CLIENT_ID) == 0) {Serial.println ("Connected to AWS"); zpoždění (1000);
if (0 == hornbill.subscribe (TOPIC_NAME, mySubCallBackHandler))
{Serial.println ("Úspěšné přihlášení k odběru"); } else {Serial.println ("Přihlášení se nezdařilo, zkontrolujte název věci a certifikáty"); zatímco (1); }} else {Serial.println ("Připojení AWS se nezdařilo, zkontrolujte adresu HOST"); zatímco (1); }
zpoždění (2000);
}
publikovat data ze senzoru po každé 1 minutě
if (tick> = 60) // publikovat na téma každých 5 sekund {tick = 0; užitečné zatížení char [PAYLOAD_MAX_LEN]; snprintf (užitečné zatížení, PAYLOAD_MAX_LEN, formát, senseNumber, msgCount ++, rms_x, rms_y, rms_z, cTemp, napětí); Serial.println (užitečné zatížení); if (hornbill.publish (TOPIC_NAME, užitečné zatížení) == 0) {Serial.print ("Publikovat zprávu:"); Serial.println (užitečné zatížení); } else {Serial.println ("Publikování se nezdařilo"); }} vTaskDelay (1000 / portTICK_RATE_MS); zaškrtněte ++;
Krok 7: Vizualizace dat v AWS
![Vizualizace dat v AWS Vizualizace dat v AWS](https://i.howwhatproduce.com/images/006/image-15175-17-j.webp)
![Vizualizace dat v AWS Vizualizace dat v AWS](https://i.howwhatproduce.com/images/006/image-15175-18-j.webp)
![Vizualizace dat v AWS Vizualizace dat v AWS](https://i.howwhatproduce.com/images/006/image-15175-19-j.webp)
- Přihlaste se ke svému účtu AWS.
- v levém rohu panelu nástrojů najdete kartu Služby
- Klikněte na tuto kartu a v části Internet věcí vyberte IoT Core.
- Vyberte QoS a č. zpráv pro předplatitele. Zadejte název tématu.
Krok 8: Celkový kód
Celkový kód najdete v tomto úložišti Github.
Kredity
- Arduino Json
- Bezdrátové snímače teploty a vlhkosti
- ESP32
- PubSubClient
Doporučuje:
Automatický chladicí ventilátor se snímačem teploty a vlhkosti Servo a DHT11 s Arduino: 8 kroků
![Automatický chladicí ventilátor se snímačem teploty a vlhkosti Servo a DHT11 s Arduino: 8 kroků Automatický chladicí ventilátor se snímačem teploty a vlhkosti Servo a DHT11 s Arduino: 8 kroků](https://i.howwhatproduce.com/images/002/image-4702-j.webp)
Automatický chladicí ventilátor využívající snímač teploty a vlhkosti Servo a DHT11 s Arduino: V tomto tutoriálu se naučíme, jak spustit & otáčejte ventilátorem, když teplota stoupne nad určitou úroveň
Budík Arduino se snímačem teploty: 5 kroků
![Budík Arduino se snímačem teploty: 5 kroků Budík Arduino se snímačem teploty: 5 kroků](https://i.howwhatproduce.com/images/006/image-16963-j.webp)
Budík Arduino se snímačem teploty: Arduino je velmi snadný a levný mikrořadič. a snadno se ovládají. Co tedy v tomto projektu očekáváte … použijeme RTC s tak přesným nastavením časového alarmu, které je dostatečně hlasité na to, aby probudilo vaši teplotu místnosti, pokud chcete sledovat clic
Monitor kvality vzduchu s MQ135 a externím snímačem teploty a vlhkosti přes MQTT: 4 kroky
![Monitor kvality vzduchu s MQ135 a externím snímačem teploty a vlhkosti přes MQTT: 4 kroky Monitor kvality vzduchu s MQ135 a externím snímačem teploty a vlhkosti přes MQTT: 4 kroky](https://i.howwhatproduce.com/images/008/image-22031-j.webp)
Monitor kvality vzduchu s MQ135 a externím snímačem teploty a vlhkosti přes MQTT: Toto je pro testovací účely
Solární senzor teploty a vlhkosti Arduino napájený snímačem Oregon s frekvencí 433 MHz: 6 kroků
![Solární senzor teploty a vlhkosti Arduino napájený snímačem Oregon s frekvencí 433 MHz: 6 kroků Solární senzor teploty a vlhkosti Arduino napájený snímačem Oregon s frekvencí 433 MHz: 6 kroků](https://i.howwhatproduce.com/images/009/image-25178-j.webp)
Solární senzor teploty a vlhkosti Arduino se snímačem Oregon s frekvencí 433 MHz: Jedná se o sestavu snímače teploty a vlhkosti napájeného solární energií. Senzor emuluje snímač Oregon s frekvencí 433 MHz a je viditelný v bráně Telldus Net. Co potřebujete: 1 x 10 LED Snímač pohybu sluneční energie " z Ebay. Ujistěte se, že je na baterii 3,7 V
Node-RED se snímačem vibrací a teploty IoT s dlouhým dosahem: 34 kroků
![Node-RED se snímačem vibrací a teploty IoT s dlouhým dosahem: 34 kroků Node-RED se snímačem vibrací a teploty IoT s dlouhým dosahem: 34 kroků](https://i.howwhatproduce.com/images/011/image-31724-j.webp)
Node-RED se snímačem vibrací a teploty IoT s dlouhým dosahem: Představujeme bezdrátový snímač teploty NCD s dlouhým dosahem, který se může pochlubit dosahem až 28 mil pomocí bezdrátové síťové architektury. Integrovaný snímač teploty Honeywell HIH9130 přenáší vysoce přesnou teplotu a