Orodha ya maudhui:

IOT Pamoja na Mtandao wa rununu na ESP32: 23 Hatua
IOT Pamoja na Mtandao wa rununu na ESP32: 23 Hatua

Video: IOT Pamoja na Mtandao wa rununu na ESP32: 23 Hatua

Video: IOT Pamoja na Mtandao wa rununu na ESP32: 23 Hatua
Video: ESP32 Tutorial 7 - Using Array with ESP32 Arduino Programming-SunFounder's ESP32 IoT Learnig kit 2024, Julai
Anonim
Image
Image
Maandamano
Maandamano

Leo tutazungumzia juu ya modem ya GPRS, au tuseme, ESP32 na matumizi yake na mtandao wa simu za rununu. Hili ni jambo linalofanya kazi vizuri sana. Kutumia itifaki ya MQTT, tutatuma data kwenye dashibodi ya Ubidots. Tumia kwenye mkutano huu onyesho la maoni ya mzunguko, pamoja na SIM800L na chip ya simu ya rununu. Kwa mradi huu, kwa hivyo, tutatuma data ya hali ya joto na unyevu kupitia GPRS na MQTT, na kuibua data kwenye chati ya laini.

Hatua ya 1: Maonyesho

Hatua ya 2: Mkutano

Mkutano
Mkutano

Hatua ya 3: Mkutano - Jedwali

Mkutano - Jedwali
Mkutano - Jedwali

Hatua ya 4: Ubidots

Ubidots
Ubidots

Hatua ya 5: Maktaba ya SimpleDHT

Maktaba ya SimpleDHT
Maktaba ya SimpleDHT

Katika IDE ya Arduino, nenda kwenye Mchoro-> Jumuisha Maktaba-> Dhibiti Maktaba…

Sakinisha RahisiDHT

Hatua ya 6: Maktaba ya PubSubClient

Maktaba ya PubSubClient
Maktaba ya PubSubClient

Katika IDE ya Arduino, nenda kwenye Mchoro-> Jumuisha Maktaba-> Dhibiti Maktaba…

Sakinisha PubSubClient

Hatua ya 7: Maktaba ya TinyGSM

Maktaba ya TinyGSM
Maktaba ya TinyGSM

Katika IDE ya Arduino, nenda kwenye Mchoro-> Jumuisha Maktaba-> Dhibiti Maktaba…

Sakinisha TinyGSM

Hatua ya 8: Maktaba ya TFT_eSPI

Maktaba ya TFT_eSPI
Maktaba ya TFT_eSPI

Katika IDE ya Arduino, nenda kwenye Mchoro-> Jumuisha Maktaba-> Dhibiti Maktaba…

Sakinisha TFT_eSPI

Hatua ya 9: Maktaba ya TFT_eSPI

Maktaba ya TFT_eSPI
Maktaba ya TFT_eSPI

Badilisha pini za kuonyesha kwenye folda ya lib.

Kubandika iko kwenye faili ya Mtumiaji_Setup.h katika

C: Watumiaji / Nyaraka / Arduino / maktaba TFT_eSPI

Badilisha chaguo-msingi hizi kwa maadili yafuatayo kwenye picha.

Hatua ya 10: Ubidots

Ubidots
Ubidots
Ubidots
Ubidots
Ubidots
Ubidots

Ingia kwenye Ubidots na akaunti yako na bonyeza Vifaa

Bonyeza kitufe cha "+" kwenye kona ya juu kulia

Bonyeza Tupu

Ingiza jina la kifaa. Kumbuka "lebo ya kifaa," kwani hii itatumika katika "mada" ambayo tutatumia katika.ino

Katika orodha ya vifaa, kifaa ulichounda tu kitaonekana. Bonyeza juu yake.

Kwenye skrini inayoonekana, bonyeza "Ongeza Mabadiliko." Ibukizi itaonekana. Bonyeza "Mbichi."

Bonyeza kisanduku cha maandishi, na ingiza jina la mali.

Lazima iwe haswa kile tutakachotuma kwenye json ya.ino. Rudia hii kwa mali nyingine.

Rudi kwenye dashibodi kwa kubonyeza nembo ya Ubidots.

Kwenye dashibodi, bonyeza "Ongeza Wijeti mpya"

Katika orodha ya Wijeti, chagua "Mhimili mara mbili"

Hatua ya 11: Kubadilisha Takwimu katika.ino

Kubadilisha Takwimu katika.ino
Kubadilisha Takwimu katika.ino
Kubadilisha Takwimu katika.ino
Kubadilisha Takwimu katika.ino

Hatua ya 12: GPRS_ESP32_DHT.ino - Azimio na Vigeuzi

GPRS_ESP32_DHT.ino - Azimio na Vigeuzi
GPRS_ESP32_DHT.ino - Azimio na Vigeuzi

#fasili TINY_GSM_MODEM_SIM800 // Tipo de modem que estamos usando # ni pamoja na # pamoja #pamoja na #jumlisha # pamoja na // Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrstuvwxy0 (esp32_gprs ome o dispositivo no Ubidots) #fafanua TOPIC "/ v1.6/devices/esp32_gprs" // id do dispositivo que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678" // URL do MQTTTQ URL Do MQTVER "#TT do MQTVER # # URL do MQTVERT # URL do MQTER mqtt: //things.ubidots.com "// Porta padrão do MQTT #fasili MQTT_PORT 1883 // Pino onde está o DHT22 #fasili DHT_PIN 27

Hatua ya 13: Kubandika

Kubandika
Kubandika

// Pinagem em User_Setup.h na pasta da bibliotecaTFT_eSPI display = TFT_eSPI (); // Intervalo entre os envios and refresh da tela #fasili INTERVAL 10000 // Canal serial que vamos usar para comunicarmos com o modem. Tumia semper 1 HardwareSerial SerialGSM (1); ModemGSM ya TinyGsm (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Cliente MQTT, hupitisha url kufanya seva, porta // e o cliente GSM PubSubClient mteja (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio / refresh foi feito uint32_t lastTime = 0; unyevu wa kuelea; // Variável onde iremos armazenar o valor da umidade float joto; // Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht; // Objeto que realizará a leitura da umidade e temperatura

Hatua ya 14: Sanidi

kuanzisha batili () {Serial.begin (115200); kuanzishaDisplay (); // Usanidi na usanidi wa kuonyesha kuanzishaGSM (); // Usanidi na usanidi wa modemu ya GSM unganishaMQTTServer (); // Conectamos ao mqtt server // Espera 2 segundos na limpamos o kuchelewesha kuonyesha (2000); onyesha.fillScreen (TFT_BLUE); onyesha.setCursor (0, 0); }

Hatua ya 15: SetupDisplay

batili setupDisplay () {display.init (); onyesha Kuweka Mzunguko (1); onyesha.fillScreen (TFT_BLUE); // Limpa o kuonyesha com cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca o texto como branco com fundo azul display.setTextWrap (kweli, kweli); // Ativa quebra de linha display.setTextSize (1); onyesha.setCursor (0, 0, 2); // Posicção x, na fonti hufanya maandishi kuonyesha.println ("Kuweka Onyesha Kukamilisha"); }

Hatua ya 16: SetupGSM

batili setupGSM () {display.println ("Setup GSM…"); // Inicializamos serial onde está o modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); kuchelewesha (3000); // Mostra informação sobre o modem Serial.println (modemGSM.getModemInfo ()); // Inicializa o modem ikiwa (! ModemGSM.restart ()) {display.println ("Kuanzisha tena Modem ya GSM imeshindwa"); kuchelewesha (10000); Kuanza kwa ESP (); kurudi; } // Espera pela rede ikiwa (! ModemGSM.waitForNetwork ()) {display.println ("Imeshindwa kuungana na mtandao"); kuchelewesha (10000); Kuanza kwa ESP (); kurudi; } // Conecta à rede gprs (APN, usuário, senha) ikiwa (! ModemGSM.gprsConnect ("", "", "")) {display.println ("Uunganisho wa GPRS Imeshindwa"); kuchelewesha (10000); Kuanza kwa ESP (); kurudi; } kuonyesha.println ("Kuanzisha Mafanikio ya GSM"); }

Hatua ya 17: UnganishaMQTTServer

batili connectMQTTServer () {display.println ("Kuunganisha kwa MQTT Server…"); // Tazama kifaa kama nini ikiwa (mteja.connect (DEVICE_ID, TOKEN, "")) {// Tazama onyesho la onyesho la kupendeza.println ("Imeunganishwa"); } mwingine {// Angalia ocorreu algum erro display.print ("error ="); onyesha.println (mteja.state ()); kuchelewesha (10000); Kuanza kwa ESP (); }}

Hatua ya 18: Kitanzi

kitanzi batili () {// Faz a leitura da umidade na 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 hakuna onyesho la kuonyeshaDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = sasa; }}

Hatua ya 19: ReadDHT

utupu kusomaDHT () {kuelea t, h; // Faz a leitura da umidade and temperatura and apenas atualiza as variáveis se foi bem sucedido if (dht.read2 (DHT_PIN, & t, & h, NULL) == SimpleDHTErrSuccess) {joto = t; unyevu = h; }}

Hatua ya 20: ChapishaMQTT

batili publishMQTT () {// Cria o json que iremos enviar para o server MQTT String msg = createJsonString (); Serial.print ("Chapisha ujumbe:"); Serial.println (msg); // Publicamos no tópico int status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Hali:" + Kamba (hadhi)); // Hali ya 1 se sucesso ou 0 se deu erro}

Hatua ya 21: CreateJsonString

UndaJsonString
UndaJsonString

Kamba createJsonString () {String data = "{"; ikiwa (! isnan (unyevu) &&! isnan (joto)) {data + = "\" unyevu / ":"; data + = Kamba (unyevu, 2); data + = ","; data + = "\" joto / ":"; data + = Kamba (joto, 2); } data + = "}"; data ya kurudi; }

Hatua ya 22: ShowDataOnDisplay

batili showDataOnDisplay () {// Rudisha orodha mpya ya mshale na utaftaji zaidi na kuonyesha maonyesho.setCursor (0, 0, 2); onyesha.println ("Unyevu:" + Kamba (unyevu, 2)); onyesha.println ("Joto:" + Kamba (joto, 2)); }

Hatua ya 23: Faili

Pakua faili

INO

PDF

Ilipendekeza: