Obsah:

IOT s mobilní sítí s ESP32: 23 kroků
IOT s mobilní sítí s ESP32: 23 kroků

Video: IOT s mobilní sítí s ESP32: 23 kroků

Video: IOT s mobilní sítí s ESP32: 23 kroků
Video: ESP32 Tutorial 5 - LED Fade, control brightness of an LED -ESP32 IoT Learnig kit 2024, Listopad
Anonim
Image
Image
Demonstrace
Demonstrace

Dnes budeme diskutovat o GPRS modemu, lépe řečeno o ESP32 a jeho použití v mobilní telefonní síti. To je něco, co funguje velmi dobře. Pomocí protokolu MQTT poté odešleme data na řídicí panel Ubidots. V této sestavě použijte displej pro zpětnou vazbu obvodu, kromě SIM800L a čipu mobilního telefonu. V rámci tohoto projektu tedy odešleme údaje o teplotě a vlhkosti prostřednictvím GPRS a MQTT a vizualizujeme data v spojnicovém grafu.

Krok 1: Ukázka

Krok 2: Sestavení

Shromáždění
Shromáždění

Krok 3: Sestavení - stůl

Sestava - stůl
Sestava - stůl

Krok 4: Ubidots

Ubidots
Ubidots

Krok 5: Knihovna SimpleDHT

Knihovna SimpleDHT
Knihovna SimpleDHT

V Arduino IDE přejděte na Sketch-> Include Library-> Manage Libraries…

Nainstalujte SimpleDHT

Krok 6: Knihovna PubSubClient

Knihovna PubSubClient
Knihovna PubSubClient

V Arduino IDE přejděte na Sketch-> Include Library-> Manage Libraries…

Nainstalujte si PubSubClient

Krok 7: Knihovna TinyGSM

Knihovna TinyGSM
Knihovna TinyGSM

V Arduino IDE přejděte na Sketch-> Include Library-> Manage Libraries…

Nainstalujte si TinyGSM

Krok 8: Knihovna TFT_eSPI

Knihovna TFT_eSPI
Knihovna TFT_eSPI

V Arduino IDE přejděte na Sketch-> Include Library-> Manage Libraries…

Nainstalujte TFT_eSPI

Krok 9: Knihovna TFT_eSPI

Knihovna TFT_eSPI
Knihovna TFT_eSPI

Změňte kolíky zobrazení ve složce lib.

Připnutí je v souboru User_Setup.h v

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

Změňte tyto výchozí hodnoty na následující hodnoty na obrázku.

Krok 10: Ubidots

Ubidots
Ubidots
Ubidots
Ubidots
Ubidots
Ubidots

Přihlaste se do Ubidots pomocí svého účtu a klikněte na Zařízení

Klikněte na tlačítko „+“v pravém horním rohu

Klikněte na Prázdné

Zadejte název zařízení. Všimněte si „označení zařízení“, protože toto bude použito v „tématu“, které použijeme v.ino

V seznamu zařízení se zobrazí zařízení, které jste právě vytvořili. Klikněte na to.

Na obrazovce, která se objeví, klikněte na „Přidat proměnnou“. Zobrazí se vyskakovací okno. Klikněte na „Raw“.

Klikněte na textové pole a zadejte název služby.

Musí to být přesně to, co pošleme v souboru JSON.ino. Opakujte to pro další vlastnost.

Vraťte se na hlavní panel kliknutím na logo Ubidots.

Na hlavním panelu klikněte na „Přidat nový widget“

V seznamu widgetů vyberte „Dvojitá osa“

Krok 11: Změna dat v.ino

Změna dat v.ino
Změna dat v.ino
Změna dat v.ino
Změna dat v.ino

Krok 12: GPRS_ESP32_DHT.ino - deklarace a proměnné

GPRS_ESP32_DHT.ino - deklarace a proměnné
GPRS_ESP32_DHT.ino - deklarace a proměnné

#define TINY_GSM_MODEM_SIM800 // Tipy pro moderní použití našich příkladů #zahrnout #include #include #include #include // Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrstidatados epos ondos" (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: Připnutí

Připnutí
Připnutí

// 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žijte semper 1 HardwareSerial SerialGSM (1); TinyGsm modemGSM (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; plovoucí vlhkost; // 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: Nastavení

neplatné nastavení () {Serial.begin (115200); setupDisplay (); // Inicializa e configura o display setupGSM (); // Inicializace a konfigurace modemu GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 se liší od zpoždění zobrazení (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }

Krok 15: Nastavení zobrazení

neplatné nastaveníDisplay () {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 ("Nastavení zobrazení dokončeno"); }

Krok 16: Nastavení GSM

neplatné nastaveníGSM () {display.println ("Nastavení GSM …"); // Inicializamos a serial onde está or modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); zpoždění (3000); // Většina informací o modemu Serial.println (modemGSM.getModemInfo ()); // Inicializa o modem if (! ModemGSM.restart ()) {display.println ("Restarting GSM Modem failed"); zpoždění (10 000); ESP. Restart (); vrátit se; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Failed to connect to network"); zpoždění (10 000); ESP. Restart (); vrátit se; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "" ")) {display.println (" GPRS Connection Failed "); zpoždění (10 000); ESP. Restart (); vrátit se; } display.println ("Nastavení úspěchu GSM"); }

Krok 17: ConnectMQTTServer

void connectMQTTServer () {display.println ("Připojování k serveru MQTT …"); // Viz conecta ao device que definimos if (client.connect (DEVICE_ID, TOKEN, "")) {// Se a conexão foi bem sucedida display.println ("Connected"); } else {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); zpoždění (10 000); ESP. Restart (); }}

Krok 18: Smyčka

void loop () {// Faz a leitura da umidade e temperatura readDHT (); // Vyhledejte server MQTT if (! Client.connected ()) {// Mandamos conectar connectMQTTServer (); } // Tempo decorrido desde o boot em milissegundos unsigned long now = millis (); // Podívejte se na intervalo de envio if (now - lastTime> INTERVAL) {// Publicamos para o server mqtt publishMQTT (); // Mostramos os dados no display 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; vlhkost = h; }}

Krok 20: PublishMQTT

void publishMQTT () {// Cria o json que iremos enviar para o server MQTT String msg = createJsonString (); Serial.print ("Publikovat zprávu:"); Serial.println (zpráva); // 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}

Krok 21: CreateJsonString

CreateJsonString
CreateJsonString

Řetězec createJsonString () {String data = "{"; if (! isnan (vlhkost) &&! isnan (teplota)) {data+= "\" vlhkost / ":"; data+= řetězec (vlhkost, 2); data+= ","; data+= "\" teplota / ":"; data+= řetězec (teplota, 2); } data+= "}"; vrátit data; }

Krok 22: ShowDataOnDisplay

void showDataOnDisplay () {// Obnovte a posuňte kurzor na nejvíce umdade e temperatura lidas display.setCursor (0, 0, 2); display.println ("Vlhkost:" + Řetězec (vlhkost, 2)); display.println ("Teplota:" + Řetězec (teplota, 2)); }

Krok 23: Soubory

Stáhněte si soubory

INO

PDF

Doporučuje: