![MQTT yordamida simsiz harorat sensori bilan AWS IoT -ni ishga tushirish: 8 qadam MQTT yordamida simsiz harorat sensori bilan AWS IoT -ni ishga tushirish: 8 qadam](https://i.howwhatproduce.com/images/006/image-15175-10-j.webp)
Mundarija:
- 1 -qadam: AWS hisobini sozlash
- 2 -qadam: Uskuna va dasturiy ta'minot xususiyatlari
- 3 -qadam: Simsiz tebranish va harorat sensori
- 4 -qadam: ESP32 AWS dasturiy ta'minoti
- 5 -qadam: Sensor ma'lumotlarini simsiz tebranish va harorat sensori orqali olish
- 6 -qadam: AWS -ga ulanish
- 7 -qadam: AWS -da ma'lumotlarni vizualizatsiya qilish
- 8 -qadam: Umumiy kod
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-23 15:14
![MWTT yordamida simsiz harorat sensori bilan AWS IoT -ni ishga tushirish MWTT yordamida simsiz harorat sensori bilan AWS IoT -ni ishga tushirish](https://i.howwhatproduce.com/images/006/image-15175-11-j.webp)
Oldingi Instructables -da biz Azure, Ubidots, ThingSpeak, Losant va boshqalar kabi turli xil bulutli platformalardan o'tdik. Biz deyarli barcha bulutli platformalarda sensor ma'lumotlarini bulutga yuborish uchun MQTT protokolidan foydalanganmiz. MQTT, uning HTTP protokolidan afzalliklari va afzalliklari haqida ko'proq ma'lumot olish uchun siz ushbu ko'rsatmaga murojaat qilishingiz mumkin.
Ushbu qo'llanmada biz Amazon veb -xizmatlarining yana bir va eng tanish bulutli platformasiga o'tamiz. Ko'pchiligingiz AWS aka Amazon Web Services va AWS tomonidan taqdim etilgan bulutli funksiyalar bilan tanish bo'lishi mumkin. Bu ko'p yillar davomida veb -ishlab chiqarishning yadrosi bo'lib kelgan. IoT ilovalarining ko'lami oshib borayotganligi sababli, AWS AWSIoT echimini taklif qildi. AWSIoT - bu IoT dasturlarini joylashtirish uchun ishonchli echim.
Bu ko'rsatmaga amal qilib:
- Siz IoT ilovangiz uchun AWS hisobini o'rnatishingiz mumkin
- Siz ESP32 -ni AWS IoT yadrosiga ulashingiz mumkin bo'ladi
- MQTT va HTTP protokoli yordamida xabarlarni yuborish va qabul qilish
- AWS -da yuborilgan ma'lumotlarni ingl
1 -qadam: AWS hisobini sozlash
AWS hisobini o'rnatish juda oson. Siz faqat ikkita sertifikatni yuklashingiz, unga siyosat qo'shishingiz, qurilmani ro'yxatdan o'tkazishingiz va AWS -dagi sensor ma'lumotlarini qabul qilishni boshlashingiz kerak.
AWS hisobini o'rnatish uchun ushbu qo'llanmani bajaring.
2 -qadam: Uskuna va dasturiy ta'minot xususiyatlari
![Uskuna va dasturiy ta'minot xususiyatlari Uskuna va dasturiy ta'minot xususiyatlari](https://i.howwhatproduce.com/images/006/image-15175-12-j.webp)
Dastur xususiyatlari
AWS hisobi
Uskuna texnik xususiyatlari
- ESP32
- Simsiz harorat va tebranish sensori
- Zigmo Gateway qabul qiluvchisi
3 -qadam: Simsiz tebranish va harorat sensori
![Simsiz tebranish va harorat sensori Simsiz tebranish va harorat sensori](https://i.howwhatproduce.com/images/006/image-15175-13-j.webp)
Bu simsiz tarmoqli tarmoq arxitekturasidan foydalangan holda 2 milgacha bo'lgan masofaga ega bo'lgan uzoq masofali sanoat IoT simsiz tebranish va harorat sensori. 16-bitli tebranish va harorat sensori o'z ichiga olgan bu sensor juda aniq tebranish ma'lumotlarini foydalanuvchi tomonidan belgilangan vaqt oralig'ida uzatadi. U quyidagi xususiyatlarga ega:
- ± 32g diapazonli sanoat darajali 3 o'qli tebranish sensori
- RMS, MAX va MIN g vibratsiyasini hisoblab chiqadi
- Shovqinni past o'tkazgichli filtr yordamida olib tashlash
- Chastotalar diapazoni (tarmoqli kengligi) 12, 800 Gts gacha
- Namuna tezligi 25, 600 Gts gacha
- 2 millik simsiz tarmoq bilan shifrlangan aloqa
- Ishlash harorati -40 dan +85 ° C gacha
- Devorga o'rnatilgan yoki magnitlangan IP65 standartli korpus Visual Studio va LabVIEW uchun namuna dasturiy ta'minot.
- Tashqi prob opsiyali tebranish sensori
- 4 ta AA batareyadan 500 000 gacha uzatish, ko'p shluzi va modem variantlari mavjud
4 -qadam: ESP32 AWS dasturiy ta'minoti
AWS -ga ulanish va ma'lumotlarni yuborishni boshlash uchun quyidagi bosqichlarni bajaring
- AWS kutubxonasini quyidagi Github omboridan yuklab oling
- repo -ni klonlang va AWS_IOT faylini Arduino katalogining kutubxona papkasiga joylashtiring
git klon
Endi kodni ko'rib chiqaylik:
- Ushbu ilovada biz Wi -Fi hisob ma'lumotlarini saqlash va IP sozlamalari bo'ylab harakatlanish uchun maxfiy portaldan foydalandik. Asir portalda batafsil tanishish uchun siz quyidagi ko'rsatmalarni o'tishingiz mumkin.
- Asir portal bizga Statik va DHCP sozlamalarini tanlash imkoniyatini beradi. Statik IP, pastki tarmoq niqobi, shlyuz va simsiz sensorlar shluzi kabi hisob ma'lumotlarini kiriting, u IP -da sozlanadi.
- Veb -sahifa mavjud, u erda mavjud WiFi tarmoqlari va RSSI ko'rsatiladigan ro'yxat mavjud. Wi -Fi tarmog'ini va parolni tanlang va yuborishni kiriting. Hisob ma'lumotlari EEPROMda saqlanadi va IP sozlamalari SPIFFSda saqlanadi. Bu haqida ko'proq ma'lumotni ushbu ko'rsatmalarni topishingiz mumkin.
5 -qadam: Sensor ma'lumotlarini simsiz tebranish va harorat sensori orqali olish
![Sensor ma'lumotlarini simsiz tebranish va harorat sensori yordamida olish Sensor ma'lumotlarini simsiz tebranish va harorat sensori yordamida olish](https://i.howwhatproduce.com/images/006/image-15175-14-j.webp)
![Sensor ma'lumotlarini simsiz tebranish va harorat sensori yordamida olish Sensor ma'lumotlarini simsiz tebranish va harorat sensori yordamida olish](https://i.howwhatproduce.com/images/006/image-15175-15-j.webp)
Biz simsiz harorat va tebranish sensorlaridan 54 baytli ramka olamiz. Bu ramka haqiqiy harorat va tebranish ma'lumotlarini olish uchun boshqariladi.
ESP32 -da ketma -ket foydalanish uchun uchta UART mavjud
- RX0 GPIO 3, TX0 GPIO 1
- RX1 GPIO9, TX1 GPIO 10
- RX2 GPIO 16, TX2 GPIO 17
va 3 ta apparat seriyali port
- Seriyali
- Seriya 1
- Seriya 2
Birinchidan, Hardware Serial sarlavha faylini ishga tushiring. Bu erda biz RX2 va TX2 aka -dan foydalanamiz. Seriya ma'lumotlarini olish uchun ESP32 kartasining GPIO 16 va GPIO 17 pinlari.
#qo'shing
# RXD2 16 ni belgilang # TXD2 17 ni aniqlang
Serial2.begin (115200, SERIAL_8N1, RXD2, TXD2); // pinlar 16 rx2, 17 tx2, 19200 bps, 8 bit paritet yo'q 1 stop bit
Keyingi qadamlar sizni haqiqiy sensor qiymatlarini olishga olib keladi
- Harorat, namlik, batareya va boshqa sensor qiymatlarini saqlash uchun o'zgaruvchilar yarating
- Uskuna ketma -ketligi uchun Rx, tx pinini, bod tezligini va parite bitlarini o'rnating
- Birinchidan, Serial1.available () yordamida o'qiladigan biror narsa borligini tekshiring.
- Biz 54 baytli ramkani olamiz.
- Boshlang'ich bayt bo'lgan 0x7E ni tekshiring.
- Vibratsiyali ma'lumotlar 3 o'q uchun RMS qiymatidan, 3 o'q uchun min qiymatlardan, 3 o'q uchun maksimal qiymatlardan iborat.
- harorat va batareya qiymatlari 2 bayt ma'lumotni o'z ichiga oladi
- Sensor nomini, turini, sensor versiyasini oling, 1 bayt ma'lumotni o'z ichiga oladi va uni o'sha joydan olish mumkin
if (Serial2.available ()) {Serial.println ("Serialni o'qish"); ma'lumotlar [0] = Serial2.read (); kechikish (k); if (ma'lumotlar [0] == 0x7E) {Serial.println ("Got Packet"); while (! Serial2.available ()); for (i = 1; i <55; i ++) {data = Serial2.read (); kechikish (1); } if (ma'lumotlar [15] == 0x7F) /////// qaytariladigan ma'lumotlarning to'g'riligini tekshirish uchun {if (ma'lumotlar [22] == 0x08) //////// sensor turiga ishonch hosil qiling. to'g'ri {rms_x = ((uint16_t) (((ma'lumotlar [24]) << 16) + ((ma'lumotlar [25]) << 8) + (ma'lumotlar [26]))/100); rms_y = ((uint16_t) (((ma'lumotlar [27]) << 16) + ((ma'lumotlar [28]) << 8) + (ma'lumotlar [29]))/100); rms_z = ((uint16_t) (((ma'lumotlar [30]) << 16) + ((ma'lumotlar [31]) << 8) + (ma'lumotlar [32]))/100); int16_t max_x = ((uint16_t) (((ma'lumotlar [33]) << 16) + ((ma'lumotlar [34]) << 8) + (ma'lumotlar [35]))/100); int16_t max_y = ((uint16_t) (((ma'lumotlar [36]) << 16) + ((ma'lumotlar [37]) << 8) + (ma'lumotlar [38]))/100); int16_t max_z = ((uint16_t) (((ma'lumotlar [39]) << 16) + ((ma'lumotlar [40]) << 8) + (ma'lumotlar [41]))/100);
int16_t min_x = ((uint16_t) (((ma'lumotlar [42]) << 16) + ((ma'lumotlar [43]) << 8) + (ma'lumotlar [44]))/100); int16_t min_y = ((uint16_t) (((ma'lumotlar [45]) << 16) + ((ma'lumotlar [46]) << 8) + (ma'lumotlar [47]))/100); int16_t min_z = ((uint16_t) (((ma'lumotlar [48]) << 16) + ((ma'lumotlar [49]) << 8) + (ma'lumotlar [50]))/100);
cTemp = (((((ma'lumotlar [51]) * 256) + ma'lumotlar [52])); float batareya = ((ma'lumotlar [18] * 256) + ma'lumotlar [19]); kuchlanish = 0,00322 * batareya; Serial.print ("Sensor raqami"); Serial.println (ma'lumotlar [16]); senseNumber = ma'lumotlar [16]; Serial.print ("Sensor turi"); Serial.println (ma'lumotlar [22]); Serial.print ("Dasturiy ta'minot versiyasi"); Serial.println (ma'lumotlar [17]); Serial.print ("Selsiy bo'yicha harorat:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("X o'qida RMS tebranishi:"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("Y o'qida RMS tebranishi:"); Serial.print (rms_y); Serial.println ("mg"); Serial.print ("Z o'qida RMS tebranishi:"); Serial.print (rms_z); Serial.println ("mg");
Serial.print ("X o'qida minimal tebranish:");
Serial.print (min_x); Serial.println ("mg"); Serial.print ("Y o'qida minimal tebranish:"); Ketma -ket chop etish (min_y); Serial.println ("mg"); Serial.print ("Z o'qida minimal tebranish:"); Serial.print (min_z); Serial.println ("mg");
Serial.print ("ADC qiymati:");
Serial.println (batareya); Serial.print ("Batareya quvvati:"); Ketma -ket chop etish (kuchlanish); Serial.println ("\ n"); if (kuchlanish <1) {Serial.println ("Batareyani almashtirish vaqti"); }}} boshqa {uchun (i = 0; i <54; i ++) {Serial.print (ma'lumotlar ); Serial.print (","); kechikish (1); }}}}
6 -qadam: AWS -ga ulanish
![AWS -ga ulanish AWS -ga ulanish](https://i.howwhatproduce.com/images/006/image-15175-16-j.webp)
- AWSIoT uyasi bilan ulanishni sozlash uchun AWS_IOT.h, WiFi.h sarlavha fayllarini qo'shing.
- Xost manzilingizni, siyosat nomi bo'lgan mijoz identifikatorini va narsaning nomi bo'ladigan mavzu nomini kiriting
// ********* AWS hisob ma'lumotlari ************* // char HOST_ADDRESS = "a2smbp7clzm5uw-ats.iot.us-east-1.amazonaws.com"; char CLIENT_ID = "ncdGatewayPolicy"; char TOPIC_NAME = "ncdGatewayThing";
JSON -ni saqlash uchun char o'zgaruvchisini yarating, bu holda biz JSON -ni saqlash formatini yaratdik
const char *format = "{" SensorId / ": \"%d / ", \" messageId / ":%d, \" rmsX / ":%d, \" rmsY / ":%d, \" rmsZ / ":%d, \" cTemp / ":%d, \" kuchlanish / ":%. 2f}";
AWS_IOT sinfining namunasini yarating
AWS_IOT esp; // AWS_IOT sinfining namunasi
Endi AWSIoT uyasiga quyidagi usul yordamida ulaning
void reconnectMQTT () {if (hornbill.connect (HOST_ADDRESS, CLIENT_ID) == 0) {Serial.println ("AWSga ulangan"); kechikish (1000);
agar (0 == hornbill.subscribe (TOPIC_NAME, mySubCallBackHandler))
{Serial.println ("Obuna bo'lish muvaffaqiyatli"); } else {Serial.println ("Obuna bo'lmadi, narsaning nomi va sertifikatlarini tekshiring"); vaqt (1); }} boshqa {Serial.println ("AWS ulanmagan, HOST manzilini tekshiring"); vaqt (1); }
kechikish (2000);
}
Sensor ma'lumotlarini har 1 daqiqadan so'ng e'lon qiling
if (belgilash> = 60) // har 5 soniyada mavzuga nashr qilish {tick = 0; yuk yuki [PAYLOAD_MAX_LEN]; snprintf (yuk, PAYLOAD_MAX_LEN, format, senseNumber, msgCount ++, rms_x, rms_y, rms_z, cTemp, kuchlanish); Serial.println (yuk yuki); if (hornbill.publish (TOPIC_NAME, yuk) == 0) {Serial.print ("Xabarni chop etish:"); Serial.println (yuk yuki); } else {Serial.println ("Nashr etilmadi"); }} vTaskDelay (1000 / portTICK_RATE_MS); belgilash ++;
7 -qadam: AWS -da ma'lumotlarni vizualizatsiya qilish
![AWS -da ma'lumotlarni vizualizatsiya qilish AWS -da ma'lumotlarni vizualizatsiya qilish](https://i.howwhatproduce.com/images/006/image-15175-17-j.webp)
![AWS -da ma'lumotlarni vizualizatsiya qilish AWS -da ma'lumotlarni vizualizatsiya qilish](https://i.howwhatproduce.com/images/006/image-15175-18-j.webp)
![AWS -da ma'lumotlarni vizualizatsiya qilish AWS -da ma'lumotlarni vizualizatsiya qilish](https://i.howwhatproduce.com/images/006/image-15175-19-j.webp)
- AWS hisobingizga kiring.
- asboblar panelining chap burchagida siz "Xizmatlar" yorlig'ini topasiz
- Ushbu yorliqni bosing va "Internet narsalar" sarlavhasi ostida IoT Core -ni tanlang.
- QoS -ni tanlang va yo'q. abonentlarga yuborilgan xabarlar. Mavzu nomini kiriting.
8 -qadam: Umumiy kod
Umumiy kodni ushbu Github omboridan topishingiz mumkin.
Kreditlar
- Arduino Json
- Simsiz harorat va namlik sensori
- ESP32
- PubSubClient
Tavsiya:
Servo dvigatellarni Moto yordamida qanday ishga tushirish kerak: bit Micro: bit: 7 qadam (rasmlar bilan)
![Servo dvigatellarni Moto yordamida qanday ishga tushirish kerak: bit Micro: bit: 7 qadam (rasmlar bilan) Servo dvigatellarni Moto yordamida qanday ishga tushirish kerak: bit Micro: bit: 7 qadam (rasmlar bilan)](https://i.howwhatproduce.com/images/003/image-6039-j.webp)
Servo dvigatellarni Moto: bit yordamida Micro: bit yordamida qanday ishga tushirish mumkin: Micro: bit funksiyasini kengaytirishning bir usuli-SparkFun Electronics (taxminan 15-20 dollar) moto: bit deb nomlangan taxtasidan foydalanish. Bu murakkab ko'rinadi va ko'plab xususiyatlarga ega, lekin undan servo dvigatellarni ishlatish qiyin emas. Moto: bit sizga imkon beradi
Node-RED yordamida MySQL-ga simsiz tebranish va harorat sensori ma'lumotlari: 40 qadam
![Node-RED yordamida MySQL-ga simsiz tebranish va harorat sensori ma'lumotlari: 40 qadam Node-RED yordamida MySQL-ga simsiz tebranish va harorat sensori ma'lumotlari: 40 qadam](https://i.howwhatproduce.com/images/009/image-26885-j.webp)
Node-RED yordamida MySQL-ga simsiz tebranish va harorat sensori ma'lumotlari: NCD-ning uzoq masofali IoT sanoat simsiz tebranish va harorat sensori bilan tanishish, 2 milgacha masofada simsiz tarmoqli tarmoq tuzilmasidan foydalanish. 16-bitli aniq tebranish va harorat sensori bilan jihozlangan ushbu qurilma
M5stick-C bilan Neopixel Ws2812 kamalakli LED yoritgichi - Arduino IDE yordamida M5stack M5stick C yordamida Neopixel Ws2812 da kamalakni ishga tushirish: 5 qadam
![M5stick-C bilan Neopixel Ws2812 kamalakli LED yoritgichi - Arduino IDE yordamida M5stack M5stick C yordamida Neopixel Ws2812 da kamalakni ishga tushirish: 5 qadam M5stick-C bilan Neopixel Ws2812 kamalakli LED yoritgichi - Arduino IDE yordamida M5stack M5stick C yordamida Neopixel Ws2812 da kamalakni ishga tushirish: 5 qadam](https://i.howwhatproduce.com/images/001/image-2825-28-j.webp)
M5stick-C bilan Neopixel Ws2812 kamalakli LED yoritgichi | Arduino IDE yordamida M5stack M5stick C yordamida Neopixel Ws2812 da Rainbow-ni ishga tushiring: Salom bolalar, biz bu ko'rsatmalarni o'qib beramiz, biz neopixel ws2812 LEDlarini yoki LED tasmasini yoki LED matritsasini yoki LED halqasini m5stack m5stick-C Arduino IDE bilan ishlab chiqish platasi bilan ishlatishni o'rganamiz. u bilan kamalak namunasi
Amazon AWS IoT va ESP8266: 21 qadamlarini ishga tushirish
![Amazon AWS IoT va ESP8266: 21 qadamlarini ishga tushirish Amazon AWS IoT va ESP8266: 21 qadamlarini ishga tushirish](https://i.howwhatproduce.com/images/002/image-3077-42-j.webp)
Amazon AWS IoT va ESP8266 bilan ishlashni boshlash: Ushbu loyiha sizga ESP8266 modulini olish va Mongoose OS yordamida to'g'ridan -to'g'ri AWS IOT -ga ulashni ko'rsatadi. Mongoose OS - bu bulutli ulanishni ta'kidlaydigan mikrokontrollerlar uchun ochiq manbali operatsion tizim. U Dublinning Cesanta tomonidan ishlab chiqilgan
ESP8266 qurilmasi yordamida kompyuterni masofadan o'chirish yoki qayta ishga tushirish: 10 qadam (rasmlar bilan)
![ESP8266 qurilmasi yordamida kompyuterni masofadan o'chirish yoki qayta ishga tushirish: 10 qadam (rasmlar bilan) ESP8266 qurilmasi yordamida kompyuterni masofadan o'chirish yoki qayta ishga tushirish: 10 qadam (rasmlar bilan)](https://i.howwhatproduce.com/images/004/image-11129-6-j.webp)
ESP8266 qurilmasi yordamida kompyuterni masofadan o'chirish yoki qayta ishga tushirish: Bu erda aniq bo'lish uchun, biz boshqa birovning kompyuterini emas, sizning kompyuteringizni o'chirib qo'yamiz. Hikoya shunday bo'ladi: Facebookdagi bir do'stim menga xabar yubordi va u ishlaydigan o'nlab kompyuterlari borligini aytdi. matematika to'plami, lekin har kuni ertalab soat 3 da ular qulflanadi. S