
Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03

Neste conjunto de instruções, veremos como construir uma sonda de temperatura habilitada para WiFi com o uso de um ESP8266 simples para levantamento de peso e um sensor de temperatura / umidade DHT11. Também usaremos a placa de circuito que criei e também está à venda na loja Tindie do canal, se você quiser comprar.
Vamos começar com a lista de materiais de que você precisará:
Módulo WiFi ESP8266
amzn.to/2pkGPoa
Sensor DHT11
amzn.to/2phwfhO
Plugue inteligente TP-Link
amzn.to/2GElQUz
Você também pode pegar o módulo inteiro na loja tindie para o canal:
www.tindie.com/products/misperry/wifi-enab…
Verifique também o JLCPCB para fabricação de PCB. Eles são quem eu usei para fazer o PCB:
Frete grátis no primeiro pedido e prototipagem de PCB de $ 2 em
Etapa 1: adicionar o código ao ESP8266
Agora precisaremos atualizar o código a seguir no ESP8266. Este código pode ser encontrado no seguinte repositório github:
No código abaixo, você só terá que configurar as poucas seções de definição principais:
Servidor MQTT:
Usuário MQTT:
Senha MQTT:
MQTT_sensor_topic:
-Wi-fi
Disse: o dito da rede wi-fi à qual você está se conectando
Senha: a senha do WiFi.
Depois de preencher o código abaixo, você pode compilar e verificar se há erros e, se houver erros, você pode atualizá-lo no ESP8266.
/ * * Nome do arquivo: TempHumSensor.ino * * Aplicativo: HomeAssistant Space Heater Thermostat * * Descrição: Este código é para o dispositivo compatível com arduino * habilitado para WiFi ESP8266. Isso retransmitirá as informações de temperatura * do dispositivo DHT11 para o front-end do HASS para processamento. * * Autor: M. Sperry - https://www.youtube.com/misperry * Data: 03 / * Revisão: 1.0 * * * /
#incluir
#include #include #include #include #include
#define CON_TIME_OUT 20 // Tempo limite sem conexão para wi-fi
#define MQTT_TIME_OUT 10 // Tempo limite sem conexão com o servidor MQTT
# define DHTPIN 0 // Pino que está conectado ao sensor DHT
#define DHTTYPE DHT11 // O tipo de sensor é o DHT11, você pode alterá-lo para DHT22 (AM2302), DHT21 (AM2301)
#define mqtt_server "" // Insira seus adderss de servidor MQTT ou IP. Eu uso meu endereço DuckDNS (seunome.duckdns.org) neste campo
#define mqtt_user "" // insira seu nome de usuário MQTT #define mqtt_password "" // insira sua senha #define MQTT_SENSOR_TOPIC "ha / bedroom_temp" // Insira o tópico para seu MQTT
// Wifi: SSID e senha
const char * ssid = ""; const char * senha = "";
// DHT SEtup
DHT_dht unificado (DHTPIN, DHTTYPE); uint32_t delayMS;
WiFiClient wifiClient;
Cliente PubSubClient (wifiClient);
// função chamada para publicar a temperatura e a umidade
void publishData (float p_temperature) {// criar um objeto JSON // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: os dados devem ser convertidos em string; ocorre um problema ao usar floats… // converter para fahrenheit p_temperature = (p_temperature * 1.8) + 32; // converter para fahrenheit root ["temperature"] = (String) p_temperature; root.prettyPrintTo (Serial); Serial.println ("");
dados char [200];
root.printTo (data, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, dados, verdadeiro); }
// função chamada quando uma mensagem MQTT chega
retorno de chamada vazio (char * p_topic, byte * p_payload, unsigned int p_length) {}
void reconnect () {
// Loop até que estejamos reconectados while (! Client.connected ()) {Serial.print ("INFO: Tentando conexão MQTT…"); // Tenta conectar if (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: connected"); } else {Serial.print ("ERRO: falhou, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: tente novamente em 5 segundos"); // Aguarde 5 segundos antes de tentar novamente delay (5000); }}}
void setup (void) {
Serial.begin (9600);
// Começamos nos conectando a uma rede WiFi
Serial.println (); Serial.println (); Serial.print ("Conectando a"); Serial.println (ssid);
WiFi.begin (ssid, senha);
enquanto (WiFi.status ()! = WL_CONNECTED) {
atraso (800); Serial.print ("."); }
Serial.println ("");
Serial.println ("WiFi conectado"); Serial.println ("endereço IP:"); Serial.println (WiFi.localIP ()); // inicie a conexão MQTT client.setServer (mqtt_server, 1883); client.setCallback (callback);
// Inicializar o sensor DHT
dht.begin (); Serial.println ("Dados de sensor unificados DHT11");
// Imprimir detalhes do sensor de temperatura
sensor_t sensor; dht.temperature (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Temperatura"); Serial.print ("Sensor:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.version); Serial.print ("ID exclusivo:"); Serial.println (sensor.sensor_id); Serial.print ("Valor máximo:"); Serial.print (sensor.max_value); Serial.println ("* C"); Serial.print ("Valor mínimo:"); Serial.print (sensor.min_value); Serial.println ("* C"); Serial.print ("Resolução:"); Serial.print (sensor.resolution); Serial.println ("* C"); Serial.println ("------------------------------------"); // Imprime os detalhes do sensor de umidade. dht.humidity (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Umidade"); Serial.print ("Sensor:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.version); Serial.print ("ID exclusivo:"); Serial.println (sensor.sensor_id); Serial.print ("Valor máximo:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Valor mínimo:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Resolução:"); Serial.print (sensor.resolution); Serial.println ("%"); Serial.println ("------------------------------------");
// Defina o atraso entre as leituras do sensor com base nos detalhes do sensor
delayMS = sensor.min_delay / 1000; }
void loop (void) {
temperatura de flutuação;
if (! client.connected ())
{reconectar (); }
atraso (delayMS);
// Obtenha o evento de temperatura e imprima seu valor.
sensores_event_t event; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println ("Erro ao ler a temperatura!"); temperatura = 0,00; } else {temperatura = evento.temperatura; Serial.print ("Temperatura:"); Serial.print (temperatura); Serial.println ("* C"); } // publicar em MQTT publishData (temperatura); }
Etapa 2: Configurando Seu Plugue Inteligente TP-LINK

Você precisará configurar seu plugue inteligente TP-LINK, ou qualquer plugue inteligente para esse material, da maneira que o fabricante recomenda.
Certifique-se de anotar o endereço MAC do dispositivo. Se o seu dispositivo for como o meu dispositivo TP-LINK, você não pode definir um endereço IP estático. Portanto, você precisará configurar seu roteador para reserva de DHCP. Isso pegará o endereço MAC do seu dispositivo e, quando esse dispositivo solicitar um endereço, o roteador fornecerá o mesmo endereço todas as vezes.
Aqui está um link para como configurar isso com Linksys
www.linksys.com/us/support-article?article…
Etapa 3: Configurando o Home Assistant
Agora, para configurar o Home Assistant. Para isso, você precisará adicionar as seguintes configurações ao arquivo configuration.yaml que está localizado na estrutura de pastas /home/homeassistant/.homeassistant no dispositivo em que o instalou.
Depois de adicionar isso à configuração do assistente doméstico, você precisará reiniciar o software do assistente doméstico para que as alterações tenham efeito.
Além disso, estarei usando o plugue inteligente TP-LINK para o dispositivo de comutação e a definição está abaixo no arquivo de configuração. O endereço IP usado para o dispositivo é aquele que você configurou para a reserva de DHCP na etapa anterior.
Essa configuração também pode ser encontrada no seguinte repositório github:
mqtt: switch: - platform: tplink name: Bedroom Heater host: 192.168.2.11
sensor 1:
plataforma: mqtt state_topic: 'ha / bedroom_temp' nome: Quarto Temp unit_of_measurement: '° F' value_template: '{{value_json.temperature}}'
automação:
- alias: _Temp Bedroom Temp High trigger: - plataforma: numeric_state entity_id: sensor. Bedroom_Temp acima: 73
açao:
serviço: homeassistant.turn_off entity_id: switch. Bedroom_Heater
- alias: _Temp Bedroom Temp Low
gatilho: - plataforma: numeric_state entity_id: sensor. Bedroom_Temp abaixo: 73 action: service: homeassistant.turn_on entity_id: switch. Bedroom_Heater
Etapa 4: etapas finais




Agora, com a configuração do assistente doméstico e o código do Arduino configurado, você estará pronto para ativar todo o sistema. Portanto, coloque o plugue do aquecedor / ventilador / refrigerador no plugue inteligente e conecte o plugue inteligente. Assim que estiver pronto, você precisará conectar um pequeno carregador USB e, em seguida, a sonda de temperatura habilitada para WiFi. Quando tudo estiver online, você poderá olhar no painel do assistente doméstico e ver a nova temperatura sendo relatada.
Muito obrigado por toda sua ajuda e apoio. não deixe de curtir e venha visitar o canal https://www.youbue.com/misperry e ver o que temos para você. Certifique-se de se inscrever e compartilhar com seus amigos para ajudar no canal.
Recomendado:
Indicador de bicicleta minimalista, habilitado para toque !: 10 etapas (com imagens)

Indicador de bicicleta minimalista, habilitado para toque !: Hi there! Este é meu primeiro Instructable. Sempre quis fazer as coisas do zero só para ver como funciona e quem não gosta do DIY (Do it yourself) quando você pode modificar algo de acordo com as suas necessidades, certo? Tão interessante quanto um DIY m
IoT APIS V2 - Sistema automatizado de irrigação de plantas habilitado para IoT autônomo: 17 etapas (com fotos)

IoT APIS V2 - Sistema Automatizado de Irrigação de Plantas habilitado para IoT: Este projeto é uma evolução do meu instrutível anterior: APIS - Sistema Automatizado de Irrigação de PlantasEstou usando APIS por quase um ano agora, e queria melhorar o design anterior: Capacidade de monitorar a planta remotamente. É assim
ESP8266 RGB LED STRIP WIFI Control - NODEMCU como um controle remoto IR para faixa de LED controlada por wi-fi - Controle de smartphone RGB LED STRIP: 4 etapas

ESP8266 RGB LED STRIP WIFI Control | NODEMCU como um controle remoto infravermelho para faixa de LED controlada por wi-fi | RGB LED STRIP Smartphone Control: Olá pessoal, neste tutorial vamos aprender como usar o nodemcu ou esp8266 como um controle remoto IR para controlar uma faixa RGB LED e o Nodemcu será controlado pelo smartphone através de wi-fi. Então, basicamente você pode controlar o RGB LED STRIP com seu smartphone
Construir um micro-quadrotor habilitado para WiFi: 5 etapas

Construir um micro-quadrotor habilitado para WiFi: Este é instrutível apenas registrar o quão simples é construir um micro-quadrotor habilitado para WiFi você mesmo! A maioria das peças podem ser compradas baratas e facilmente. E use seu telefone Android como controle remoto
Usando seu telefone Sony Ericsson habilitado para Bluetooth para controlar seu computador: 6 etapas

Usando seu telefone Sony Ericsson habilitado para Bluetooth para controlar seu computador: eu tenho lido sobre instrutíveis há algum tempo e sempre quis fazer algumas das coisas que as pessoas escreveram, mas me peguei olhando coisas que são difíceis de fazer porque são genuinamente difíceis de fazer, ou o