Sadržaj:
- Korak 1: Demonstracija
- Korak 2: Montaža
- Korak 3: Montaža - Tablica
- Korak 4: Ubidots
- Korak 5: Knjižnica SimpleDHT
- Korak 6: Knjižnica PubSubClient
- Korak 7: Knjižnica TinyGSM
- Korak 8: TFT_eSPI knjižnica
- Korak 9: TFT_eSPI knjižnica
- 10. korak: Ubidots
- 11. korak: Promjena podataka u.ino -u
- Korak 12: GPRS_ESP32_DHT.ino - Deklaracije i varijable
- Korak 13: Prikvačivanje
- Korak 14: Postavljanje
- Korak 15: SetupDisplay
- Korak 16: Postavljanje GSM -a
- Korak 17: PovežiteMQTTServer
- Korak 18: Petlja
- Korak 19: PročitajteDHT
- Korak 20: ObjaviteMQTT
- Korak 21: CreateJsonString
- Korak 22: ShowDataOnDisplay
- Korak 23: Datoteke
Video: IOT s mobilnom mrežom s ESP32: 23 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
Danas ćemo razgovarati o GPRS modemu, bolje rečeno, ESP32 i njegovoj uporabi s mobilnom telefonskom mrežom. Ovo je nešto što jako dobro funkcionira. Koristeći MQTT protokol, tada ćemo podatke slati na nadzornu ploču Ubidots. U ovom sklopu upotrijebite zaslon za povratne informacije o krugu, uz SIM800L i čip za mobitel. S ovim projektom ćemo stoga slati podatke o temperaturi i vlažnosti putem GPRS -a i MQTT -a te podatke vizualizirati u linijskom grafikonu.
Korak 1: Demonstracija
Korak 2: Montaža
Korak 3: Montaža - Tablica
Korak 4: Ubidots
Korak 5: Knjižnica SimpleDHT
U Arduino IDE idite na Sketch-> Include Library-> Manage Libraries …
Instalirajte SimpleDHT
Korak 6: Knjižnica PubSubClient
U Arduino IDE idite na Sketch-> Include Library-> Manage Libraries …
Instalirajte PubSubClient
Korak 7: Knjižnica TinyGSM
U Arduino IDE idite na Sketch-> Include Library-> Manage Libraries …
Instalirajte TinyGSM
Korak 8: TFT_eSPI knjižnica
U Arduino IDE idite na Sketch-> Include Library-> Manage Libraries …
Instalirajte TFT_eSPI
Korak 9: TFT_eSPI knjižnica
Promijenite prikazivače u mapi lib.
Prikvačivanje se nalazi u datoteci User_Setup.h u
C: / Users / \ Documents / Arduino / libraries / TFT_eSPI
Promijenite ove zadane vrijednosti na sljedeće vrijednosti na slici.
10. korak: Ubidots
Prijavite se na Ubidots sa svojim računom i kliknite na Uređaji
Kliknite gumb "+" u gornjem desnom kutu
Pritisnite Prazno
Unesite naziv uređaja. Zabilježite "oznaku uređaja", jer će se to koristiti u "temi" koju ćemo koristiti u.ino
Na popisu uređaja pojavit će se uređaj koji ste upravo stvorili. Kliknite na nju.
Na zaslonu koji se pojavi kliknite "Dodaj varijablu". Pojavit će se skočni prozor. Kliknite na "Raw".
Kliknite okvir za tekst i unesite naziv svojstva.
Mora biti točno ono što ćemo poslati u json.ino -a. Ponovite ovo za drugu nekretninu.
Vratite se na nadzornu ploču klikom na logotip Ubidots.
Na nadzornoj ploči kliknite "Dodaj novi widget"
Na popisu widgeta odaberite "Dvoosna"
11. korak: Promjena podataka u.ino -u
Korak 12: GPRS_ESP32_DHT.ino - Deklaracije i varijable
#define TINY_GSM_MODEM_SIM800 // Tipo de modem que estamos usando # include #include #include #include #include // token de Korisničko ime que pegamos ne Ubidots #define token "BBFF-abcdefghijklmnopqrstuvwxyz0123" // Tópico onde vamos postar OS dados de temperatura e umidade (esp32_gprs é o imenu do dispozitiva bez Ubidota) #define TOPIC "/v1.6/devices/esp32_gprs" // id do dispositivo que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678TT Mreža" MD Server MD mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27
Korak 13: Prikvačivanje
// Pinagem em User_Setup.h na popisu bibliotecaTFT_eSPI display = TFT_eSPI (); // Intervalo entre os envios e refresh da tela #define INTERVAL 10000 // Canal serial que vamos usar para comunicarmos com o modem. Iskoristite semper 1 HardwareSerial SerialGSM (1); TinyGsm modemGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Klijent MQTT, passamos url do poslužitelj, porta // e o klijent GSM PubSubClient klijent (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0; vlažnost plovka; // Variável onde iremos armazenar o valor da umidade temperatura plovka; // Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht; // Objeto que realizará a leitura da umidade e temperature
Korak 14: Postavljanje
void setup () {Serial.begin (115200); setupDisplay (); // Pokretanje i konfiguracija prikaza zaslona setupGSM (); // Pokretanje i konfiguracija modema GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segundos e limpamos o display delay (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }
Korak 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 ("Setup Display Complete"); }
Korak 16: Postavljanje GSM -a
void setupGSM () {display.println ("Postavljanje GSM -a …"); // Inicializamos a serial onde está o modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); kašnjenje (3000); // Više informacija o modemu Serial.println (modemGSM.getModemInfo ()); // Pokretanje modema if (! ModemGSM.restart ()) {display.println ("Ponovno pokretanje GSM modema nije uspjelo"); kašnjenje (10000); ESP.restart (); povratak; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Neuspješno povezivanje s mrežom"); kašnjenje (10000); ESP.restart (); povratak; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("GPRS veza nije uspjela"); kašnjenje (10000); ESP.restart (); povratak; } display.println ("Postavljanje GSM uspjeha"); }
Korak 17: PovežiteMQTTServer
void connectMQTTServer () {display.println ("Spajanje na MQTT poslužitelj …"); // Se conecta ao device que definimos if (client.connect (DEVICE_ID, TOKEN, ""))) {// Se conexão foi bem sucedida display.println ("Connected"); } else {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); kašnjenje (10000); ESP.restart (); }}
Korak 18: Petlja
void loop () {// Faz a leitura da umidade e temperature readDHT (); // Potražite MQTT poslužitelja ako (! Client.connected ()) {// Mandamos konektor povezivanjaMQTTServer (); } // 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 publishedMQTT (); // Mostramos os dados no display showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = now; }}
Korak 19: PročitajteDHT
void readDHT () {float t, h; // Faz a leitura da umidade e temperature e apenas atualiza as Varáveis se foi bem sucedido if (dht.read2 (DHT_PIN, & t, & h, NULL) == SimpleDHTErrSuccess) {temperature = t; vlažnost = h; }}
Korak 20: ObjaviteMQTT
void publishedMQTT () {// Cria o json que iremos enviar para or server MQTT String msg = createJsonString (); Serial.print ("Objavi poruku:"); Serial.println (poruka); // Publicamos no tópico int status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Status:" + String (status)); // Status 1 je uspješan ili 0 pogrešan}
Korak 21: CreateJsonString
String createJsonString () {String data = "{"; if (! isnan (vlažnost) &&! isnan (temperatura)) {data+= "\" vlažnost / ":"; podaci+= niz (vlažnost, 2); podaci+= ","; podaci+= "\" temperatura / ":"; podaci+= niz (temperatura, 2); } podaci+= "}"; vratiti podatke; }
Korak 22: ShowDataOnDisplay
void showDataOnDisplay () {// Ponovno postavljanje pokazivača na većinu umidade i temperaturu prikaza na zaslonu.setCursor (0, 0, 2); display.println ("Vlažnost:" + niz (vlažnost, 2)); display.println ("Temperatura:" + niz (temperatura, 2)); }
Korak 23: Datoteke
Preuzmite datoteke
INO
Preporučeni:
Planetarij s neuronskom mrežom koji koristi Python, Electron i Keras: 8 koraka
Planetarij s neuronskom mrežom pomoću Pythona, Electrona i Kerasa: U ovom uputstvu pokazat ću vam kako sam napisao automatski 3D planetarni generator, koristeći Python i Electron. Gornji video prikazuje jedan od nasumičnih planetarija koje je program generirao. ** Napomena: Ovaj program ni na koji način nije savršen, a na nekom mjestu
Napravite lonac za samolijevanje sa Wi -Fi mrežom - zalijeva biljke automatski i šalje upozorenja kada je voda niska: 19 koraka
Napravite lonac za zalijevanje s vlastitim rukama s WiFi -om - automatski zalijeva biljke i šalje upozorenja kada je voda niska: ovaj će vam vodič pokazati kako izgraditi prilagođenu sadilicu za samolijevanje sa Wi -Fi vezom koristeći staru sadilicu za vrt, kantu za smeće, malo ljepila i samopouzdanje Komplet za sastavljanje lonaca za zalijevanje iz Adosia
Napajanje mobitela/mobilnog telefona s vanjskom baterijom ili mrežom .: 3 koraka
Napajanje mobitela/mobilnog telefona vanjskom baterijom ili mrežom: Uvod. Ova će ideja funkcionirati samo s telefonima ili tabletima ako se baterija može ukloniti. Naravno, važno je promatrati polaritet. Budite oprezni da nepažnjom ne oštetite svoj uređaj. Ako niste sigurni u svoju sposobnost da to učinite
Povežite svoj Pi bez glave s WiFi mrežom knjižnice: 7 koraka
Povežite svoj Pi bez glave s WiFi mrežom knjižnice: Koliko ste puta htjeli raditi na svojim projektima Raspberry Pi bez glave u lokalnoj knjižnici, samo da biste se zaglavili jer otvorena mreža WiFi zahtijeva da koristite preglednik? Ne brinite više, ovaj Instructable je tu da vam pomogne! Mi ćemo
Sinkronizirane LED šipke s WiFi mrežom: 3 koraka (sa slikama)
Sinkronizirane LED šipke s WiFi mrežom: Ovaj projekt je zbirka LED šipki s pojedinačno kontroliranim digitalnim LED diodama (WS2812b "neopikseli"). Omogućuju izvođenje animacija bez povezivanja. Za međusobno povezivanje koriste WiFi mrežu, a