فهرست مطالب:

IOT با شبکه تلفن همراه با ESP32: 23 مرحله
IOT با شبکه تلفن همراه با ESP32: 23 مرحله

تصویری: IOT با شبکه تلفن همراه با ESP32: 23 مرحله

تصویری: IOT با شبکه تلفن همراه با ESP32: 23 مرحله
تصویری: ESP32 Tutorial 23 - Reading Voltage of potentiometer using ESP32 | SunFounder's ESP32 IoT kit 2024, جولای
Anonim
Image
Image
تظاهرات
تظاهرات

امروز ما در مورد مودم GPRS یا به عبارت بهتر ESP32 و استفاده از آن در شبکه تلفن همراه بحث خواهیم کرد. این چیزی است که بسیار خوب کار می کند. با استفاده از پروتکل MQTT ، داده ها را به داشبورد Ubidots ارسال می کنیم. در این مجموعه ، علاوه بر SIM800L و تراشه تلفن همراه ، از صفحه نمایش برای بازخورد مدار استفاده کنید. بنابراین ، با این پروژه ، داده های دما و رطوبت را از طریق GPRS و MQTT ارسال می کنیم و داده ها را در نمودار خطی تجسم می کنیم.

مرحله 1: تظاهرات

مرحله 2: مونتاژ

مونتاژ
مونتاژ

مرحله 3: مونتاژ - جدول

مونتاژ - جدول
مونتاژ - جدول

مرحله 4: Ubidots

Ubidots
Ubidots

مرحله 5: کتابخانه SimpleDHT

کتابخانه SimpleDHT
کتابخانه SimpleDHT

در Arduino IDE ، به Sketch-> Include Library-> Manage Libraries بروید…

SimpleDHT را نصب کنید

مرحله 6: PubSubClient Library

کتابخانه PubSubClient
کتابخانه PubSubClient

در Arduino IDE ، به Sketch-> Include Library-> Manage Libraries بروید…

PubSubClient را نصب کنید

مرحله 7: کتابخانه TinyGSM

کتابخانه TinyGSM
کتابخانه TinyGSM

در Arduino IDE ، به Sketch-> Include Library-> Manage Libraries بروید…

TinyGSM را نصب کنید

مرحله 8: کتابخانه TFT_eSPI

کتابخانه TFT_eSPI
کتابخانه TFT_eSPI

در Arduino IDE ، به Sketch-> Include Library-> Manage Libraries بروید…

TFT_eSPI را نصب کنید

مرحله 9: کتابخانه TFT_eSPI

کتابخانه TFT_eSPI
کتابخانه TFT_eSPI

پین های نمایشگر را در پوشه lib تغییر دهید.

سنجاق در فایل User_Setup.h در است

C: / Users / \ Documents / Arduino / libraries / TFT_eSPI

این پیش فرض ها را به مقادیر زیر در تصویر تغییر دهید.

مرحله 10: Ubidots

Ubidots
Ubidots
Ubidots
Ubidots
Ubidots
Ubidots

با حساب خود وارد Ubidots شوید و بر روی Devices کلیک کنید

روی دکمه "+" در گوشه بالا سمت راست کلیک کنید

روی خالی کلیک کنید

نام دستگاه را وارد کنید. به "برچسب دستگاه" توجه کنید ، زیرا این مورد در "موضوع" مورد استفاده ما در.ino استفاده می شود

در لیست دستگاه ها ، دستگاهی که به تازگی ایجاد کرده اید ظاهر می شود. روی آن کلیک کنید.

در صفحه ای که ظاهر می شود ، روی "افزودن متغیر" کلیک کنید. یک پنجره بازشو ظاهر می شود. روی "خام" کلیک کنید.

روی کادر متن کلیک کنید و نام ویژگی را وارد کنید.

باید دقیقاً همان چیزی باشد که ما در json of.ino ارسال می کنیم. این کار را برای ویژگی دیگر تکرار کنید.

با کلیک روی لوگوی Ubidots به داشبورد بازگردید.

در داشبورد ، روی "افزودن ویجت جدید" کلیک کنید

در لیست ابزارک ها ، "محور دوگانه" را انتخاب کنید

مرحله 11: تغییر داده ها در.ino

تغییر داده ها در.ino
تغییر داده ها در.ino
تغییر داده ها در.ino
تغییر داده ها در.ino

مرحله 12: GPRS_ESP32_DHT.ino - اعلامیه ها و متغیرها

GPRS_ESP32_DHT.ino - اعلامیه ها و متغیرها
GPRS_ESP32_DHT.ino - اعلامیه ها و متغیرها

#تعریف TINY_GSM_MODEM_SIM800 // Tipo de modem que estamos usando #include #include #include #include #include // Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmosopo12modopo12 (esp32_gprs é o nome do dispositivo no Ubidots) #تعریف موضوع "/v1.6/devices/esp32_gprs" // id do dispositivo que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678" // doT mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27

مرحله 13: سنجاق کردن

سنجاق کردن
سنجاق کردن

// Pinagem em User_Setup.h na pasta da bibliotecaTFT_eSPI display = TFT_eSPI ()؛ // Intervalo entre os envios e refresh da tela #define INTERVAL 10000 // سریال سریال que vamos usar para comunicarmos com o modem. استفاده از semper 1 HardwareSerial SerialGSM (1)؛ modemGSM TinyGsm (SerialGSM) ؛ TinyGsmClient gsmClient (modemGSM) ؛ // Cliente MQTT، passamos a url do server، a porta // e o cliente GSM PubSubClient client (MQTT_SERVER، MQTT_PORT، gsmClient)؛ // Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0؛ رطوبت شناور ؛ // Variável onde iremos armazenar o valor da umidade temperature float؛ // Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht؛ // Objeto que realizará a leitura da umidade e temperatura

مرحله 14: راه اندازی

void setup () {Serial.begin (115200)؛ setupDisplay ()؛ // Inicializa e configura o display setupGSM ()؛ // Inicializa e configura یا modem GSM connectMQTTServer ()؛ // Conectamos ao mqtt server // Espera 2 segundos e limpamos o display delay (2000)؛ display.fillScreen (TFT_BLUE) ؛ display.setCursor (0 ، 0) ؛ }

مرحله 15: SetupDisplay

void setupDisplay () {display.init ()؛ display.setRotation (1) ؛ display.fillScreen (TFT_BLUE) ؛ // Limpa o display com a cor azul display.setTextColor (TFT_WHITE، TFT_BLUE)؛ // Coloca o texto como branco com fundo azul display.setTextWrap (درست ، درست) ؛ // Ativa quebra de linha display.setTextSize (1) ؛ display.setCursor (0 ، 0 ، 2) ؛ // Posicção x، y e fonte do texto display.println ("Setup Display Complete") ؛ }

مرحله 16: SetupGSM

void setupGSM () {display.println ("راه اندازی GSM …")؛ // Inicializamos a serial onde está o modem SerialGSM.begin (9600 ، SERIAL_8N1 ، 4 ، 2 ، false) ؛ تاخیر (3000) ؛ // Mostra informação sobre o modem Serial.println (modemGSM.getModemInfo ())؛ // Inicializa o modem if (! 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 Connection Failed")؛ تاخیر (10000) ؛ ESP.restart ()؛ برگشت؛ } display.println ("راه اندازی GSM با موفقیت") ؛ }

مرحله 17: ConnectMQTTServer

void connectMQTTServer () {display.println ("اتصال به سرور MQTT …") ؛ // Se conecta ao device que definimos if (client.connect (DEVICE_ID، TOKEN، "")) {// Se a conexão foi bem sucedida display.println ("متصل")؛ } else {// Se ocorreu algum erro display.print ("error =")؛ display.println (client.state ())؛ تاخیر (10000) ؛ ESP.restart ()؛ }}

مرحله 18: حلقه کنید

void loop () {// Faz a leitura da umidade e temperatura readDHT ()؛ // اگر می خواهید (! client.connected ()) {// Mandamos conectar connectMQTTServer () را سرور MQTT انجام دهید } // Tempo decorrido desde o boot em milissegundos unsigned long now = millis ()؛ // Se passou o intervalo de envio if (now - lastTime> INTERVAL) {// Publicamos para o server mqtt publishedMQTT ()؛ // Mostramos os dados no display showDataOnDisplay ()؛ // Atualizamos o tempo em que foi feito o último envio lastTime = now؛ }}

مرحله 19: ReadDHT

void readDHT () {float t، h؛ // Faz a leitura da umidade e temperatura e apenas atualiza as variáveis se foi bem sucedido if (dht.read2 (DHT_PIN، & t، & h، NULL) == SimpleDHTErrSuccess) {temperature = t؛ رطوبت = h ؛ }}

مرحله 20: PublishMQTT

void publishedMQTT () {// Cria o json que iremos enviar para o server MQTT String msg = createJsonString ()؛ Serial.print ("انتشار پیام:")؛ Serial.println (msg)؛ // Publicamos no tópico int status = client.publish (TOPIC، msg.c_str ())؛ Serial.println ("وضعیت:" + رشته (وضعیت)) ؛ // وضعیت 1 se sucesso ou 0 se deu erro}

مرحله 21: CreateJsonString

CreateJsonString
CreateJsonString

String createJsonString () {String data = "{"؛ if (! isnan (رطوبت) &&! isnan (دما)) {data+= "\" رطوبت / ":"؛ داده+= رشته (رطوبت ، 2) ؛ داده+= "،"؛ data+= "\" دما / ":"؛ داده+= رشته (دما ، 2) ؛ } data+= "}"؛ بازگشت داده ها ؛ }

مرحله 22: ShowDataOnDisplay

void showDataOnDisplay () {// Reseta a posição do cursor e mostra umidade e temperatura lidas display.setCursor (0، 0، 2)؛ display.println ("رطوبت:" + رشته (رطوبت ، 2)) ؛ display.println ("دما:" + رشته (دما ، 2)) ؛ }

مرحله 23: فایل ها

فایلها را بارگیری کنید

من نه

PDF

توصیه شده: