Obsah:

IOT s mobilnou sieťou s ESP32: 23 krokov
IOT s mobilnou sieťou s ESP32: 23 krokov

Video: IOT s mobilnou sieťou s ESP32: 23 krokov

Video: IOT s mobilnou sieťou s ESP32: 23 krokov
Video: Internet vecí 1 - predstavenie ESP32 2024, Júl
Anonim
Image
Image
Ukážka
Ukážka

Dnes budeme diskutovať o GPRS modeme alebo skôr o ESP32 a jeho použití v mobilnej telefónnej sieti. To je niečo, čo funguje veľmi dobre. Pomocou protokolu MQTT potom odošleme údaje na ovládací panel Ubidots. V tejto zostave použite okrem SIM800L a čipu mobilného telefónu aj displej na spätnú väzbu obvodu. S týmto projektom preto budeme odosielať údaje o teplote a vlhkosti prostredníctvom GPRS a MQTT a vizualizovať údaje v čiarovom grafe.

Krok 1: Ukážka

Krok 2: Zostavenie

zhromaždenie
zhromaždenie

Krok 3: Zostavenie - stôl

Zostava - stôl
Zostava - stôl

Krok 4: Ubidots

Ubidots
Ubidots

Krok 5: Knižnica SimpleDHT

Knižnica SimpleDHT
Knižnica SimpleDHT

V Arduino IDE prejdite na Skica-> Zahrnúť knižnicu-> Spravovať knižnice …

Nainštalujte SimpleDHT

Krok 6: Knižnica PubSubClient

Knižnica PubSubClient
Knižnica PubSubClient

V IDE Arduino prejdite na Skica-> Zahrnúť knižnicu-> Spravovať knižnice …

Nainštalujte PubSubClient

Krok 7: Knižnica TinyGSM

Knižnica TinyGSM
Knižnica TinyGSM

V Arduino IDE prejdite na Skica-> Zahrnúť knižnicu-> Spravovať knižnice …

Nainštalujte TinyGSM

Krok 8: Knižnica TFT_eSPI

Knižnica TFT_eSPI
Knižnica TFT_eSPI

V Arduino IDE prejdite na Skica-> Zahrnúť knižnicu-> Spravovať knižnice …

Nainštalujte TFT_eSPI

Krok 9: Knižnica TFT_eSPI

Knižnica TFT_eSPI
Knižnica TFT_eSPI

Zmeňte zobrazovacie kolíky v priečinku lib.

Pripnutie je v súbore User_Setup.h v

C: / Users / \ Dokumenty / Arduino / knižnice / TFT_eSPI

Zmeňte tieto predvolené hodnoty na nasledujúce hodnoty na obrázku.

Krok 10: Ubidots

Ubidots
Ubidots
Ubidots
Ubidots
Ubidots
Ubidots

Prihláste sa do Ubidots pomocou svojho účtu a kliknite na položku Zariadenia

Kliknite na tlačidlo „+“v pravom hornom rohu

Kliknite na položku Prázdne

Zadajte názov zariadenia. Všimnite si „štítok zariadenia“, pretože bude použitý v „téme“, ktorú použijeme v.ino

V zozname zariadení sa zobrazí zariadenie, ktoré ste práve vytvorili. Kliknite naň.

Na obrazovke, ktorá sa zobrazí, kliknite na položku „Pridať premennú“. Zobrazí sa vyskakovacie okno. Kliknite na „Surové“.

Kliknite na textové pole a zadajte názov vlastníctva.

Musí to byť presne to, čo pošleme v súbore.ino. Opakujte to pre druhú vlastnosť.

Vráťte sa na hlavný panel kliknutím na logo Ubidots.

Na hlavnom paneli kliknite na „Pridať nový widget“

V zozname miniaplikácií vyberte možnosť „Dvojitá os“

Krok 11: Zmena údajov v.ino

Zmena údajov v.ino
Zmena údajov v.ino
Zmena údajov v.ino
Zmena údajov v.ino

Krok 12: GPRS_ESP32_DHT.ino - deklarácie a premenné

GPRS_ESP32_DHT.ino - vyhlásenia a premenné
GPRS_ESP32_DHT.ino - vyhlásenia a premenné

