Índice:
- Etapa 1: Demonstração
- Etapa 2: Montagem
- Etapa 3: Montagem - Mesa
- Etapa 4: Ubidots
- Etapa 5: Biblioteca SimpleDHT
- Etapa 6: Biblioteca PubSubClient
- Etapa 7: Biblioteca TinyGSM
- Etapa 8: Biblioteca TFT_eSPI
- Etapa 9: Biblioteca TFT_eSPI
- Etapa 10: Ubidots
- Etapa 11: Alterar os dados em.ino
- Etapa 12: GPRS_ESP32_DHT.ino - Declarações e variáveis
- Etapa 13: Fixação
- Etapa 14: configuração
- Etapa 15: SetupDisplay
- Etapa 16: SetupGSM
- Etapa 17: ConnectMQTTServer
- Etapa 18: Loop
- Etapa 19: ReadDHT
- Etapa 20: PublishMQTT
- Etapa 21: CreateJsonString
- Etapa 22: ShowDataOnDisplay
- Etapa 23: Arquivos
Vídeo: IOT com rede celular com ESP32: 23 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Hoje falaremos sobre o modem GPRS, ou melhor, o ESP32 e sua utilização com a rede de telefonia celular. Isso é algo que funciona muito bem. Usando o protocolo MQTT, enviaremos dados para o painel do Ubidots. Use nesta montagem um display para feedback do circuito, além do SIM800L e um chip de celular. Com este projeto, portanto, enviaremos dados de temperatura e umidade através de GPRS e MQTT, e visualizaremos os dados em um gráfico de linhas.
Etapa 1: Demonstração
Etapa 2: Montagem
Etapa 3: Montagem - Mesa
Etapa 4: Ubidots
Etapa 5: Biblioteca SimpleDHT
No IDE Arduino, vá para Sketch-> Incluir Biblioteca-> Gerenciar Bibliotecas …
Instale SimpleDHT
Etapa 6: Biblioteca PubSubClient
No IDE Arduino, vá para Sketch-> Incluir Biblioteca-> Gerenciar Bibliotecas …
Instale PubSubClient
Etapa 7: Biblioteca TinyGSM
No IDE Arduino, vá para Sketch-> Incluir Biblioteca-> Gerenciar Bibliotecas …
Instale TinyGSM
Etapa 8: Biblioteca TFT_eSPI
No IDE Arduino, vá para Sketch-> Incluir Biblioteca-> Gerenciar Bibliotecas …
Instale TFT_eSPI
Etapa 9: Biblioteca TFT_eSPI
Altere os pinos de exibição na pasta lib.
A fixação está no arquivo User_Setup.h em
C: / Users / \ Documents / Arduino / libraries / TFT_eSPI
Altere esses padrões para os seguintes valores na imagem.
Etapa 10: Ubidots
Faça login no Ubidots com sua conta e clique em Dispositivos
Clique no botão "+" no canto superior direito
Clique em Branco
Digite o nome do dispositivo. Observe o "rótulo do dispositivo", pois será usado no "tópico" que usaremos no.ino
Na lista de dispositivos, o dispositivo que você acabou de criar aparecerá. Clique nisso.
Na tela que aparece, clique em “Adicionar Variável”. Um pop-up aparecerá. Clique em “Raw”.
Clique na caixa de texto e insira o nome da propriedade.
Tem que ser exatamente o que enviaremos no json do.ino. Repita isso para a outra propriedade.
Volte para o painel clicando no logotipo da Ubidots.
No painel, clique em "Adicionar novo widget"
Na lista de Widgets, escolha "Eixo duplo"
Etapa 11: Alterar os dados em.ino
Etapa 12: GPRS_ESP32_DHT.ino - Declarações e variáveis
#define TINY_GSM_MODEM_SIM800 // Tipo de modem que estamos usando # include #include #include #include #include // Token de que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrstuvwxyz0123" // usuário dados onde postar e postar (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 servidor MQTT #define MQT_SERVER " mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27
Etapa 13: Fixação
// 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. Utilizar sempre 1 HardwareSerial SerialGSM (1); TinyGsm modemGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Cliente MQTT, passa a url do servidor, a porta // e o cliente GSM PubSubClient client (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio / atualização foi feito uint32_t lastTime = 0; umidade do flutuador; // Variável onde hospedará o valor da umidade float; // Variável onde hospedar o valor da temperatura SimpleDHT22 dht; // Objeto que realizará a leitura da umidade e temperatura
Etapa 14: configuração
void setup () {Serial.begin (115200); setupDisplay (); // Inicializa e configura o display setupGSM (); // Inicializa e configura o modem GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segundos e limpamos o display delay (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }
Etapa 15: SetupDisplay
void setupDisplay () {display.init (); display.setRotation (1); display.fillScreen (TFT_BLUE); // Limpa o display com um 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"); }
Etapa 16: SetupGSM
void setupGSM () {display.println ("Setup GSM…"); // Inicializamos um serial onde está o modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); atraso (3000); // Mostra informação sobre o modem Serial.println (modemGSM.getModemInfo ()); // Inicializa o modem if (! ModemGSM.restart ()) {display.println ("Reinicialização do modem GSM falhou"); atraso (10000); ESP.restart (); Retorna; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Falha ao conectar à rede"); atraso (10000); ESP.restart (); Retorna; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("Falha na conexão GPRS"); atraso (10000); ESP.restart (); Retorna; } display.println ("Configuração GSM com sucesso"); }
Etapa 17: ConnectMQTTServer
void connectMQTTServer () {display.println ("Conectando ao servidor MQTT…"); // Se a conexão ao dispositivo que definimos if (client.connect (DEVICE_ID, TOKEN, "")) {// Se a conexão foi bem localizada display.println ("Conectado"); } else {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); atraso (10000); ESP.restart (); }}
Etapa 18: Loop
void loop () {// Faz a leitura da umidade e temperatura readDHT (); // Se desconectou do servidor MQTT if (! Client.connected ()) {// Mandamos conectar connectMQTTServer (); } // Tempo decorrido desde o boot em milissegundos unsigned long now = millis (); // Se passado 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 feito o último envio lastTime = now; }}
Etapa 19: ReadDHT
void readDHT () {float t, h; // Faz a leitura da umidade e temperatura e apenas atualiza como variáveis se foi bem sucedido se (dht.read2 (DHT_PIN, & t, & h, NULL) == SimpleDHTErrSuccess) {temperature = t; umidade = h; }}
Etapa 20: PublishMQTT
void publishMQTT () {// Cria o json que iremos enviar para o servidor MQTT String msg = createJsonString (); Serial.print ("Publicar mensagem:"); Serial.println (msg); // 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}
Etapa 21: CreateJsonString
String createJsonString () {String data = "{"; if (! isnan (umidade) &&! isnan (temperatura)) {data + = "\" umidade / ":"; dados + = String (umidade, 2); dados + = ","; dados + = "\" temperatura / ":"; dados + = String (temperatura, 2); } dados + = "}"; dados de retorno; }
Etapa 22: ShowDataOnDisplay
void showDataOnDisplay () {// Reseta a posição do cursor e mostra umidade e temperatura lidas display.setCursor (0, 0, 2); display.println ("Umidade:" + String (umidade, 2)); display.println ("Temperatura:" + String (temperatura, 2)); }
Etapa 23: Arquivos
Baixe os arquivos
EU NÃO
Recomendado:
O inversor solar fora da rede mais eficiente do mundo: 3 etapas (com fotos)
O inversor solar fora da rede mais eficiente do mundo: a energia solar é o futuro. Os painéis podem durar muitas décadas. Digamos que você tenha um sistema solar não conectado à rede. Você tem uma geladeira / freezer e um monte de outras coisas para executar em sua bela cabine remota. Você não pode se dar ao luxo de desperdiçar energia
Rede de sensores LTE CAT-M1 GSM IoT T - 15 minutos: 5 etapas
Rede de sensores LTE CAT-M1 GSM IoT … T - 15 minutos: Em 08 de abril de 2018, R & D Software Solutions srl [itbrainpower.net] revelou ao público o anúncio do escudo xyz-mIoT por itbrainpower.net - a primeira e mais compacta placa IoT que combina a versatilidade do microcontrole ARM0
Ligue um celular / telefone móvel com bateria externa ou rede elétrica: 3 etapas
Alimentar um celular / telefone móvel com bateria externa ou rede elétrica .: Introdução. Essa ideia só funcionará com telefones ou tablets se a bateria for removível. Observar a polaridade é importante, é claro. Tenha cuidado para não danificar seu dispositivo por descuido. Se você não tiver certeza de sua capacidade de fazer isso
Inversor conectado à rede DIY (não alimenta a rede) Alternativa de UPS: 7 etapas (com fotos)
Inversor DIY Grid Tied (não alimenta a rede) Alternativa de UPS: Este é um post de acompanhamento do meu outro Instructable sobre como fazer um inversor de rede que não realimenta a rede, uma vez que agora é sempre possível fazer isso em certas áreas como um projeto DIY e alguns lugares não permitem a alimentação lá g
Controlador de rede IoT. Parte 9: IoT, automação residencial: 10 etapas (com imagens)
Controlador de rede IoT. Parte 9: IoT, Automação residencial: Isenção de responsabilidade LEIA ISTO PRIMEIRO Este instrutivo detalha um projeto que usa energia da rede elétrica (neste caso UK 240VAC RMS), embora todo cuidado tenha sido tomado para usar práticas seguras e bons princípios de design, sempre há o risco de potencialmente letal eleger