Sisällysluettelo:
- Vaihe 1: Esittely
- Vaihe 2: Kokoonpano
- Vaihe 3: Kokoonpano - Taulukko
- Vaihe 4: Ubidots
- Vaihe 5: SimpleDHT -kirjasto
- Vaihe 6: PubSubClient -kirjasto
- Vaihe 7: TinyGSM -kirjasto
- Vaihe 8: TFT_eSPI -kirjasto
- Vaihe 9: TFT_eSPI -kirjasto
- Vaihe 10: Ubidots
- Vaihe 11: Tietojen muuttaminen.ino -tiedostossa
- Vaihe 12: GPRS_ESP32_DHT.ino - Ilmoitukset ja muuttujat
- Vaihe 13: Kiinnitys
- Vaihe 14: Asennus
- Vaihe 15: Asetusnäyttö
- Vaihe 16: SetupGSM
- Vaihe 17: ConnectMQTTServer
- Vaihe 18: Silmukka
- Vaihe 19: Lue
- Vaihe 20: PublishMQTT
- Vaihe 21: LuoJsonString
- Vaihe 22: ShowDataOnDisplay
- Vaihe 23: Tiedostot
Video: IOT matkapuhelinverkon kanssa ESP32: 23 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Tänään keskustelemme GPRS -modeemista tai pikemminkin ESP32: sta ja sen käytöstä matkapuhelinverkon kanssa. Tämä toimii erittäin hyvin. Käytämme MQTT -protokollaa ja lähetämme tiedot sitten Ubidots -hallintapaneeliin. Käytä tässä kokoonpanossa näyttöä piirin palauttamiseksi SIM800L: n ja matkapuhelinsirun lisäksi. Tämän projektin vuoksi lähetämme lämpötila- ja kosteustietoja GPRS: n ja MQTT: n kautta ja visualisoimme tiedot viivakaaviossa.
Vaihe 1: Esittely
Vaihe 2: Kokoonpano
Vaihe 3: Kokoonpano - Taulukko
Vaihe 4: Ubidots
Vaihe 5: SimpleDHT -kirjasto
Siirry Arduino IDE: ssä Sketch-> Include Library-> Manage Libraries…
Asenna SimpleDHT
Vaihe 6: PubSubClient -kirjasto
Siirry Arduino IDE: ssä Sketch-> Include Library-> Manage Libraries…
Asenna PubSubClient
Vaihe 7: TinyGSM -kirjasto
Siirry Arduino IDE: ssä Sketch-> Include Library-> Manage Libraries…
Asenna TinyGSM
Vaihe 8: TFT_eSPI -kirjasto
Siirry Arduino IDE: ssä Sketch-> Include Library-> Manage Libraries…
Asenna TFT_eSPI
Vaihe 9: TFT_eSPI -kirjasto
Vaihda lib -kansion näytön nastat.
Kiinnitys on User_Setup.h -tiedostossa
C: / Users / \ Documents / Arduino / libraries / TFT_eSPI
Muuta nämä oletusarvot seuraaviksi kuvan arvoiksi.
Vaihe 10: Ubidots
Kirjaudu Ubidotsiin tililläsi ja napsauta Laitteet
Napsauta "+" -painiketta oikeassa yläkulmassa
Valitse Tyhjä
Anna laitteen nimi. Huomaa "laitteen etiketti", koska sitä käytetään "aiheessa", jota käytämme.ino -tiedostossa
Laitteistoluettelossa näkyy juuri luomasi laite. Klikkaa sitä.
Napsauta avautuvassa näytössä Lisää muuttuja. Näkyviin tulee ponnahdusikkuna. Napsauta "Raw".
Napsauta tekstiruutua ja kirjoita omaisuuden nimi.
Sen on oltava juuri sitä, mitä lähetämme.ino -tiedoston json -tiedostossa. Toista tämä toisen ominaisuuden kohdalla.
Palaa hallintapaneeliin napsauttamalla Ubidots -logoa.
Napsauta hallintapaneelissa "Lisää uusi widget"
Valitse widgetiluettelosta "Kaksoisakseli"
Vaihe 11: Tietojen muuttaminen.ino -tiedostossa
Vaihe 12: GPRS_ESP32_DHT.ino - Ilmoitukset ja muuttujat
#define TINY_GSM_MODEM_SIM800 // Tipo de modeem que estamos usando #include #include #include #include #include // Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrstuvwxyz t02 osadio Δd on on on on on on on on on on on on on on on on on on on on '' (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" // URL do MQER Server # mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino on está o DHT22 #define DHT_PIN 27
Vaihe 13: Kiinnitys
// Pinagem em User_Setup.h ja pasta da 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 modeem. Hyödynnä semper 1 HardwareSerial SerialGSM (1); TinyGsm -modeemiGSM (SerialGSM); TinyGsmClient gsmClient (modeemiGSM); // Client MQTT, passamos a url do server, a porta // e tai asiakas GSM PubSubClient client (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0; kelluva kosteus; // 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
Vaihe 14: Asennus
void setup () {Serial.begin (115200); setupDisplay (); // Käyttöönotto ja määritykset tai näytön asetuksetGSM (); // Puhelimen kokoonpanon tai modeemin GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segmentti ja limpamos o display delay (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }
Vaihe 15: Asetusnäyttö
void setupDisplay () {display.init (); display.setRotation (1); display.fillScreen (TFT_BLUE); // Limpa tai näyttö com tai vastaava näyttö.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca tai 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"); }
Vaihe 16: SetupGSM
void setupGSM () {display.println ("Asenna GSM …"); // Sarjaliikenteen sarjamuotoinen esitys tai modeemi SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); viive (3000); // Useimmat tiedot tai modeemi Serial.println (modemGSM.getModemInfo ()); // Puhelimen tai modeemin käyttö, jos (! ModemGSM.restart ()) {display.println ("GSM -modeemin uudelleenkäynnistys epäonnistui"); viive (10000); ESP.restart (); palata; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Yhteyden muodostaminen verkkoon epäonnistui"); viive (10000); ESP.restart (); palata; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("GPRS -yhteys epäonnistui"); viive (10000); ESP.restart (); palata; } display.println ("Setup GSM Success"); }
Vaihe 17: ConnectMQTTServer
void connectMQTTServer () {display.println ("Yhdistetään MQTT -palvelimeen…"); // Se conecta ao device que definimos if (client.connect (DEVICE_ID, TOKEN, ""))) {// Se a conexão foi bem sucedida display.println ("Connected"); } else {// Katso ocorreu algum erro display.print ("error ="); display.println (client.state ()); viive (10000); ESP.restart (); }}
Vaihe 18: Silmukka
void loop () {// Faz a leitura da umidade e temperatura readDHT (); // Valitse palvelimen MQTT, jos (! 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 publicMQTT (); // Mostramos os dados no display showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = now; }}
Vaihe 19: Lue
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) {lämpötila = t; kosteus = h; }}
Vaihe 20: PublishMQTT
void publicMQTT () {// Cria o json que iremos enviar palvelimelle MQTT String msg = createJsonString (); Serial.print ("Julkaise viesti:"); Sarja.println (msg); // Publicamos no tópico int status = client.publish (AIHE, msg.c_str ()); Serial.println ("Tila:" + merkkijono (tila)); // Tila 1 onnistunut tai 0 sekuntia}
Vaihe 21: LuoJsonString
Jono createJsonString () {String data = "{"; if (! isnan (kosteus) &&! isnan (lämpötila)) {data+= "\" kosteus / ":"; data+= merkkijono (kosteus, 2); data+= ","; data+= "\" lämpötila / ":"; data+= merkkijono (lämpötila, 2); } data+= "}"; palauttaa tiedot; }
Vaihe 22: ShowDataOnDisplay
void showDataOnDisplay () {// Nollaa kohdistin ja säädä lämpötila ja säädä näytön lämpötila.setCursor (0, 0, 2); display.println ("Kosteus:" + Jono (kosteus, 2)); display.println ("Lämpötila:" + Jono (lämpötila, 2)); }
Vaihe 23: Tiedostot
Lataa tiedostot
INO
Suositeltava:
Infrapuna -anturin käyttäminen Arduinon kanssa: 8 vaihetta (kuvien kanssa)
Infrapuna -anturin käyttäminen Arduinon kanssa: Mikä on infrapuna -anturi? . IR -signaali
Automaattinen lataus (tyhjiö) -kytkin ACS712: n ja Arduinon kanssa: 7 vaihetta (kuvien kanssa)
Automaattinen kuorman (tyhjiö) kytkin ACS712: n ja Arduinon kanssa: Hei kaikki! Sähkötyökalun käyttäminen suljetussa tilassa on kiire, koska kaikki ilmassa oleva pöly ja ilmassa oleva pöly tarkoittaa pölyä keuhkoissasi. Vac -myymälän suorittaminen voi poistaa osan tästä riskistä, mutta kytkeä sen päälle ja pois päältä joka kerta
GPS-moduulin (NEO-6m) liittäminen Arduinon kanssa: 7 vaihetta (kuvien kanssa)
GPS-moduulin (NEO-6m) liittäminen Arduinon kanssa: Tässä projektissa olen osoittanut, kuinka liittää GPS-moduuli Arduino UNO: n kanssa. Pituus- ja leveysasteiden tiedot näkyvät nestekidenäytössä ja sijaintia voi tarkastella sovelluksessa. Luettelo materiaalista Arduino Uno == > 8 dollarin Ublox NEO-6m GPS -moduuli == > 15 dollaria 16x
Matto anturien kanssa/ RF -kommunikaatio Arduino Micron kanssa: 4 vaihetta (kuvilla)
Matto anturien kanssa/ RF -kommunikaatio Arduino Micro: n kanssa: Sain äskettäin päätökseen asennuksen yhtä monipuolinen, joka koostuu sarjasta lamppuja, jotka reagoivat lamppujen alla olevaan mattoon sijoitettuihin antureihin. Toivottavasti siitä on sinulle hyötyä
Sormenjälkitunnistimen käyttäminen ajanvaraukseen yhdessä XAMP -ratkaisun kanssa: 6 vaihetta (kuvien kanssa)
Sormenjälkitunnistimen käyttäminen ajanvaraukseen yhdessä XAMP -ratkaisun kanssa Ratkaisu: Kouluprojektissa etsimme ratkaisua oppilaiden läsnäolon seurantaan. Monet opiskelijoistamme tulevat myöhään. On työlästä työtä tarkistaa heidän läsnäolonsa. Toisaalta keskustelua on paljon, koska opiskelijat sanovat usein