#define TINY_GSM_MODEM_SIM800 // Tipy pre moderný spôsob použitia #pripojenia #zahrnúť #include #include #include #include // Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrstiddose evoospove (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" #TT do_Q mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27

Krok 13: Pripnutie

Pripínanie
Pripínanie

// Pinagem em User_Setup.h na pasta da bibliotecaTFT_eSPI display = TFT_eSPI (); // Interval entre os envios e refresh da tela #define INTERVAL 10000 // Canal serial que vamos usar para comunicarmos com o modem. Využite semper 1 HardwareSerial SerialGSM (1); TinyGsm modemGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Klient MQTT, prístup k serveru URL, porta // Klient klienta GSM PubSubClient (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0; plaváková vlhkosť; // Variável onde iremos armazenar o valor da umidade float temperature; // Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht; // Objeto que realizará a leitura da umidade e temperatura

Krok 14: Nastavenie

void setup () {Serial.begin (115200); setupDisplay (); // Inicializácia a konfigurácia nastavenia displejaGSM (); // Inicializácia a konfigurácia modemu GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segmenty a limpamos o oneskorenie zobrazenia (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }

Krok 15: Nastavenie displeja

void setupDisplay () {display.init (); display.setRotation (1); display.fillScreen (TFT_BLUE); // Limp o display com a cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloco 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 ("Setup Display Complete"); }

Krok 16: Nastavenie GSM

neplatné nastavenieGSM () {display.println ("Nastavenie GSM …"); // Inicializácia sériového a externého modemu SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); oneskorenie (3000); // Väčšina informácií o modeme Serial.println (modemGSM.getModemInfo ()); // Inicializa o modem if (! ModemGSM.restart ()) {display.println ("Restarting GSM Modem failed"); oneskorenie (10 000); ESP. Restart (); návrat; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Failed to connect to network"); oneskorenie (10 000); ESP. Restart (); návrat; } // Konecta rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "" ")) {display.println (" GPRS Connection Failed "); oneskorenie (10 000); ESP. Restart (); návrat; } display.println („Nastavenie úspechu siete GSM“); }

Krok 17: Server ConnectMQTTS

void connectMQTTServer () {display.println ("Pripojenie k serveru MQTT …"); // Pozrite sa na ďalšie zariadenia, ktoré môžu definovať if (client.connect (DEVICE_ID, TOKEN, ""))) {// Pozrite sa na obrázok, ktorý sa zobrazí na displeji.println ("Pripojené"); } else {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); oneskorenie (10 000); ESP. Restart (); }}

Krok 18: Slučka

void loop () {// Faz a leitura da umidade e temperatura readDHT (); // Skúste server MQTT if (! Client.connected ()) {// Mandamos conectar connectMQTTServer (); } // Tempo decorrido desde o boot em milissegundos unsigned long now = millis (); // Pozrite sa na intervalo de envio if (now - lastTime> INTERVAL) {// Publicamos para o server mqtt publishMQTT (); // Väčšina obrázkov bez zobrazenia showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = now; }}

Krok 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) {teplota = t; vlhkosť = h; }}

Krok 20: PublishMQTT

void publishMQTT () {// Cria o json que iremos enviar para o server MQTT String msg = createJsonString (); Serial.print ("Publikovať správu:"); Serial.println (msg); // Publicamos no tópico int status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Stav:" + Reťazec (stav)); // Stav 1 sa úspešne opakuje 0 sa eru}

Krok 21: CreateJsonString

CreateJsonString
CreateJsonString

Reťazec createJsonString () {String data = "{"; ak (! isnan (vlhkosť) &&! isnan (teplota)) {data+= "\" vlhkosť / ":"; údaje+= reťazec (vlhkosť, 2); údaje+= ","; údaje+= "\" teplota / ":"; údaje+= reťazec (teplota, 2); } údaje+= "}"; vrátiť údaje; }

Krok 22: ShowDataOnDisplay

void showDataOnDisplay () {// Obnovte a umiestnite kurzor na väčšinu umidade a temperatura lidas display.setCursor (0, 0, 2); display.println ("Vlhkosť:" + Reťazec (vlhkosť, 2)); display.println ("Teplota:" + Reťazec (teplota, 2)); }

Krok 23: Súbory

Stiahnite si súbory

INO

PDF

Odporúča: