Sommario:
- Passaggio 1: dimostrazione
- Passaggio 2: assemblaggio
- Fase 3: Assemblaggio - Tavolo
- Passaggio 4: Ubidot
- Passaggio 5: libreria SimpleDHT
- Passaggio 6: libreria PubSubClient
- Passaggio 7: libreria TinyGSM
- Passaggio 8: libreria TFT_eSPI
- Passaggio 9: libreria TFT_eSPI
- Passaggio 10: Ubidot
- Passaggio 11: modifica dei dati in.ino
- Passaggio 12: GPRS_ESP32_DHT.ino - Dichiarazioni e variabili
- Passaggio 13: appuntare
- Passaggio 14: configurazione
- Passaggio 15: impostazioneDisplay
- Passaggio 16: configurazioneGSM
- Passaggio 17: ConnettiMQTTServer
- Passaggio 18: ciclo
- Passaggio 19: Leggi DHT
- Passaggio 20: pubblicareMQTT
- Passaggio 21: CreaJsonString
- Passaggio 22: Mostra dati su display
- Passaggio 23: file
Video: IOT con rete cellulare con ESP32: 23 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Oggi parleremo del modem GPRS, o meglio, dell'ESP32 e del suo utilizzo con la rete telefonica cellulare. Questo è qualcosa che funziona molto bene. Utilizzando il protocollo MQTT, invieremo quindi i dati alla dashboard di Ubidots. Utilizzare in questo assemblaggio un display per il feedback del circuito, oltre al SIM800L e un chip per cellulare. Con questo progetto, quindi, invieremo i dati di temperatura e umidità tramite GPRS e MQTT e visualizzeremo i dati in un grafico a linee.
Passaggio 1: dimostrazione
Passaggio 2: assemblaggio
Fase 3: Assemblaggio - Tavolo
Passaggio 4: Ubidot
Passaggio 5: libreria SimpleDHT
Nell'IDE di Arduino, vai su Schizzo-> Includi libreria-> Gestisci librerie …
Installa SimpleDHT
Passaggio 6: libreria PubSubClient
Nell'IDE di Arduino, vai su Schizzo-> Includi libreria-> Gestisci librerie …
Installa PubSubClient
Passaggio 7: libreria TinyGSM
Nell'IDE di Arduino, vai su Schizzo-> Includi libreria-> Gestisci librerie …
Installa TinyGSM
Passaggio 8: libreria TFT_eSPI
Nell'IDE di Arduino, vai su Schizzo-> Includi libreria-> Gestisci librerie …
Installa TFT_eSPI
Passaggio 9: libreria TFT_eSPI
Cambia i pin di visualizzazione nella cartella lib.
Il pinning è nel file User_Setup.h in
C:\Utenti\Documenti\Arduino\librerie\TFT_eSPI
Modificare questi valori predefiniti con i seguenti valori nell'immagine.
Passaggio 10: Ubidot
Accedi a Ubidots con il tuo account e clicca su Dispositivi
Fare clic sul pulsante "+" nell'angolo in alto a destra
Fare clic su Vuoto
Inserisci il nome del dispositivo. Nota l'"etichetta del dispositivo", poiché verrà utilizzata nell'"argomento" che utilizzeremo in.ino
Nell'elenco dei dispositivi, apparirà il dispositivo appena creato. Cliccaci sopra.
Nella schermata che appare, fai clic su "Aggiungi variabile". Apparirà un popup. Fare clic su "Crudo".
Fare clic sulla casella di testo e immettere il nome della proprietà.
Deve essere esattamente quello che invieremo nel json del.ino. Ripetere questa operazione per l'altra proprietà.
Torna alla dashboard facendo clic sul logo Ubidots.
Nella dashboard, fai clic su "Aggiungi nuovo widget"
Nell'elenco dei widget, scegli "Doppio asse"
Passaggio 11: modifica dei dati in.ino
Passaggio 12: GPRS_ESP32_DHT.ino - Dichiarazioni e variabili
#define TINY_GSM_MODEM_SIM800 //Tipo de modem que estamos usando#include #include #include #include #include //Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrstuvwxyz0123" //Tópicos umidos dadevamos (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 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
Passaggio 13: appuntare
//Pinagem em User_Setup.h na pasta da bibliotecaTFT_eSPI display = TFT_eSPI(); //Intervallo entre os envios e refresh da tela #define INTERVAL 10000 //Canal serial que vamos usar para comunicarmos com o modem. Utilizza sempre 1 HardwareSerial SerialGSM(1); TinyGsm modemGSM (SerialGSM); TinyGsmClient gsmClient(modemGSM); //Cliente MQTT, passa un 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; umidità galleggiante; //Variável onde iremos armazenar o valor da umidode float temperature; //Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht; //Objeto que realizará a leitura da umidade e temperatura
Passaggio 14: configurazione
void setup() { Serial.begin(115200); setupDisplay(); //Inizializzazione e configurazione del display setupGSM(); //Inizializzazione e configurazione del modem GSM connectMQTTServer(); //Connettersi al server mqtt //Espera 2 secondi e limpamos o display delay(2000); display.fillScreen(TFT_BLUE); display.setCursor(0, 0); }
Passaggio 15: impostazioneDisplay
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); //Posizione x, y e fonte del testo display.println("Setup Display Complete"); }
Passaggio 16: configurazioneGSM
void setupGSM(){ display.println("Configura GSM…"); //Inizializzazione di una seriale onde está o modem SerialGSM.begin(9600, SERIAL_8N1, 4, 2, false); ritardo (3000); //Mostra informazioni dettagliate sul modem Serial.println(modemGSM.getModemInfo()); //Inizializzazione del modem if (!modemGSM.restart()) { display.println("Riavvio del modem GSM fallito"); ritardo (10000); ESP.restart(); Restituzione; } //Espera pela rede if (!modemGSM.waitForNetwork()) { display.println("Impossibile connettersi alla rete"); ritardo (10000); ESP.restart(); Restituzione; } //Connetti a gprs (APN, usuário, senha) if (!modemGSM.gprsConnect("", "", "")) { display.println("Connessione GPRS fallita"); ritardo (10000); ESP.restart(); Restituzione; } display.println("Impostazione GSM riuscita"); }
Passaggio 17: ConnettiMQTTServer
void connectMQTTServer() { display.println("Connessione al server MQTT…"); //Selezionare un dispositivo che definisce if (client.connect(DEVICE_ID, TOKEN, "")) { //Selezionare una connessione per la successiva visualizzazione.println("Connesso"); } else { //Sei ocorreu algum erro display.print("error = "); display.println(client.state()); ritardo (10000); ESP.restart(); } }
Passaggio 18: ciclo
void loop() { //Faz a leitura da umiditàde e temperatura readDHT(); //Se desconectou do server MQTT if(!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) { //Pubblicamos para o server mqtt publishMQTT(); //Mostramos os dados no display showDataOnDisplay(); //Atualizamos o tempo em que foi feito o último envio lastTime = now; } }
Passaggio 19: Leggi DHT
void readDHT(){ float t, h; //Faz a leitura da umidode e temperatura e apenas atualiza as variáveis se foi bem sucedido if (dht.read2(DHT_PIN, &t, &h, NULL) == SimpleDHTERrSuccess) { temperature = t; umidità = h; } }
Passaggio 20: pubblicareMQTT
void publishMQTT(){ //Cria o json che vuoi per il server MQTT String msg = createJsonString(); Serial.print("Pubblica messaggio: "); Serial.println(msg); //Pubblicamos 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 }
Passaggio 21: CreaJsonString
String createJsonString() { String data = "{"; if(!isnan(umidità) && !isnan(temperatura)) { data+="\"umidità\":"; data+=Stringa(umidità, 2); dati+=", "; dati+="\"temperatura\":"; data+=Stringa(temperatura, 2); } dati+="}"; restituire i dati; }
Passaggio 22: Mostra dati su display
void showDataOnDisplay(){ //Ripristina la posizione del cursore e mostra la temperatura e la temperatura del display.setCursor(0, 0, 2); display.println("Umidità: " + String(umidità, 2)); display.println("Temperatura: " + String(temperatura, 2)); }
Passaggio 23: file
Scarica i file
IO NO
Consigliato:
Alimenta un telefono cellulare/cellulare con batteria esterna o rete.: 3 passaggi
Alimentare un telefono cellulare/cellulare con batteria esterna o rete.: Introduzione. Questa idea funzionerà solo con telefoni o tablet se la batteria è rimovibile. Ovviamente è importante osservare la polarità. Si prega di fare attenzione a non danneggiare il dispositivo per negligenza. Se non sei sicuro della tua capacità di farlo, il
Adattare un telefono cellulare a un telefono cellulare: 7 passaggi (con immagini)
Adattamento di un telefono cellulare a un telefono cellulare: di Bill Reeve ([email protected]) Adattato per istruibili tramite mouse ([email protected]) Dichiarazione di non responsabilità: la procedura qui descritta potrebbe non funzionare per te - questo è un rischio che hai prendere. Se non funziona, o se rompi qualcosa, non è m
Inverter collegato alla rete fai-da-te (non alimenta la rete) Alternativa UPS: 7 passaggi (con immagini)
Alternativa UPS con inverter collegato alla rete fai-da-te (non alimenta la rete): questo è un post di follow-up dal mio altro Instructable sulla creazione di un inverter collegato alla rete che non alimenta la rete, poiché ora è sempre possibile farlo in alcune aree come un progetto fai-da-te e alcuni luoghi non consentono di alimentare lì g
Controller di rete IoT. Parte 9: IoT, automazione domestica: 10 passaggi (con immagini)
Controller di rete IoT. Parte 9: IoT, automazione domestica: Dichiarazione di non responsabilitàLEGGERE PRIMA QUESTO Questo Instructable descrive in dettaglio un progetto che utilizza l'alimentazione di rete (in questo caso UK 240VAC RMS), mentre è stata prestata ogni attenzione per utilizzare pratiche sicure e buoni principi di progettazione, c'è sempre il rischio di potenzialmente letale eleggere
Orologio ESP32 con WiFi, ESP-NOW e cellulare: 4 passaggi
Orologio ESP32 che utilizza WiFi, ESP-NOW e cellulare: questo è un orologio wifi basato su ESP32 che ho realizzato per il concorso wireless. Ho deciso di rendere questo orologio eccessivamente wireless in modo che utilizzi tre diverse forme di comunicazione wireless (WiFi, ESP-NOW e cellulare). Il telefono è collegato a un ripetitore e