Taula de continguts:
- Pas 1: demostració
- Pas 2: Muntatge
- Pas 3: Muntatge - Taula
- Pas 4: Ubidots
- Pas 5: Biblioteca SimpleDHT
- Pas 6: Biblioteca PubSubClient
- Pas 7: biblioteca TinyGSM
- Pas 8: biblioteca TFT_eSPI
- Pas 9: biblioteca TFT_eSPI
- Pas 10: Ubidots
- Pas 11: Canviar les dades a.ino
- Pas 12: GPRS_ESP32_DHT.ino: declaracions i variables
- Pas 13: fixació
- Pas 14: configuració
- Pas 15: Configuració de la pantalla
- Pas 16: configureu GSM
- Pas 17: ConnectMQTTServer
- Pas 18: bucle
- Pas 19: ReadDHT
- Pas 20: PublishMQTT
- Pas 21: CreateJsonString
- Pas 22: ShowDataOnDisplay
- Pas 23: fitxers
Vídeo: IOT amb xarxa cel·lular amb ESP32: 23 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Avui parlarem sobre el mòdem GPRS, o millor dit, l’ESP32 i el seu ús amb la xarxa de telefonia cel·lular. Això funciona molt bé. Mitjançant el protocol MQTT, enviarem dades al tauler d’Ubidots. Utilitzeu en aquest muntatge una pantalla per retroalimentar el circuit, a més del SIM800L i un xip de mòbil. Per tant, amb aquest projecte, enviarem dades de temperatura i humitat a través de GPRS i MQTT i les visualitzarem en un gràfic de línies.
Pas 1: demostració
Pas 2: Muntatge
Pas 3: Muntatge - Taula
Pas 4: Ubidots
Pas 5: Biblioteca SimpleDHT
A l'IDE Arduino, aneu a Sketch-> Inclou biblioteca-> Gestiona biblioteques …
Instal·leu SimpleDHT
Pas 6: Biblioteca PubSubClient
A l'IDE Arduino, aneu a Sketch-> Inclou biblioteca-> Gestiona biblioteques …
Instal·leu PubSubClient
Pas 7: biblioteca TinyGSM
A l'IDE Arduino, aneu a Sketch-> Inclou biblioteca-> Gestiona biblioteques …
Instal·leu TinyGSM
Pas 8: biblioteca TFT_eSPI
A l'IDE Arduino, aneu a Sketch-> Inclou biblioteca-> Gestiona biblioteques …
Instal·leu TFT_eSPI
Pas 9: biblioteca TFT_eSPI
Canvieu els pins de visualització de la carpeta lib.
La fixació es troba al fitxer User_Setup.h a
C: / Users / \ Documents / Arduino / libraries / TFT_eSPI
Canvieu aquests valors predeterminats als valors següents de la imatge.
Pas 10: Ubidots
Inicieu sessió a Ubidots amb el vostre compte i feu clic a Dispositius
Feu clic al botó "+" a l'extrem superior dret
Feu clic a En blanc
Introduïu el nom del dispositiu. Tingueu en compte l '"etiqueta del dispositiu", ja que s'utilitzarà al "tema" que utilitzarem a.ino
A la llista de dispositius, apareixerà el dispositiu que acabeu de crear. Feu-hi clic.
A la pantalla que apareix, feu clic a "Afegeix una variable". Apareixerà una finestra emergent. Feu clic a "Raw".
Feu clic al quadre de text i introduïu el nom de la propietat.
Ha de ser exactament el que enviarem a la JSON del.ino. Repetiu això per a l’altra propietat.
Torneu al tauler fent clic al logotip d’Ubidots.
Al tauler, feu clic a "Afegeix un widget nou"
A la llista de ginys, trieu "Eix doble"
Pas 11: Canviar les dades a.ino
Pas 12: GPRS_ESP32_DHT.ino: declaracions i variables
#define TINY_GSM_MODEM_SIM800 // Tipo de modem que estamos using # include #include #include #include #include // Token de usuari que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrstuvwxyz0123" // Tópico onde vamos postum osos (esp32_gprs é o nome do dispositivo no Ubidots) #define TOPIC "/v1.6/devices/esp32_gprs" // id do device que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678" // URL do MQTT Server #define MQTT_SERVER " mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27
Pas 13: fixació
// Pinagem em User_Setup.h na 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 modem. Utilitzeu sempre 1 HardwareSerial SerialGSM (1); TinyGsm modemGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Cliente MQTT, passamos a url do server, a porta // e o client GSM PubSubClient client (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio / refresh foi fet uint32_t lastTime = 0; humitat flotant; // 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
Pas 14: configuració
configuració nul·la () {Serial.begin (115200); setupDisplay (); // Inicialitzar i configurar o mostrar setupGSM (); // Inicialització i configuració del mòdem GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segundos e limpamos o display delay (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }
Pas 15: Configuració de la pantalla
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 text com a fons com a fons blau display.setTextWrap (true, true); // Ativa quebra de linha display.setTextSize (1); display.setCursor (0, 0, 2); // Posicção x, y e fonte do text display.println ("Configuració de la pantalla completa"); }
Pas 16: configureu GSM
void setupGSM () {display.println ("Configura GSM …"); // Inicializamos a serial onde está o modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); retard (3000); // Mostra informació sobre el mòdem Serial.println (modemGSM.getModemInfo ()); // Inicialització del mòdem if (! ModemGSM.restart ()) {display.println ("Ha fallat el reinici del mòdem GSM"); retard (10000); ESP.restart (); tornar; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("No s'ha pogut connectar a la xarxa"); retard (10000); ESP.restart (); tornar; } // Conecta à rede gprs (APN, usuari, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("Falla la connexió GPRS"); retard (10000); ESP.restart (); tornar; } display.println ("Configuració de l'èxit GSM"); }
Pas 17: ConnectMQTTServer
void connectMQTTServer () {display.println ("Connexió al servidor MQTT …"); // Es connecta al dispositiu que defineix 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 ()); retard (10000); ESP.restart (); }}
Pas 18: bucle
void loop () {// Faz a leitura da umidade e temperatura readDHT (); // Desconeixeu el servidor MQTT if (! Client.connected ()) {// Mandamos connectar 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 publishMQTT (); // Mostramos os dados no display showDataOnDisplay (); // Atualizamos o tempo em que foi fet o último envio lastTime = now; }}
Pas 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) {temperature = t; humitat = h; }}
Pas 20: PublishMQTT
void publishMQTT () {// Cria o json que iremos enviar para el servidor MQTT String msg = createJsonString (); Serial.print ("Publica missatge:"); Serial.println (msg); // Publicamos no tópico int status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Status:" + String (status)); // Status 1 es succeeix o 0 es deu erro}
Pas 21: CreateJsonString
String createJsonString () {String data = "{"; if (! isnan (humitat) &&! isnan (temperatura)) {data + = "\" humitat / ":"; dades + = Cadena (humitat, 2); dades + = ","; dades + = "\" temperatura / ":"; dades + = Cadena (temperatura, 2); } dades + = "}"; retornar dades; }
Pas 22: ShowDataOnDisplay
void showDataOnDisplay () {// Reset a posição do cursor e mostra umidade e temperatura lidas display.setCursor (0, 0, 2); display.println ("Humitat:" + Cadena (humitat, 2)); display.println ("Temperatura:" + Cadena (temperatura, 2)); }
Pas 23: fitxers
Descarregueu els fitxers
INO
Recomanat:
Llum LED d'escriptori intel·ligent - Il·luminació intel·ligent amb Arduino - Espai de treball Neopixels: 10 passos (amb imatges)
Llum LED d'escriptori intel·ligent | Il·luminació intel·ligent amb Arduino | Espai de treball de Neopixels: ara passem molt de temps a casa estudiant i treballant virtualment, per què no fer que el nostre espai de treball sigui més gran amb un sistema d’il·luminació personalitzat i intel·ligent basat en els LEDs Arduino i Ws2812b. Aquí us mostro com construir el vostre Smart Llum LED d'escriptori que
Pop de botó cel·lular: 8 passos
Button Cell Octopus: el Button Cell Octopus substitueix les piles de botó. Això és útil quan no es disposa d’una bateria de recanvi. Es feia servir per fer funcionar un termòmetre i un indicador d’humitat des d’una bateria de 4 cèntims. També es mostra fer aquesta bateria
COM CONVERTIR UN VELL TELÈFON CEL·LULAR (NOKIA 6600) EN UN MICROORDINADOR SUPERGADGET: 37 passos
COM CONVERTIR UN VELL TELÈFON CEL·LULAR (NOKIA 6600) EN UN MICROCOMPUTADOR SUPERGADGET: http://www.internetsecretbook.com https://www.youtube.com/thebibleformula Enmig de la dificultat hi ha l'oportunitat. - Albert Einstein El telèfon Nokia 6600 presenta noves funcions d’imatge avançades, inclosa una pantalla TFT de 65.536 colors brillant i
Inversor lligat a la xarxa (no alimenta la xarxa) Alternativa UPS: 7 passos (amb imatges)
Inversor lligat a la quadrícula de bricolatge (no alimenta la xarxa) Alternativa de SAI: aquest és un missatge de seguiment de la meva altra instrucció sobre com fer un inversor de connexió a la xarxa que no es retroalimenta, ja que ara sempre és possible fer-ho en certes àrees com a projecte de bricolatge i en alguns llocs no es permet alimentar-s’hi
ADAPTADOR DE TELÈFON CEL·LULAR MÀ GRATU 5T: 5 passos
ADAPTADOR MONEBIL CEL·LULAR GRATU :T: una manera excel·lent de tenir mans lliures trucant al telèfon mòbil, ja sigui al vostre model T. El lloc on treballeu per guanyar diners per tenir aquest telèfon mòbil o simplement penjar-lo al vostre domicili