Talaan ng mga Nilalaman:

IOT Sa Cellular Network Na May ESP32: 23 Mga Hakbang
IOT Sa Cellular Network Na May ESP32: 23 Mga Hakbang

Video: IOT Sa Cellular Network Na May ESP32: 23 Mga Hakbang

Video: IOT Sa Cellular Network Na May ESP32: 23 Mga Hakbang
Video: ESP32 Tutorial 15 - DC Motor Speed Control with ESP32 L293D | SunFounder's ESP32 IoT Learnig kit 2024, Hulyo
Anonim
Image
Image
Pagpapakita
Pagpapakita

Ngayon tatalakayin natin ang tungkol sa modem ng GPRS, o sa halip, ang ESP32 at ang paggamit nito sa network ng cellular phone. Ito ay isang bagay na gumagana nang mahusay. Gamit ang MQTT protocol, magpapadala kami ng data sa dashboard ng Ubidots. Gumamit sa pagpupulong na ito ng isang display para sa feedback ng circuit, bilang karagdagan sa SIM800L at isang chip ng cell phone. Sa proyektong ito, samakatuwid, magpapadala kami ng data ng temperatura at kahalumigmigan sa pamamagitan ng GPRS at MQTT, at isasalamin ang data sa isang linya ng tsart.

Hakbang 1: Pagpapakita

Hakbang 2: Assembly

Assembly
Assembly

Hakbang 3: Assembly - Talahanayan

Assembly - Talahanayan
Assembly - Talahanayan

Hakbang 4: Mga Ubidot

Ubidots
Ubidots

Hakbang 5: SimpleDHT Library

SimpleDHT Library
SimpleDHT Library

Sa Arduino IDE, pumunta sa Sketch-> Isama ang Library-> Pamahalaan ang Mga Aklatan…

I-install ang SimpleDHT

Hakbang 6: PubSubClient Library

PubSubClient Library
PubSubClient Library

Sa Arduino IDE, pumunta sa Sketch-> Isama ang Library-> Pamahalaan ang Mga Aklatan…

I-install ang PubSubClient

Hakbang 7: TinyGSM Library

TinyGSM Library
TinyGSM Library

Sa Arduino IDE, pumunta sa Sketch-> Isama ang Library-> Pamahalaan ang Mga Aklatan…

I-install ang TinyGSM

Hakbang 8: TFT_eSPI Library

TFT_eSPI Library
TFT_eSPI Library

Sa Arduino IDE, pumunta sa Sketch-> Isama ang Library-> Pamahalaan ang Mga Aklatan…

I-install ang TFT_eSPI

Hakbang 9: TFT_eSPI Library

TFT_eSPI Library
TFT_eSPI Library

Baguhin ang mga display pin sa lib folder.

Ang pag-pin ay nasa User_Setup.h file sa

C: / Mga Gumagamit / \ Mga Dokumento / Arduino / mga aklatan / TFT_eSPI

Baguhin ang mga default na ito sa mga sumusunod na halaga sa imahe.

Hakbang 10: Ubidots

Ubidots
Ubidots
Ubidots
Ubidots
Ubidots
Ubidots

Mag-log in sa Ubidots gamit ang iyong account at mag-click sa Mga Device

I-click ang pindutang "+" sa kanang sulok sa itaas

I-click ang Blangko

Ipasok ang pangalan ng aparato. Tandaan ang "label ng aparato," dahil gagamitin ito sa "paksa" na gagamitin namin sa.ino

Sa listahan ng mga aparato, lilitaw ang aparato na iyong nilikha lamang. Pindutin mo.

Sa lalabas na screen, mag-click sa "Magdagdag ng Variable." May lalabas na popup. Mag-click sa "Raw."

I-click ang text box, at ipasok ang pangalan ng pag-aari.

Kailangang maging eksakto kung ano ang ipapadala namin sa json ng.ino. Ulitin ito para sa iba pang pag-aari.

Bumalik sa dashboard sa pamamagitan ng pag-click sa logo ng Ubidots.

Sa dashboard, mag-click sa "Magdagdag ng bagong Widget"

Sa listahan ng Mga Widget, piliin ang "Double axis"

Hakbang 11: Pagbabago ng Data sa.ino

Pagbabago ng Data sa.ino
Pagbabago ng Data sa.ino
Pagbabago ng Data sa.ino
Pagbabago ng Data sa.ino

Hakbang 12: GPRS_ESP32_DHT.ino - Mga Deklarasyon at variable

GPRS_ESP32_DHT.ino - Mga Pagpapahayag at variable
GPRS_ESP32_DHT.ino - Mga Pagpapahayag at variable

#define TINY_GSM_MODEM_SIM800 // Tipo de modem que estamos usando # isama ang #include #include #include #include // Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrstuvwxyz012ar osde" (esp32_gprs é o nome do dispositivo no Ubidots) #define TOPIC "/v1.6/devices/esp32_gprs" // id do dispositivo que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678" // URL do MQTT ServerTddtine ServerTddtine ServerTddwine MTTVER ServerTwitter mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27

Hakbang 13: Pag-pin

Pag-pin
Pag-pin

// Pinagem em User_Setup.h na pasta da bibliotecaTFT_eSPI display = TFT_eSPI (); // Intervalo entre os envios at i-refresh ang tela #define INTERVAL 10000 // Canal serial que vamos usar para comunicarmos com o modem. Gumamit ng semper 1 HardwareSerial SerialGSM (1); TinyGsm modemGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Cliente MQTT, passamos a url do server, isang 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; lumutang halumigmig; // Variável onde iremos armazenar o valor da umidade float temperatura; // Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht; // Objeto que realizará a leitura da umidade e temperatura

Hakbang 14: Pag-setup

void setup () {Serial.begin (115200); setupDisplay (); // Inicializa e configura o display setupGSM (); // Inicializa e configura o modem GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segundos e limpamos o pagpapakita ng pagkaantala (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }

Hakbang 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 (true, true); // Ativa quebra de linha display.setTextSize (1); display.setCursor (0, 0, 2); // Posicção x, y e fonte do texto display.println ("Kumpleto ang Pag-set up ng Display"); }

Hakbang 16: SetupGSM

void setupGSM () {display.println ("Setup GSM…"); // Inicializamos isang serial onde está o modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); pagkaantala (3000); // Mostra informação sobre o modem Serial.println (modemGSM.getModemInfo ()); // Inicializa o modem if (! ModemGSM.restart ()) {display.println ("Nabigo ang pag-restart ng GSM Modem"); pagkaantala (10000); ESP. restart (); bumalik; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Nabigong kumonekta sa network"); pagkaantala (10000); ESP. restart (); bumalik; } // Conecta à rede gprs (APN, usuário, senha) kung (! ModemGSM.gprsConnect ("", "", "")) {display.println ("Nabigo ang Koneksyon ng GPRS"); pagkaantala (10000); ESP. restart (); bumalik; } display.println ("I-setup ang Tagumpay sa GSM"); }

Hakbang 17: ConnectMQTTServer

void connectMQTTServer () {display.println ("Kumokonekta sa MQTT Server …"); // Se conecta ao device que definimos if (client.connect (DEVICE_ID, TOKEN, "")) {// Se a conexão foi bem sucedida display.println ("Connected"); } iba pa {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); pagkaantala (10000); ESP. restart (); }}

Hakbang 18: Loop

void loop () {// Faz a leitura da umidade e temperatura readDHT (); // Se desconectou do server MQTT if (! Client.connected ()) {// Mandamos conectar connectMQTTServer (); } // 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 publishMQTT (); // Mostramos os dados no show showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = now; }}

Hakbang 19: Basahin angDHT

walang bisa ang 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) {temperatura = t; halumigmig = h; }}

Hakbang 20: I-publishMQTT

void publishMQTT () {// Cria o json que iremos enviar para o server MQTT String msg = createJsonString (); Serial.print ("I-publish ang mensahe:"); Serial.println (msg); // Publicamos no tópico int status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Status:" + String (status)); // Status 1 se sucesso ou 0 se deu erro}

Hakbang 21: LumikhaJsonString

LumikhaJsonString
LumikhaJsonString

String createJsonString () {String data = "{"; kung (! isnan (halumigmig) &&! isnan (temperatura)) {data + = "\" kahalumigmigan / ":"; data + = String (halumigmig, 2); data + = ","; data + = "\" temperatura / ":"; data + = String (temperatura, 2); } data + = "}"; ibalik ang data; }

Hakbang 22: ShowDataOnDisplay

void showDataOnDisplay () {// Reseta a posição do cursor at mostra umidade e temperatura lidas display.setCursor (0, 0, 2); display.println ("Humidity:" + String (halumigmig, 2)); display.println ("Temperatura:" + String (temperatura, 2)); }

Hakbang 23: Mga File

I-download ang mga file

INO

PDF

Inirerekumendang: