ዝርዝር ሁኔታ:

IOT ከሴሉላር አውታረ መረብ ጋር በ ESP32: 23 ደረጃዎች
IOT ከሴሉላር አውታረ መረብ ጋር በ ESP32: 23 ደረጃዎች

ቪዲዮ: IOT ከሴሉላር አውታረ መረብ ጋር በ ESP32: 23 ደረጃዎች

ቪዲዮ: IOT ከሴሉላር አውታረ መረብ ጋር በ ESP32: 23 ደረጃዎች
ቪዲዮ: MAC Address Explained 2024, ሀምሌ
Anonim
Image
Image
ሰልፍ
ሰልፍ

ዛሬ ስለ GPRS ሞደም ፣ ወይም ይልቁንም ፣ ስለ ESP32 እና ከሴሉላር ስልክ አውታረመረብ ጋር ስለ አጠቃቀሙ እንነጋገራለን። ይህ በጣም በጥሩ ሁኔታ የሚሠራ ነገር ነው። የ MQTT ፕሮቶኮልን በመጠቀም ከዚያ ወደ Ubidots ዳሽቦርድ ውሂብ እንልካለን። በዚህ ስብሰባ ውስጥ ከሲም 800 ኤል እና ከተንቀሳቃሽ ስልክ ቺፕ በተጨማሪ ለወረዳው ግብረመልስ ማሳያ ይጠቀሙ። በዚህ ፕሮጀክት ፣ ስለዚህ ፣ በ GPRS እና MQTT በኩል የሙቀት እና የእርጥበት መረጃን እንልካለን ፣ እና ውሂቡን በመስመር ገበታ ውስጥ በዓይነ ሕሊናችን እንመለከተዋለን።

ደረጃ 1 - ሰልፍ

ደረጃ 2 - ስብሰባ

ስብሰባ
ስብሰባ

ደረጃ 3 - ስብሰባ - ሠንጠረዥ

ስብሰባ - ሠንጠረዥ
ስብሰባ - ሠንጠረዥ

ደረጃ 4: Ubidots

ኡቢዶቶች
ኡቢዶቶች

ደረጃ 5: SimpleDHT ቤተ -መጽሐፍት

SimpleDHT ቤተ -መጽሐፍት
SimpleDHT ቤተ -መጽሐፍት

በአርዱዲኖ አይዲኢ ውስጥ ወደ Sketch-> ቤተ-መጽሐፍት አካትት-> ቤተ-መጽሐፍቶችን ያቀናብሩ…

SimpleDHT ን ይጫኑ

ደረጃ 6 የ PubSubClient ቤተ -መጽሐፍት

የ PubSubClient ቤተ -መጽሐፍት
የ PubSubClient ቤተ -መጽሐፍት

በአርዱዲኖ አይዲኢ ውስጥ ወደ 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 ፋይል ውስጥ ነው

ሐ: / ተጠቃሚዎች / \ ሰነዶች / Arduino / ቤተ -መጻሕፍት / TFT_eSPI

እነዚህን ነባሪዎች በምስሉ ላይ ወደሚከተሉት እሴቶች ይለውጡ።

ደረጃ 10 - Ubidots

ኡቢዶቶች
ኡቢዶቶች
ኡቢዶቶች
ኡቢዶቶች
ኡቢዶቶች
ኡቢዶቶች

በመለያዎ ወደ Ubidots ይግቡ እና መሣሪያዎች ላይ ጠቅ ያድርጉ

በላይኛው ቀኝ ጥግ ላይ ያለውን “+” ቁልፍን ጠቅ ያድርጉ

ባዶ ጠቅ ያድርጉ

የመሣሪያውን ስም ያስገቡ። ይህ እኛ በ

በመሳሪያዎች ዝርዝር ውስጥ እርስዎ የፈጠሩት መሣሪያ ብቅ ይላል። በእሱ ላይ ጠቅ ያድርጉ።

በሚታየው ማያ ገጽ ላይ “ተለዋዋጭ አክል” ላይ ጠቅ ያድርጉ። ብቅ -ባይ ብቅ ይላል። “ጥሬ” ላይ ጠቅ ያድርጉ።

የጽሑፍ ሳጥኑን ጠቅ ያድርጉ እና የንብረቱን ስም ያስገቡ።

በ.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 #ያካትታሉ #ያካትቱ #ያካትቱ #ያካትቱ #ይካተቱ // Token de usuário que pegamos የለም Ubidots (esp32_gprs é o nome do dispositivo no Ubidots) #defiine TOPIC "/v1.6/devices/esp32_gprs" // id do dispositivo que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678" // URL do MQTT አገልጋይ 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 እና pasta da bibliotecaTFT_eSPI ማሳያ = TFT_eSPI (); // Intervalo entre os envios e refresh da tela #define INTERVAL 10000 // Canal serial que vamos usar para comunicarmos com o ሞደም። የፍሳሽ ማስወገጃ 1 ሃርድዌርSial SerialGSM (1) ይጠቀሙ። TinyGsm modemGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Cliente MQTT ፣ passamos a url do server ፣ porta // e o client 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 ተንሳፋፊ ሙቀት; // Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht; // Objeto que realizará a leitura da Umidade e temperatura

ደረጃ 14: ማዋቀር

ባዶነት ማዋቀር () {Serial.begin (115200); setupDisplay (); // Inicializa e configura o ማሳያ setupGSM (); // Inicializa e configura o modem GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segundos e limpamos o ማሳያ መዘግየት (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }

ደረጃ 15: SetupDisplay

ባዶነት ማዋቀር ማሳያ () {display.init (); display.setRotation (1); display.fillScreen (TFT_BLUE); // ሊምፓ ወይም ማሳያ ከኮር አዙል ማሳያ ጋር። setTextColor (TFT_WHITE ፣ TFT_BLUE); // ኮሎካ ወይም ቴክቶ ኮሞ ብራናኮ ኮም ፈንዶ አዙል ማሳያ። display.setCursor (0, 0, 2); // Posicção x, y e fonte do texto display.println ("የማዋቀር ማሳያ ተጠናቋል"); }

ደረጃ 16: SetupGSM

ባዶነት ማዋቀር GSM () {display.println («GSM Setup…»); // Inicializamos አንድ ተከታታይ onde está o ሞደም SerialGSM.begin (9600 ፣ SERIAL_8N1 ፣ 4 ፣ 2 ፣ ሐሰት); መዘግየት (3000); // Mostra informação sobre o modem Serial.println (modemGSM.getModemInfo ()); // Inicializa o modem ከሆነ (! ModemGSM.restart ()) {display.println («GSM ሞደም ዳግም ማስጀመር አልተሳካም»); መዘግየት (10000); ESP.restart (); መመለስ; } // Espera pela rede ((modemGSM.waitForNetwork ()) {display.println («ከአውታረ መረብ ጋር መገናኘት አልተሳካም»); መዘግየት (10000); ESP.restart (); መመለስ; } // Conecta à rede gprs (APN ፣ usuário ፣ senha) ከሆነ (! ModemGSM.gprsConnect ("" ፣ "" ፣ "")) {display.println ("GPRS ግንኙነት አልተሳካም") ፤ መዘግየት (10000); ESP.restart (); መመለስ; } display.println («GSM Success Setup») ፤ }

ደረጃ 17 ConnectMQTTServer ን ያገናኙ

ባዶነት connectMQTTServer () {display.println ("ከ MQTT አገልጋይ ጋር በመገናኘት ላይ …"); // conecta ao device que definimos if (client.connect (DEVICE_ID ፣ TOKEN ፣ "")) {// ተመልከት conexão foi bem sucedida display.println ("ተገናኝቷል") ፤ } ሌላ {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); መዘግየት (10000); ESP.restart (); }}

ደረጃ 18 - ሉፕ

ባዶነት loop () {// Faz a leitura da umidade e temperatura readDHT (); // (! Client.connected ()) {// Mandamos conectar connectMQTTServer (); } // Tempo decorrido desde o boot em milissegundos ያልተፈረመ ረጅም አሁን = ሚሊስ (); // ካለዎት (አሁን - lastTime> INTERVAL) {// Publicamos para o server mqtt publishMQTT (); // Mostramos os dados ምንም ማሳያ showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = አሁን; }}

ደረጃ 19 ፦ ReadDHT ን ያንብቡ

ባዶነት 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) {ሙቀት = t; እርጥበት = ሸ; }}

ደረጃ 20 ፦ PublishMQTT

ባዶ ህትመትMQTT () {// 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

ሕብረቁምፊ createJsonString () {ሕብረቁምፊ ውሂብ = "{"; ከሆነ (! ኢስናን (እርጥበት) &&! እስናን (የሙቀት መጠን)) {data+= "\" እርጥበት / ":"; ውሂብ+= ሕብረቁምፊ (እርጥበት ፣ 2); ውሂብ+= ","; ውሂብ+= "\" ሙቀት / ":"; ውሂብ+= ሕብረቁምፊ (ሙቀት ፣ 2); } ውሂብ+= "}"; ውሂብን መመለስ; }

ደረጃ 22 ShowDataOnDisplay

ባዶነት ማሳያDataOnDisplay () {// ዳግም ጠቋሚውን ጠቋሚውን እና እጅግ በጣም ጥሩውን የሙቀት መጠን ማሳያውን ያሳያል። setCursor (0 ፣ 0 ፣ 2) ፤ display.println ("እርጥበት:" + ሕብረቁምፊ (እርጥበት, 2)); display.println ("ሙቀት:" + ሕብረቁምፊ (ሙቀት, 2)); }

ደረጃ 23: ፋይሎች

ፋይሎቹን ያውርዱ

INO

ፒዲኤፍ

የሚመከር: