Table des matières:
- Étape 1: Ajout du code à ESP8266
- Étape 2: Configuration de votre prise intelligente TP-LINK
- Étape 3: Configuration de l'assistant domestique
- Étape 4: Étapes finales
Vidéo: Prise intelligente à température contrôlée compatible WiFi : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
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
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
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é:
Prise de courant compatible Internet : 13 étapes
Prise de courant compatible Internet : projet de serveur Web PowerHub et amp ; Instructions d'installation des prises de courant compatibles Internet Hub central de persistance des données pour la lumière et les prises de courant compatibles Internet dans votre maison
Programmation Flash de la prise intelligente Joinrun (prise UE) : 6 étapes
Programmation Flash de la Smart Socket Joinrun (EU Plug) : Le "Joinrun Smart Wifi" La prise avec USB est une autre prise de courant contrôlable par wifi basée sur ESP8266. Elle est dotée d'un design agréable, d'un petit facteur de forme et d'un port de chargement USB supplémentaire. Il a besoin de l'application smartlife pour le contrôler via un
Prise contrôlée par Google : 7 étapes
Prise contrôlée par Google : un projet sur la création de votre propre prise intelligente qui peut être contrôlée avec l'assistant google ou essentiellement tout autre service d'entrée chez IFTTT
Prise de courant contrôlée Google Home : 9 étapes (avec photos)
Prise de courant contrôlée par Google Home : Ma petite amie a toujours voulu construire une maison intelligente. Nous construisons donc l'infrastructure et le premier élément de la maison intelligente, un interrupteur de prise de courant télécommandé que vous pouvez contrôler à l'aide d'un panneau de commande ou à l'aide de commandes vocales (si vous avez google home ou goog
Une bande de prise contrôlée par l'alimentation USB. Avec isolement. : 4 étapes (avec photos)
Une bande de prise contrôlée par l'alimentation USB. With Isolation. : Le but de ce Instructable était de me permettre d'allumer tous les accessoires pour mon ordinateur sans y penser. Et puis ne pas alimenter toutes les petites verrues murales des vampires quand je n'utilise pas l'ordinateur. L'idée est simple, vous pow