Агуулгын хүснэгт:

ESP32 бүхий үүрэн сүлжээтэй IOT: 23 алхам
ESP32 бүхий үүрэн сүлжээтэй IOT: 23 алхам

Видео: ESP32 бүхий үүрэн сүлжээтэй IOT: 23 алхам

Видео: ESP32 бүхий үүрэн сүлжээтэй IOT: 23 алхам
Видео: ESP32 Modbus Communication | FLProg SCADA 2024, Долдугаар сарын
Anonim
Image
Image
Жагсаал
Жагсаал

Өнөөдөр бид GPRS модем, эс тэгвээс ESP32 болон үүрэн телефоны сүлжээнд ашиглах талаар ярилцах болно. Энэ бол маш сайн ажилладаг зүйл юм. MQTT протоколыг ашиглан бид Ubidots хяналтын самбарт өгөгдлийг илгээх болно. Энэхүү угсралтад SIM800L болон гар утасны чипээс гадна хэлхээний талаархи санал хүсэлтийг харуулах дэлгэцийг ашигла. Энэхүү төслийн тусламжтайгаар бид температур, чийгшлийн өгөгдлийг GPRS болон MQTT -ээр дамжуулан илгээж, өгөгдлийг шугамын хүснэгтэд дүрслэн харуулах болно.

Алхам 1: Жагсаал

Алхам 2: угсрах

Чуулган
Чуулган

Алхам 3: Ассемблей - Хүснэгт

Ассемблей - Хүснэгт
Ассемблей - Хүснэгт

Алхам 4: Убидотууд

Убидотууд
Убидотууд

Алхам 5: SimpleDHT номын сан

SimpleDHT номын сан
SimpleDHT номын сан

Arduino IDE дээр Sketch-> Номын санг оруулах-> Номын санг удирдах хэсэгт очно уу.

SimpleDHT суулгана уу

Алхам 6: PubSubClient номын сан

PubSubClient номын сан
PubSubClient номын сан

Arduino IDE дээр Sketch-> Номын санг оруулах-> Номын санг удирдах хэсэгт очно уу.

PubSubClient -ийг суулгана уу

Алхам 7: TinyGSM номын сан

TinyGSM номын сан
TinyGSM номын сан

Arduino IDE дээр Sketch-> Номын санг оруулах-> Номын санг удирдах хэсэгт очно уу.

TinyGSM суулгана уу

Алхам 8: TFT_eSPI номын сан

TFT_eSPI номын сан
TFT_eSPI номын сан

Arduino IDE дээр Sketch-> Номын санг оруулах> Номын санг удирдах … руу очно уу.

TFT_eSPI суулгана уу

Алхам 9: TFT_eSPI номын сан

TFT_eSPI номын сан
TFT_eSPI номын сан

Lib фолдер дахь дэлгэцийн зүүг өөрчилнө үү.

Тогтоох нь User_Setup.h файлд байна

C: / Хэрэглэгчид / Баримт бичиг / Arduino / номын сан / TFT_eSPI

Зураг дээрх эдгээр утгыг дараах утгууд болгон өөрчилнө үү.

Алхам 10: Убидотууд

Убидотууд
Убидотууд
Убидотууд
Убидотууд
Убидотууд
Убидотууд

Ubidots руу өөрийн акаунтаар нэвтэрч, Төхөөрөмжүүд дээр дарна уу

Баруун дээд буланд байгаа "+" товчийг дарна уу

Хоосон дээр дарна уу

Төхөөрөмжийн нэрийг оруулна уу. Үүнийг ".ino" -д ашиглах "сэдэв" хэсэгт ашиглах тул "төхөөрөмжийн шошго" -ыг анхаарна уу

Төхөөрөмжүүдийн жагсаалтад саяхан үүсгэсэн төхөөрөмж гарч ирнэ. Үүн дээр дарна уу.

Гарч буй дэлгэцэн дээр "Хувьсагч нэмэх" дээр дарна уу. Попап гарч ирнэ. "Raw" дээр дарна уу.

Текст хайрцгийг дарж, үл хөдлөх хөрөнгийн нэрийг оруулна уу.

Энэ нь.ino -ийн json дээр бидний илгээсэн зүйл яг байх ёстой. Үүнийг бусад үл хөдлөх хөрөнгийн хувьд давтана уу.

Ubidots лого дээр дарж хяналтын самбар руу буцна уу.

Хяналтын самбар дээр "Шинэ виджет нэмэх" дээр дарна уу.

Виджетүүдийн жагсаалтаас "Давхар тэнхлэг" -ийг сонгоно уу.

Алхам 11:.ino дахь өгөгдлийг өөрчлөх

. Ino дахь өгөгдлийг өөрчлөх
. Ino дахь өгөгдлийг өөрчлөх
. Ino дахь өгөгдлийг өөрчлөх
. Ino дахь өгөгдлийг өөрчлөх

Алхам 12: GPRS_ESP32_DHT.ino - Тунхаглал ба хувьсагчид

GPRS_ESP32_DHT.ino - Тунхаглал ба хувьсагчид
GPRS_ESP32_DHT.ino - Тунхаглал ба хувьсагчид

#TINY_GSM_MODEM_SIM800-ийг тодорхойлох #оруулах #оруулах #оруулах #оруулах #оруулах // Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrpostpvtpdjpgtjpgtjpgjjpg" (esp32_gprs é o nome do dispositivo no Ubidots) #TOPIC "/v1.6/devices/esp32_gprs" -ийг тодорхойлно уу mqtt: //things.ubidots.com "// MQTT -ийн портал #тодорхойлох MQTT_PORT 1883 // Тодорхойлох DHT22 #тодорхойлох DHT_PIN 27

Алхам 13: Бэхлэх

Тогтоож байна
Тогтоож байна

// User_Setup.h на гоймон болон bibliotecaTFT_eSPI дэлгэцийг харуулах = TFT_eSPI (); // Intervalo entre os envios e refresh da tela #define INTERVAL 10000 // Сувгийн цуврал комуникарм комын модемийн суваг. Semper 1 HardwareSerial SerialGSM (1) ашиглах; TinyGsm модемGSM (SerialGSM); TinyGsmClient gsmClient (модемGSM); // Cliente MQTT, url do сервер, портал // GSM PubSubClient клиент (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0; хөвөх чийгшил; // Хувьсах температур нь хөвөх температур; // Янз бүрийн хувилбарууд энгийн бөгөөд энгийн температуртай SimpleDHT22 dht; // Орчин үеийн нөхцөл байдал, температурын өөрчлөлт

Алхам 14: Тохиргоо

void setup () {Serial.begin (115200); setupDisplay (); // Дэлгэцийн тохиргоо эсвэл дэлгэцийн тохиргооGSM (); // GSM connectMQTTServer модемийн тохиргоо эсвэл тохиргоо (); // Conectamos ao mqtt server // Espera 2 сегментүүд ба лимпамууд эсвэл дэлгэцийн саатал (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }

Алхам 15: SetupDisplay

void setupDisplay () {display.init (); display.setRotation (1); display.fillScreen (TFT_BLUE); // Хязгаарлагдмал дэлгэцийг харуулах.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca o texto como branco com fundo azul display.setTextWrap (true, true); // Ativa quebra de linha display.setTextSize (1); display.setCursor (0, 0, 2); // Posicção x, y e fonte do texto display.println ("Дэлгэцийг тохируулах ажил дууссан"); }

Алхам 16: GSM -ийг тохируулах

хүчингүй тохиргооGSM () {display.println ("GSM -ийг тохируулах …"); // SerialGSM.begin (9600, SERIAL_8N1, 4, 2, худал) модемийн цуврал хувилбарыг ажиллуулна уу; саатал (3000); // Мэдээллийн систем эсвэл Serial.println (modemGSM.getModemInfo ()); // Хэрэв модемийг идэвхжүүлбэл (! ModemGSM.restart ()) {display.println ("GSM модемийг дахин эхлүүлж чадсангүй"); саатал (10000); ESP.restart (); буцах; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Сүлжээнд холбогдож чадсангүй"); саатал (10000); ESP.restart (); буцах; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("GPRS холболт амжилтгүй болсон"); саатал (10000); ESP.restart (); буцах; } display.println ("GSM -ийг амжилттай тохируулах"); }

Алхам 17: ConnectMQTTServer

хүчингүй connectMQTTServer () {display.println ("MQTT Сервертэй холбогдож байна …"); // Se conecta ao device que definimos if (client.connect (DEVICE_ID, TOKEN, "")) {// Та дэлгэцийн дэлгэц.println ("Холбогдсон") -г сонгоно уу; } else {// Display.print ("алдаа ="); display.println (client.state ()); саатал (10000); ESP.restart (); }}

Алхам 18: Loop

void loop () {// Faz a leitura da umidade e temperatura readDHT (); // DesQLectou do server MQTT if (! Client.connected ()) {// Mandamos conectar connectMQTTServer (); } // Tempo decorrido desde o boot em milissegundos unsigned long now = millis (); // Хэрэв та (одоо - lastTime> INTERVAL) {// нууцлалыг ашиглах боломжтой бол {// PublicMos public serverMqTT (); // Mostramos os dados showDataOnDisplay () харуулахгүй байна; // Atualizamos o tempo em que foi feito o último envio lastTime = now; }}

Алхам 19: ReadDHT

хүчингүй 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) {температур = t; чийгшил = h; }}

Алхам 20: MQTT -ийг нийтлэх

void yayım Serial.print ("Зурвас нийтлэх:"); Serial.println (msg); // Нийтлэл байхгүй tópico int status = client.publish (СЭДЭВ, msg.c_str ()); Serial.println ("Статус:" + Мөр (статус)); // Статус 1 -ийг сонгоно уу.

Алхам 21: CreateJsonString

CreateJsonString
CreateJsonString

String createJsonString () {String өгөгдөл = "{"; if (! isnan (чийгшил) &&! isnan (температур)) {өгөгдөл+= "\" чийгшил / ":"; өгөгдөл+= Мөр (чийгшил, 2); өгөгдөл+= ","; өгөгдөл+= "\" температур / ":"; өгөгдөл+= Мөр (температур, 2); } өгөгдөл+= "}"; өгөгдлийг буцаах; }

Алхам 22: ShowDataOnDisplay

void showDataOnDisplay () {// Resurs a posichão do cursor, эсвэл umtra umidade, temperatura lidas display.setCursor (0, 0, 2); display.println ("Чийгшил:" + Мөр (чийгшил, 2)); display.println ("Температур:" + Мөр (температур, 2)); }

Алхам 23: Файлууд

Файлуудыг татаж авах

INO

PDF

Зөвлөмж болгож буй: