Sommario:
- Passaggio 1: aggiunta del codice a ESP8266
- Passaggio 2: configurazione della presa intelligente TP-LINK
- Passaggio 3: configurazione di Home Assistant
- Passaggio 4: passaggi finali
Video: Smart Plug a temperatura controllata con WiFi abilitato: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
In questo set di istruzioni vedremo come costruire una sonda di temperatura abilitata WiFi utilizzando un semplice ESP8266 per il sollevamento di carichi pesanti e un sensore di temperatura/umidità DHT11. Utilizzeremo anche il circuito stampato che ho creato ed è anche in vendita ora nel negozio tindie del canale se desideri acquistare.
Iniziamo con la distinta base che ti servirà in:
Modulo WiFi ESP8266
amzn.to/2pkGPoa
Sensore DHT11
amzn.to/2phwfhO
Spina intelligente TP-Link
amzn.to/2GElQUz
Puoi anche ritirare l'intero modulo presso il negozio Tindie per il canale:
www.tindie.com/products/misperry/wifi-enab…
Dai un'occhiata anche a JLCPCB per PCB Fabriction. Sono quelli che ho usato per fare il PCB:
Spedizione gratuita al primo ordine e prototipazione PCB da $ 2 su
Passaggio 1: aggiunta del codice a ESP8266
Ora dovremo far lampeggiare il seguente codice su ESP8266. Questo codice può essere trovato nel seguente repository github:
Nel codice sottostante dovrai impostare solo le prime sezioni di definizione:
Server MQTT:
Utente MQTT:
Password MQTT:
MQTT_sensor_topic:
-Wifi
Detto: il detto della rete wifi a cui ti stai connettendo
Password: la password Wi-Fi.
Una volta compilato il codice seguente, è possibile compilare e verificare la presenza di errori e, se 0 errori, è possibile visualizzarlo su ESP8266.
/* * Nome file: TempHumSensor.ino * * Applicazione: HomeAssistant Space Heater Thermostat * * Descrizione: questo codice è per il dispositivo compatibile con arduino * abilitato WiFi ESP8266. Questo trasmetterà le informazioni sulla temperatura * del dispositivo DHT11 al frontend HASS per l'elaborazione. * * Autore: M. Sperry - https://www.youtube.com/misperry * Data: 03/* Revisione: 1.0 * * */
#includere
#include #include #include #include #include
#define CON_TIME_OUT 20 //Timeout di nessuna connessione al wifi
#define MQTT_TIME_OUT 10 //Timeout di nessuna connessione al server MQTT
#define DHTPIN 0 //Pin che è collegato al sensore DHT
#define DHTTYPE DHT11 //Il tipo di sensore è il DHT11, puoi cambiarlo in DHT22 (AM2302), DHT21 (AM2301)
#define mqtt_server "" // Inserisci il tuo indirizzo IP o il tuo server MQTT. Uso il mio indirizzo DuckDNS (tuonome.duckdns.org) in questo campo
#define mqtt_user "" //inserisci il tuo nome utente MQTT #define mqtt_password "" //inserisci la tua password #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" //Inserisci argomento per il tuo MQTT
// Wifi: SSID e password
const char* ssid = ""; const char* password = "";
//DHT SETup
DHT_dht unificato (DHTPIN, DHTTYPE); uint32_t delayMS;
Wi-FiClient Wi-FiClient;
PubSubClient client(wifiClient);
// funzione chiamata per pubblicare la temperatura e l'umidità
void publishData(float p_temperature) { // crea un oggetto JSON // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject& root = jsonBuffer.createObject(); // INFO: i dati devono essere convertiti in una stringa; si verifica un problema quando si utilizzano i float… //convert to fahrenheit p_temperature = (p_temperature * 1.8) + 32; // converti in fahrenheit root["temperature"] = (String)p_temperature; root.prettyPrintTo(Seriale); Serial.println("");
dati char[200];
root.printTo(data, root.measureLength() + 1); client.publish(MQTT_SENSOR_TOPIC, data, true); }
// funzione chiamata quando è arrivato un messaggio MQTT
void callback(char* p_topic, byte* p_payload, unsigned int p_length) { }
void ricollegare() {
// Ciclo finché non ci ricolleghiamo while (!client.connected()) { Serial.print("INFO: Tentativo di connessione MQTT…"); // Tentativo di connessione if (client.connect("ESPBlindstl", mqtt_user, mqtt_password)) { Serial.println("INFO: connesso"); } else { Serial.print("ERRORE: fallito, rc="); Serial.print(client.state()); Serial.println("DEBUG: riprova tra 5 secondi"); // Attendi 5 secondi prima di riprovare delay(5000); } } }
void setup(void) {
Serial.begin(9600);
// Iniziamo connettendoci a una rete WiFi
Serial.println(); Serial.println(); Serial.print("Connessione a "); Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
ritardo (800); Serial.print("."); }
Serial.println("");
Serial.println("WiFi connesso"); Serial.println("Indirizzo IP: "); Serial.println(WiFi.localIP()); // inizia la connessione MQTT client.setServer(mqtt_server, 1883); client.setCallback(richiamata);
// Inizializza il sensore DHT
dht.begin(); Serial.println("DHT11 Unified Sensor Data");
//Stampa i dettagli del sensore di temperatura
sensore_t sensore; dht.temperature().getSensor(&sensor); Serial.println("------------------------------------"); Serial.println("Temperatura"); Serial.print ("Sensore: "); Serial.println(nome.sensore); Serial.print ("Driver Ver: "); Serial.println(sensor.version); Serial.print ("ID univoco: "); Serial.println(sensor.sensor_id); Serial.print ("Valore massimo: "); Serial.print(sensor.max_value); Serial.println("*C"); Serial.print ("Valore minimo: "); Serial.print(sensor.min_value); Serial.println("*C"); Serial.print ("Risoluzione: "); Serial.print(sensor.resolution); Serial.println("*C"); Serial.println("------------------------------------"); // Stampa i dettagli del sensore di umidità. dht.humidity().getSensor(&sensor); Serial.println("------------------------------------"); Serial.println("Umidità"); Serial.print ("Sensore: "); Serial.println(nome.sensore); Serial.print ("Driver Ver: "); Serial.println(sensor.version); Serial.print ("ID univoco: "); Serial.println(sensor.sensor_id); Serial.print ("Valore massimo: "); Serial.print(sensor.max_value); Serial.println("%"); Serial.print ("Valore minimo: "); Serial.print(sensor.min_value); Serial.println("%"); Serial.print ("Risoluzione: "); Serial.print(sensor.resolution); Serial.println("%"); Serial.println("------------------------------------");
// Imposta il ritardo tra le letture del sensore in base ai dettagli del sensore
ritardoMS = sensore.min_delay / 1000; }
ciclo vuoto (vuoto) {
temperatura del galleggiante;
if (!client.connected())
{ riconnettersi(); }
ritardo (ritardo MS);
// Ottieni l'evento di temperatura e stampa il suo valore.
sensor_event_t evento; dht.temperature().getEvent(&event); if (isnan(event.temperature)) { Serial.println("Errore lettura temperatura!"); temperatura = 0,00; } else { temperatura = evento.temperatura; Serial.print("Temperatura: "); Serial.print(temperatura); Serial.println("*C"); } // pubblica su MQTT publishData(temperatura); }
Passaggio 2: configurazione della presa intelligente TP-LINK
Dovrai impostare la tua smart plug TP-LINK o qualsiasi smart plug per quella madre, nel modo consigliato dal produttore.
Assicurati di prendere nota dell'indirizzo MAC sul dispositivo. Se il tuo dispositivo è come il mio dispositivo TP-LINK non puoi impostare un indirizzo IP statico. Pertanto, sarà necessario configurare il router per la prenotazione DHCP. Questo prenderà l'indirizzo MAC del tuo dispositivo e quando quel dispositivo richiede un indirizzo il router gli darà lo stesso indirizzo ogni volta.
Ecco un link su come configurarlo con Linksys
www.linksys.com/us/support-article?article…
Passaggio 3: configurazione di Home Assistant
Ora per configurare Home Assistant. Per questo sarà necessario aggiungere le seguenti configurazioni al file configuration.yaml che si trova nella struttura della cartella /home/homeassistant/.homeassistant sul dispositivo su cui è stato installato.
Una volta completata l'aggiunta alla configurazione dell'assistente domestico, sarà necessario riavviare il software dell'assistente domestico affinché le modifiche abbiano effetto.
Utilizzerò anche la presa intelligente TP-LINK per il dispositivo di commutazione e la definizione è sotto nel file di configurazione. L'indirizzo IP utilizzato per il dispositivo è quello impostato per la prenotazione DHCP nel passaggio precedente.
Questa configurazione può essere trovata anche nel seguente repository github:
mqtt:switch: - piattaforma: tplink nome: Bedroom Heater host: 192.168.2.11
sensore 1:
piattaforma: mqtt state_topic: 'ha/bedroom_temp' name: Bedroom Temp unit_of_measurement: '°F' value_template: '{{ value_json.temperature }}'
automazione:
- alias: _Temp Bedroom Temp High trigger: - platform: numeric_state entity_id: sensor. Bedroom_Temp sopra: 73
azione:
servizio: homeassistant.turn_off entity_id: switch. Bedroom_Heater
- alias: _Temp Temp Camera Bassa
trigger: - piattaforma: numeric_state entity_id: sensor. Bedroom_Temp sotto: 73 action: service: homeassistant.turn_on entity_id: switch. Bedroom_Heater
Passaggio 4: passaggi finali
Ora con la configurazione dell'assistente domestico e la configurazione del codice Arduino sarai pronto per attivare l'intero sistema. Quindi, inserire la spina del riscaldatore/ventilatore/raffreddatore nella presa intelligente e collegare la presa intelligente. Una volta pronto, dovrai collegare un piccolo caricabatterie USB e quindi la sonda di temperatura abilitata per WiFi. Una volta che tutto è online, dovresti essere in grado di guardare nella dashboard dell'assistente domestico e vedere la nuova temperatura segnalata.
Grazie mille per tutto il vostro aiuto e supporto. assicurati di lasciare un mi piace e vieni a visitare il canale su https://www.youbue.com/misperry e guarda cosa abbiamo lì per te. Assicurati di iscriverti e condividere con i tuoi amici per aiutare il canale.
Consigliato:
Scatola della camera a temperatura controllata fai-da-te con modulo Peltier TEC: 4 passaggi (con immagini)
Scatola della camera a temperatura controllata fai-da-te con modulo Peltier TEC: ho assemblato la scatola della camera a temperatura controllata per testare piccole schede elettroniche. In questo tutorial ho condiviso il mio progetto inclusi i file sorgente e il collegamento ai file Gerbers per realizzare il PCB. Ho usato solo materiali economici comunemente disponibili
Sistema a temperatura controllata con L293D: 19 passaggi (con immagini)
Sistema a temperatura controllata con L293D: Il sistema a temperatura controllata è un dispositivo che controlla e mantiene la temperatura di un oggetto su una particolare area relativa all'ambiente circostante. Questi tipi di sistemi controllati sono utilizzati principalmente in AC (condizionatori d'aria), frigorifero
Costruisci un micro-quadro abilitato WiFi: 5 passaggi
Costruisci un micro-quadro abilitato per WiFi: questa istruzione registra semplicemente quanto sia semplice costruire un micro-quadro abilitato per WiFi da solo! La maggior parte delle parti può essere acquistata a buon mercato e facilmente. E usa il tuo telefono Android come telecomando
1 metro POV con IOT abilitato: 3 passaggi (con immagini)
POV a 1 metro con IOT abilitato: prima di iniziare la spiegazione su questo progetto vorrei scusarmi per l'immagine e il video di bassa qualità, ma onestamente è davvero difficile scattare un'immagine nitida e chiara dall'esecuzione di POV con una fotocamera normale come la mia fotocamera mobile. Ha bisogno di molto veloce d
Centro di raccolta dati sensore abilitato per IoT con ESP8266 e PubNub: 9 passaggi (con immagini)
Centro di raccolta dati del sensore abilitato per IoT con ESP8266 e PubNub: la maggior parte dei tutorial su ESP8266 è a livello di principiante (lampeggio remoto di un led) o troppo complessa per qualcuno che sta cercando qualcosa da migliorare e aggiornare sulle sue abilità di lampeggiamento del led. istruibile mira a colmare questa lacuna per creare