Obsah:
- Krok 1: Ukázka
- Krok 2: Sestavení
- Krok 3: Sestavení - stůl
- Krok 4: Ubidots
- Krok 5: Knihovna SimpleDHT
- Krok 6: Knihovna PubSubClient
- Krok 7: Knihovna TinyGSM
- Krok 8: Knihovna TFT_eSPI
- Krok 9: Knihovna TFT_eSPI
- Krok 10: Ubidots
- Krok 11: Změna dat v.ino
- Krok 12: GPRS_ESP32_DHT.ino - deklarace a proměnné
- Krok 13: Připnutí
- Krok 14: Nastavení
- Krok 15: Nastavení zobrazení
- Krok 16: Nastavení GSM
- Krok 17: ConnectMQTTServer
- Krok 18: Smyčka
- Krok 19: ReadDHT
- Krok 20: PublishMQTT
- Krok 21: CreateJsonString
- Krok 22: ShowDataOnDisplay
- Krok 23: Soubory
Video: IOT s mobilní sítí s ESP32: 23 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
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í
Krok 3: Sestavení - stůl
Krok 4: Ubidots
Krok 5: Knihovna SimpleDHT
V Arduino IDE přejděte na Sketch-> Include Library-> Manage Libraries…
Nainstalujte SimpleDHT
Krok 6: Knihovna PubSubClient
V Arduino IDE přejděte na Sketch-> Include Library-> Manage Libraries…
Nainstalujte si PubSubClient
Krok 7: Knihovna TinyGSM
V Arduino IDE přejděte na Sketch-> Include Library-> Manage Libraries…
Nainstalujte si TinyGSM
Krok 8: Knihovna TFT_eSPI
V Arduino IDE přejděte na Sketch-> Include Library-> Manage Libraries…
Nainstalujte TFT_eSPI
Krok 9: 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
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
Krok 12: 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í
// 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
Ř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
Doporučuje:
Jak si vytvořit vlastní WIFI bránu pro připojení Arduina k síti IP?: 11 kroků (s obrázky)
Jak si vytvořit vlastní WIFI bránu pro připojení Arduina k síti IP?: Jako mnoho lidí si myslíte, že Arduino je velmi dobrým řešením pro domácí automatizaci a robotizaci! Ale pokud jde o komunikaci, Arduinos přichází pouze se sériovými linkami. Pracuji na robotu, který musí být trvale připojen k serveru, který běží
Planetárium poháněné neuronovou sítí využívající Python, Electron a Keras: 8 kroků
Planetárium poháněné neuronovou sítí využívající Python, Electron a Keras: V tomto návodu vám ukážu, jak jsem napsal automatický generátor 3D planetária pomocí Pythonu a Electronu. Video výše ukazuje jedno z náhodných planetárií, které program generoval. ** Poznámka: Tento program není nijak dokonalý a na nějakém místě
Blokování reklam v celé síti pomocí vašeho Raspberry Pi: 4 kroky
Síťové blokování reklam s vaším Raspberry Pi: Zažijte čistší, rychlejší web a blokujte otravné reklamy v celé vaší domácí síti pomocí Pi-hole a Raspberry Pi
Jak nastavit ladicí program jádra Windows v síti: 6 kroků
Jak nastavit ladicí program jádra systému Windows v síti: Ladění je oblíbený nástroj, který slouží k získání příčiny chyby. Chyba se může sama infikovat mnoha různými způsoby. může způsobit zhroucení systému (modrá obrazovka/BSOD), může to způsobit zhroucení aplikace, může to způsobit zamrznutí vašeho systému, abychom pojmenovali fe
Připojte svůj Headless Pi k WiFi síti knihovny: 7 kroků
Připojte svůj Headless Pi k knihovně WiFi síti: Kolikrát jste již chtěli pracovat na svých bezhlavých projektech Raspberry Pi v místní knihovně, abyste se ocitli zaseknutí, protože otevřená WiFi síť vyžaduje použití prohlížeče? Už se nemusíte bát, tento Instructable je tu, aby vám pomohl! Budeme