Table des matières:

Prise intelligente à température contrôlée compatible WiFi : 4 étapes
Prise intelligente à température contrôlée compatible WiFi : 4 étapes

Vidéo: Prise intelligente à température contrôlée compatible WiFi : 4 étapes

Vidéo: Prise intelligente à température contrôlée compatible WiFi : 4 étapes
Vidéo: Des PRISES CONNECTÉES compatibles GOOGLE HOME ! (Configuration & Test Complet) 2024, Novembre
Anonim
Prise intelligente à température contrôlée compatible WiFi
Prise intelligente à température contrôlée compatible WiFi

Dans ce jeu d'instructions, nous verrons comment construire une sonde de température compatible WiFi en utilisant un simple ESP8266 pour le levage de charges lourdes et un capteur de température/humidité DHT11. Nous utiliserons également le circuit imprimé que j'ai créé et qui est également en vente maintenant dans le magasin Tindie de la chaîne si vous souhaitez acheter.

Commençons par la nomenclature dont vous aurez besoin:

Module Wi-Fi ESP8266

amzn.to/2pkGPoa

Capteur DHT11

amzn.to/2phwfhO

Prise intelligente TP-Link

amzn.to/2GElQUz

Vous pouvez également récupérer l'intégralité du module dans le magasin Tindie de la chaîne:

www.tindie.com/products/misperry/wifi-enab…

Consultez également JLCPCB pour la fabrication de circuits imprimés. Ce sont ceux que j'ai utilisés pour faire le PCB:

Livraison gratuite sur la première commande et 2 $ de prototypage de PCB sur

Étape 1: Ajout du code à ESP8266

Nous devrons maintenant flasher le code suivant sur l'ESP8266. Ce code se trouve dans le référentiel github suivant:

Dans le code ci-dessous, vous n'aurez qu'à configurer les premières sections de définition:

Serveur MQTT:

Utilisateur MQTT:

Mot de passe MQTT:

MQTT_sensor_topic:

-Wifi

Dit: le dit du réseau wifi auquel vous vous connectez

Mot de passe: le mot de passe Wi-Fi.

Une fois que vous avez rempli le code ci-dessous, vous pouvez ensuite compiler et vérifier les erreurs et si 0 erreur, vous pouvez le flasher sur l'ESP8266.

/* * Nom du fichier: TempHumSensor.ino * * Application: Thermostat de chauffage domestique HomeAssistant * * Description: Ce code est destiné à l'appareil compatible arduino * compatible WiFi ESP8266. Cela transmettra les informations de température * de l'appareil DHT11 à l'interface HASS pour traitement. * * Auteur: M. Sperry - https://www.youtube.com/misperry * Date: 03/* Révision: 1.0 * * */

#comprendre

#include #include #include #include #include

#define CON_TIME_OUT 20 //Délai d'expiration de la non connexion au wifi

#define MQTT_TIME_OUT 10 //Délai d'expiration sans connexion au serveur MQTT

#define DHTPIN 0 //Pin qui est connecté au capteur DHT

#define DHTTYPE DHT11 // Le type de capteur est le DHT11, vous pouvez le changer en DHT22 (AM2302), DHT21 (AM2301)

#define mqtt_server "" // Entrez l'adresse ou l'adresse IP de votre serveur MQTT. J'utilise mon adresse DuckDNS (votrenom.duckdns.org) dans ce champ

#define mqtt_user "" //entrez votre nom d'utilisateur MQTT #define mqtt_password "" //entrez votre mot de passe #define MQTT_SENSOR_TOPIC "ha/ Bedroom_temp" //Entrez le sujet pour votre MQTT

// Wifi: SSID et mot de passe

const char* ssid = ""; const char* mot de passe = "";

//Configuration DHT

DHT_dht unifié (DHTPIN, DHTTYPE); uint32_t délaiMS;

WiFiClient wifiClient;

Client PubSubClient (client wifi);

// fonction appelée pour publier la température et l'humidité

void publishData(float p_temperature) { // crée un objet JSON // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject& root = jsonBuffer.createObject(); // INFO: les données doivent être converties en chaîne; un problème survient lors de l'utilisation de flottants… //convertir en fahrenheit p_temperature = (p_temperature * 1.8) + 32; // convertir en racine Fahrenheit["temperature"] = (String)p_temperature; root.prettyPrintTo(Serial); Serial.println("");

données de caractères[200];

root.printTo(data, root.measureLength() + 1); client.publish(MQTT_SENSOR_TOPIC, données, vrai); }

// fonction appelée à l'arrivée d'un message MQTT

void callback(char* p_topic, byte* p_payload, unsigned int p_length) { }

annuler la reconnexion () {

// Boucle jusqu'à ce que nous soyons reconnectés while (!client.connected()) { Serial.print("INFO: Tentative de connexion MQTT…"); // Tentative de connexion if (client.connect("ESPBlindstl", mqtt_user, mqtt_password)) { Serial.println("INFO: connecté"); } else { Serial.print("ERREUR: échec, rc="); Serial.print(client.state()); Serial.println("DEBUG: réessayez dans 5 secondes"); // Attendre 5 secondes avant de réessayer delay(5000); } } }

configuration vide (void) {

Serial.begin(9600);

// On commence par se connecter à un réseau WiFi

Serial.println(); Serial.println(); Serial.print("Connexion à "); Serial.println(ssid);

WiFi.begin(ssid, mot de passe);

while (WiFi.status() != WL_CONNECTED) {

retard (800); Serial.print("."); }

Serial.println("");

Serial.println("WiFi connecté"); Serial.println("Adresse IP: "); Serial.println(WiFi.localIP()); // initialiser la connexion MQTT client.setServer(mqtt_server, 1883); client.setCallback(rappel);

// Initialiser le capteur DHT

dht.begin(); Serial.println ("Données de capteur unifiées DHT11");

//Imprimer les détails du capteur de température

capteur_t capteur; dht.temperature().getSensor(&sensor); Serial.println("-------------------------------------"); Serial.println("Température"); Serial.print ("Capteur: "); Serial.println(sensor.name); Serial.print ("Driver Ver: "); Serial.println(sensor.version); Serial.print ("Identifiant unique: "); Serial.println(sensor.sensor_id); Serial.print ("Valeur max: "); Serial.print(sensor.max_value); Serial.println(" *C"); Serial.print ("Valeur Min: "); Serial.print(sensor.min_value); Serial.println(" *C"); Serial.print ("Résolution: "); Serial.print(capteur.résolution); Serial.println(" *C"); Serial.println("-------------------------------------"); // Imprimer les détails du capteur d'humidité. dht.humidité().getSensor(&sensor); Serial.println("-------------------------------------"); Serial.println("Humidité"); Serial.print ("Capteur: "); Serial.println(sensor.name); Serial.print ("Driver Ver: "); Serial.println(sensor.version); Serial.print ("Identifiant unique: "); Serial.println(sensor.sensor_id); Serial.print ("Valeur max: "); Serial.print(sensor.max_value); Serial.println("%"); Serial.print ("Valeur Min: "); Serial.print(sensor.min_value); Serial.println("%"); Serial.print ("Résolution: "); Serial.print(capteur.résolution); Serial.println("%"); Serial.println("-------------------------------------");

//Définir le délai entre les lectures du capteur en fonction des détails du capteur

delayMS = sensor.min_delay / 1000; }

boucle vide (vide) {

température du flotteur;

si (!client.connected())

{ se reconnecter(); }

retard(retardMS);

// Récupère l'événement de température et affiche sa valeur.

sensor_event_t événement; dht.temperature().getEvent(&event); if (isnan(event.temperature)) { Serial.println("Erreur de lecture de la température !"); température = 0,00; } else { temperature = event.temperature; Serial.print("Température: "); Serial.print(température); Serial.println(" *C"); } // publier sur MQTT publishData(temperature); }

Étape 2: Configuration de votre prise intelligente TP-LINK

Configuration de votre prise intelligente TP-LINK
Configuration de votre prise intelligente TP-LINK

Vous devrez configurer votre prise intelligente TP-LINK, ou toute prise intelligente pour cette matière, de la manière recommandée par le fabricant.

Assurez-vous de noter l'adresse MAC sur l'appareil. Si votre appareil est comme mon appareil TP-LINK, vous ne pouvez pas créer d'adresse IP statique. Ainsi, vous devrez configurer votre routeur pour la réservation DHCP. Cela prendra l'adresse MAC de votre appareil et lorsque cet appareil demande une adresse, le routeur lui donnera la même adresse à chaque fois.

Voici un lien pour savoir comment configurer cela avec Linksys

www.linksys.com/us/support-article?article…

Étape 3: Configuration de l'assistant domestique

Maintenant, configurez Home Assistant. Pour cela, vous devrez ajouter les configurations suivantes au fichier configuration.yaml qui se trouve dans la structure de dossiers /home/homeassistant/.homeassistant sur l'appareil sur lequel vous l'avez installé.

Une fois que vous avez terminé d'ajouter ceci à votre configuration d'assistant à domicile, vous devrez redémarrer votre logiciel d'assistant à domicile pour que les modifications prennent effet.

J'utiliserai également la prise intelligente TP-LINK pour le dispositif de commutation et la définition est ci-dessous dans le fichier de configuration. L'adresse IP utilisée pour le périphérique est celle que vous avez configurée pour la réservation DHCP à l'étape précédente.

Cette configuration peut également être trouvée sur le dépôt github suivant:

mqtt:switch: - platform: tplink name: Bedroom Heater host: 192.168.2.11

capteur 1:

platform: mqtt state_topic: 'ha/ Bedroom_temp' name: Bedroom Temp unit_of_measurement: '°F' value_template: '{{ value_json.temperature }}'

automatisation:

- alias: _Temp Bedroom Temp High trigger: - platform: numeric_state entity_id: sensor. Bedroom_Temp ci-dessus: 73

action:

service: homeassistant.turn_off entity_id: switch. Bedroom_Heater

- alias: _Temp Température de la chambre basse

trigger: - platform: numeric_state entity_id: sensor. Bedroom_Temp ci-dessous: 73 action: service: homeassistant.turn_on entity_id: switch. Bedroom_Heater

Étape 4: Étapes finales

Image
Image
Étapes finales
Étapes finales
Étapes finales
Étapes finales

Maintenant, avec la configuration de votre assistant à domicile et la configuration de votre code Arduino, vous serez prêt à activer l'ensemble du système. Ainsi, placez votre prise de chauffage/ventilateur/refroidisseur dans la prise intelligente et branchez la prise intelligente. Une fois qu'il est prêt, vous devrez brancher un petit chargeur USB, puis la sonde de température compatible WiFi. Une fois que tout est en ligne, vous devriez pouvoir regarder dans le tableau de bord de votre assistant à domicile et voir la nouvelle température signalée.

Merci beaucoup pour toute votre aide et votre soutien. assurez-vous de laisser un like et venez visiter la chaîne à https://www.youbue.com/misperry et voyez ce que nous avons là pour vous. Assurez-vous de vous abonner et de partager avec vos amis pour aider la chaîne.

Conseillé: