Mundarija:

IOT uyali tarmoq bilan ESP32: 23 qadam
IOT uyali tarmoq bilan ESP32: 23 qadam

Video: IOT uyali tarmoq bilan ESP32: 23 qadam

Video: IOT uyali tarmoq bilan ESP32: 23 qadam
Video: Почему надо изучать китайский язык? Удивительные цифры и факты за последние 10 лет развития Китая 2024, Iyul
Anonim
Image
Image
Namoyish
Namoyish

Bugun biz GPRS -modem, aniqrog'i, ESP32 va undan uyali telefon tarmog'ida foydalanish haqida gaplashamiz. Bu juda yaxshi ishlaydigan narsa. MQTT protokoli yordamida biz ma'lumotlarni Ubidots boshqaruv paneliga yuboramiz. Ushbu yig'ilishda SIM800L va uyali telefon chipidan tashqari, kontaktlarning zanglashiga olib keladigan displeydan foydalaning. Shunday qilib, ushbu loyiha yordamida biz GPRS va MQTT orqali harorat va namlik ma'lumotlarini yuboramiz va ma'lumotlarni chiziqli jadvalda ingl.

1 -qadam: Namoyish

2 -qadam: yig'ish

O'rnatish
O'rnatish

3 -qadam: O'rnatish - Jadval

O'rnatish - Jadval
O'rnatish - Jadval

4 -qadam: Ubidotlar

Ubidotlar
Ubidotlar

5 -qadam: SimpleDHT kutubxonasi

SimpleDHT kutubxonasi
SimpleDHT kutubxonasi

Arduino IDE-da Sketch-> Kutubxonani qo'shish-> Kutubxonalarni boshqarish-ga o'ting.

SimpleDHT -ni o'rnating

6 -qadam: PubSubClient kutubxonasi

PubSubClient kutubxonasi
PubSubClient kutubxonasi

Arduino IDE-da Sketch-> Kutubxonani qo'shish-> Kutubxonalarni boshqarish-ga o'ting.

PubSubClient -ni o'rnating

7 -qadam: TinyGSM kutubxonasi

TinyGSM kutubxonasi
TinyGSM kutubxonasi

Arduino IDE-da Sketch-> Kutubxonani qo'shish-> Kutubxonalarni boshqarish-ga o'ting.

TinyGSM -ni o'rnating

8 -qadam: TFT_eSPI kutubxonasi

TFT_eSPI kutubxonasi
TFT_eSPI kutubxonasi

Arduino IDE-da Sketch-> Kutubxonani qo'shish-> Kutubxonalarni boshqarish-ga o'ting.

TFT_eSPI -ni o'rnating

9 -qadam: TFT_eSPI kutubxonasi

TFT_eSPI kutubxonasi
TFT_eSPI kutubxonasi

Lib papkasidagi ko'rsatgich pinlarini o'zgartiring.

Ilova User_Setup.h faylida joylashgan

C: / Foydalanuvchilar / Hujjatlar / Arduino / kutubxonalari / TFT_eSPI

Ushbu standartlarni rasmdagi quyidagi qiymatlarga o'zgartiring.

10 -qadam: Ubidotlar

Ubidotlar
Ubidotlar
Ubidotlar
Ubidotlar
Ubidotlar
Ubidotlar

Hisob qaydnomangiz bilan Ubidots -ga kiring va "Qurilmalar" ni bosing

O'ng yuqori burchakdagi "+" tugmasini bosing

Bo'sh -ni bosing

Qurilma nomini kiriting. "Qurilma yorlig'i" ga e'tibor bering, chunki bu biz.ino -da ishlatadigan "mavzu" da ishlatiladi

Qurilmalar ro'yxatida siz yaratgan qurilma paydo bo'ladi. Unga bosing.

Ko'rsatilgan ekranda "O'zgaruvchini qo'shish" ni bosing. Qalqib chiquvchi oyna paydo bo'ladi. "Xom" ni bosing.

Matn maydonini bosing va mulk nomini kiriting.

Bu biz.ino json -da yuboradigan narsa bo'lishi kerak. Buni boshqa mulk uchun takrorlang.

Ubidots logotipini bosish orqali boshqaruv paneliga qayting.

Boshqaruv panelida "Yangi vidjet qo'shish" ni bosing.

Vidjetlar ro'yxatida "Ikki o'q" ni tanlang.

11 -qadam:.ino -dagi ma'lumotlarni o'zgartirish

. Ino da ma'lumotlarni o'zgartirish
. Ino da ma'lumotlarni o'zgartirish
. Ino da ma'lumotlarni o'zgartirish
. Ino da ma'lumotlarni o'zgartirish

12 -qadam: GPRS_ESP32_DHT.ino - Deklaratsiyalar va o'zgaruvchilar

GPRS_ESP32_DHT.ino - Deklaratsiyalar va o'zgaruvchilar
GPRS_ESP32_DHT.ino - Deklaratsiyalar va o'zgaruvchilar

#TINY_GSM_MODEM_SIM800 ni belgilang // modemni kiritish #qo'shishni #qo'shishni #qo'shishni #qo'shishni // qo'shishni belgilaydi // Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnztoptotexnotpostat" (esp32_gprs é o nome do dispositivo no Ubidots) # #TOPIC "/v1.6/devices/esp32_gprs" ni aniqlang // // Ubidots uchun hech qanday og'riq yo'q #DEVINE_DEVICE_ID "5c01234567890abc12345QVT MERT #T_T_T_T_T_T_T_T_T_T_T_T_T_T_Qida Qo'llaniladi" mqtt: //things.ubidots.com "// MQTT -ni tanlang #MQTT_PORT 1883 -ni aniqlang // DHT22 -ni aniqlang #DHT_PIN 27 -ni aniqlang.

13 -qadam: qadash

Qoplamoq
Qoplamoq

// User_Setup.h va bibliotecaTFT_eSPI displeyini ko'rsatish = TFT_eSPI (); // Intervalo entre os envios e refresh da tela #define INTERVAL 10000 // Kanalning ketma -ket ulanishi uchun modem. Semper 1 HardwareSerial SerialGSM (1) dan foydalaning; TinyGsm modemGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // MQTT mijozi, url -server serveri, port GSM PubSubClient mijozi (MQTT_SERVER, MQTT_PORT, gsmClient); // Ish vaqtini o'zgartirish/yangilash foi feito uint32_t lastTime = 0; namlik namligi; // Variável onde iremos armazenar o valor da umidade float harorat; // Variantlar har xil darajalarda, oddiy haroratda SimpleDHT22; // Ob'ektlar harorati va haroratini o'lchash

14 -qadam: sozlash

void setup () {Serial.begin (115200); setupDisplay (); // Displeyni sozlash uchun GSM konfiguratsiyasi (); // GSM connectMQTTServer modemining konfiguratsiyasi (); // Aloqa serveri bilan bog'lanish // Espera 2 -ni ko'rsatish yoki kechiktirish (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }

15 -qadam: Displeyni sozlash

void setupDisplay () {display.init (); display.setRotation (1); display.fillScreen (TFT_BLUE); // Limfa displeyi displey.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca yoki texto como branco com fundo azul display.setTextWrap (rost, rost); // Displey displeyi.setTextSize (1); display.setCursor (0, 0, 2); // Posicção x, y e fonte do texto display.println ("Displeyni sozlash tugallandi"); }

16 -qadam: GSM -ni sozlash

void setupGSM () {display.println ("GSM ni sozlash …"); // SerialGSM.begin (9600, SERIAL_8N1, 4, 2, noto'g'ri) modemlarining ketma -ketligi; kechikish (3000); // Serial.println (modemGSM.getModemInfo ()) modemi haqida ma'lumot; // Modemni ishga tushirish if (! ModemGSM.restart ()) {display.println ("GSM modemini qayta ishga tushirib bo'lmadi"); kechikish (10000); ESP.restart (); qaytish; } // Espera pa rede if (! ModemGSM.waitForNetwork ()) {display.println ("Tarmoqqa ulanib bo'lmadi"); kechikish (10000); ESP.restart (); qaytish; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("GPRS ulanmagan"); kechikish (10000); ESP.restart (); qaytish; } display.println ("GSM muvaffaqiyatini o'rnatish"); }

17 -qadam: ConnectMQTTServer

void connectMQTTServer () {display.println ("MQTT serveriga ulanmoqda …"); // Agar qurilma aniqlansa, u holda (client.connect (DEVICE_ID, TOKEN, "")) {// Display.println ("Ulangan") ni tanlang; } else {// ekranni ko'rsatish.print ("xato ="); display.println (client.state ()); kechikish (10000); ESP.restart (); }}

18 -qadam: Loop

void loop () {// Faz a leitura da umidade e temperatura readDHT (); // MQTT serverini belgilang, agar (! Client.connected ()) {// Mandamos conectar connectMQTTServer (); } // Tempo dekorido desde o boot em milissegundos unsigned long now = millis (); // Agar siz (hozir - lastTime> INTERVAL) {passiv o intervalli de envio if {now - lastTime> INTERVAL) {// PublicMos server server mqtt publishMQTT (); // Mostramos os dados showDataOnDisplay () ko'rsatilmaydi; // Atrof -muhitni saqlash tezligi yoki vaqtini o'lchash lastTime = hozir; }}

19 -qadam: ReadDHT

void readDHT () {float t, h; // Faz a leitura da umidade e temperatura e apenas atualiza as a variáveis se foi bem sucedido if (dht.read2 (DHT_PIN, & t, & h, NULL) == SimpleDHTErrSuccess) {harorat = t; namlik = h; }}

20 -qadam: PublishMQTT

void publishMQTT () {// MQTT String serveri uchun eng muhim vazifa msg = createJsonString (); Serial.print ("Xabarni chop etish:"); Serial.println (msg); // Ochiq havolalar mavjud emas status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Holat:" + String (holat)); // Status 1 -ni tanlang va 0 -ni tanlang.

21 -qadam: CreateJsonString

CreateJsonString
CreateJsonString

String createJsonString () {String data = "{"; if (! isnan (namlik) &&! isnan (harorat)) {ma'lumotlar+= "\" namlik / ":"; ma'lumotlar+= String (namlik, 2); ma'lumotlar+= ","; ma'lumotlar+= "\" harorat / ":"; ma'lumotlar+= String (harorat, 2); } ma'lumotlar+= "}"; ma'lumotlarni qaytarish; }

22 -qadam: ShowDataOnDisplay

void showDataOnDisplay () {// Resurs a posicão do cursor or mostra umidade va temperatura lidas display.setCursor (0, 0, 2); display.println ("Namlik:" + String (namlik, 2)); display.println ("Harorat:" + String (harorat, 2)); }

23 -qadam: fayllar

Fayllarni yuklab oling

INO

PDF

Tavsiya: