Índice:

Plugue inteligente com controle de temperatura habilitado para WiFi: 4 etapas
Plugue inteligente com controle de temperatura habilitado para WiFi: 4 etapas

Vídeo: Plugue inteligente com controle de temperatura habilitado para WiFi: 4 etapas

Vídeo: Plugue inteligente com controle de temperatura habilitado para WiFi: 4 etapas
Vídeo: Sonoff TH Elite: Controle inteligente de Temperatura e Umidade – Conheça e Saiba como usar! 2024, Julho
Anonim
Plugue inteligente com controle de temperatura habilitado para WiFi
Plugue inteligente com controle de temperatura habilitado para WiFi

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

Configurando Seu Plugue Inteligente TP-LINK
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

Image
Image
Passos Finais
Passos Finais
Passos Finais
Passos 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: