Table des matières:
- Étape 1: Description du thermostat Ethernet
- Étape 2: Interface Web
- Étape 3: pages HTML exécutées sur le serveur Web, schémas, code source
Vidéo: Thermostat d'ambiance - Arduino + Ethernet : 3 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
En termes de matériel, le projet utilise:
- Arduino Uno / Mega 2560
- Blindage Ethernet Wiznet W5100 / Module Ethernet Wiznet W5200-W5500
- Sonde de température DS18B20 sur le bus OneWire
- Relais SRD-5VDC-SL-C utilisé pour la commutation de la chaudière
Étape 1: Description du thermostat Ethernet
Arduino est une plate-forme embarquée pratique qui peut être utilisée, par exemple, pour construire un thermostat d'ambiance, que nous allons montrer aujourd'hui. Le thermostat est accessible depuis le réseau LAN dans lequel il se trouve, tandis qu'il est équipé d'une interface Web qui permet de configurer tous les éléments du thermostat. L'interface Web s'exécute directement sur l'Arduino en mode serveur Web. Le serveur web permet l'exécution de plusieurs pages HTML indépendantes, qui peuvent être informatives voire fonctionnelles. Le serveur Web fonctionne sur le port 80 -
Le relais électromagnétique SRD-5VDC-SL-C, qui est utilisé dans le projet, permet de commuter jusqu'à 10A à 230V - puissance 2300W. En cas de commutation d'un circuit DC (charge), il est possible de commuter 300W (10A à 30V DC). Alternativement, le relais SSR OMRON G3MB-202P est entièrement compatible pour le schéma de câblage, qui ne convient qu'aux charges non inductives et exclusivement aux circuits CA. Puissance de commutation maximale 460W (230V, 2A). La consommation d'Arduino avec blindage Ethernet et autres périphériques est au niveau de 100-120mA avec le relais ouvert. Lorsqu'il est fermé, en dessous de 200mA à une alimentation 5V.
Étape 2: Interface Web
L'interface web du thermostat permet:
- Visualisez la température en temps réel du capteur DS18B20
- Afficher l'état du relais en temps réel avec changement de sortie dynamique sur la page
- Modifier la température cible (de référence) dans la plage de 5 à 50 °C avec un pas de 0,25 °C
- Modifier l'hystérésis dans la plage 0 à 10°C avec un pas de 0,25°C
L'interface Web est conçue pour accueillir des écrans plus grands et plus petits. Il est réactif, prend en charge les écrans larges haute définition, mais aussi les appareils mobiles. L'interface utilise des styles CSS importés du framework Bootstrap à partir d'un serveur CDN externe, qui charge le périphérique côté client lors de l'ouverture d'une page exécutée sur Arduino. Étant donné que l'Arduino Uno est limité en mémoire, il ne peut exécuter que des pages de quelques Ko. En important des styles CSS depuis un serveur externe, cela réduira les performances et la charge mémoire de l'Arduino. L'implémentation logicielle (pour Arduine Uno) utilise 70% de mémoire flash (32 Ko - 4 Ko Bootloader) et 44% de mémoire RAM (2 Ko).
Les parties statiques d'une page Web (en-tête et pied de page de document HTML, liaison CSS Bootstrap, balises META, en-tête de réponse HTTP, type de contenu, formulaire, etc.) sont stockées directement dans la mémoire flash d'Arduino, ce qui peut réduire considérablement la quantité de RAM utilisée pour l'utilisateur -contenu généré. Le serveur web est ainsi plus stable et peut gérer la multi-connexion de plusieurs appareils du réseau en même temps.
Afin de conserver les valeurs définies même après une panne de courant, elles sont stockées dans la mémoire EEPROM de l'Arduino. Température de référence à l'offset 10, hystérésis à l'offset 100. Chacune des valeurs occupe au maximum 5B dans la mémoire EEPROM. La limite de transcription EEPROM est au niveau de 100 000 transcriptions. Les données ne sont écrasées que lorsque le formulaire HTML est soumis. Dans le cas où l'appareil n'a rien stocké sur les offsets EEPROM mentionnés au premier démarrage, l'écriture automatique sera effectuée avec les valeurs par défaut - référence: 20,25, hystérésis 0,25°C
La balise meta Refresh actualise toute la page Arduino toutes les 10 secondes. À ce stade, il est nécessaire d'écrire le changement pour le thermostat, sinon les fenêtres d'entrée seront réinitialisées lorsque la page sera rafraîchie. Étant donné que la bibliothèque Ethernet n'inclut pas l'utilisation d'un serveur Web asynchrone, la page entière doit être réécrite. Les données dynamiques qui changent principalement sont la valeur actuelle de la sortie - On / Off.
Étape 3: pages HTML exécutées sur le serveur Web, schémas, code source
Pages HTML exécutées sur Arduino:
- / - page racine contenant le formulaire, liste des sorties logiques en cours pour le relais, température
- /action.html - traite les valeurs du formulaire, les écrit dans la mémoire EEPROM, redirige l'utilisateur vers la page racine
- /get_data/ - distribue les données sur la température actuelle, la température de référence et l'hystérésis à un tiers (ordinateur, microcontrôleur, autre client…) au format JSON
Il existe également une version étendue de ce thermostat qui comprend:
- Mode manuel pour les relais (temps illimité, hard ON/OFF)
- Minuteur de chien de garde
- Disponible plus de capteurs, par exemple: SHT21, SHT31, DHT22, BME280, BMP280 et autres
- Mode de refroidissement
- Contrôle et configuration via RS232 / UART indépendant d'Ethernet
- Contrôle de température PID pour thermostat
- Possibilité d'utiliser les plateformes ESP8266, ESP32 pour thermostat
La mise en œuvre du programme pour le projet peut être trouvée à l'adresse: https://github.com/martinius96/termostat-ethernet/ La mise en œuvre contient des programmes pour l'adresse IPv4 statique/dynamique attribuée au bouclier Ethernet.
Le thermostat est uniquement destiné aux températures intérieures ! (au-dessus de 0°C), auquel la logique du système est adaptée. Il est possible de remplacer un thermostat d'ambiance existant par un thermostat, il est possible de remplacer temporairement un thermostat dans un réfrigérateur, de maintenir une température constante dans un terrarium, etc.
Conseillé:
Configurer Raspberry Pi 4 via un ordinateur portable/pc à l'aide d'un câble Ethernet (pas de moniteur, pas de Wi-Fi): 8 étapes
Configurer Raspberry Pi 4 via un ordinateur portable/pc à l'aide d'un câble Ethernet (pas de moniteur, pas de Wi-Fi): Dans ce cas, nous allons travailler avec Raspberry Pi 4 modèle B de 1 Go de RAM pour la configuration. Raspberry-Pi est un ordinateur monocarte utilisé à des fins éducatives et des projets de bricolage avec un coût abordable, nécessite une alimentation de 5V 3A.Systèmes d'exploitation lik
Comment faire un câble Ethernet : 5 étapes
Comment faire un câble Ethernet : Bonjour ! Aujourd'hui, nous allons apprendre à fabriquer votre propre câble Ethernet conforme aux normes de l'industrie ! Ce qui pourra vous faire économiser de l'argent lorsqu'il s'agira d'avoir besoin de câbles ! Alors pourquoi suis-je qualifié pour vous enseigner ? Eh bien, je suis un professionnel de l'informatique, j'ai passé les 2 derniers
Injecteur PoE Ethernet 10/100M DIY : 6 étapes
Injecteur PoE Ethernet DIY 10/100M : ici, nous allons fabriquer un simple injecteur PoE adapté à l'Ethernet 10/100M, qui pourrait également être alimenté directement avec des piles
Contrôle GPIO du MCP23017 via Ethernet : 5 étapes
Contrôle GPIO du MCP23017 via Ethernet : contrôlez l'extension IO du MCP23017 via Ethernet à l'aide du Sensor Bridge et de la carte de dérivation MCP23017. Commandes envoyées par des scripts Python, des URL de navigateur ou tout système capable de communication HTTP. Peut être intégré à Home Assistant pour la domotique. Les fils sont
Lecture de l'humidité avec capteur Ethernet : 3 étapes
Lecture de l'humidité avec capteur Ethernet : le but du projet était de pouvoir lire les relevés d'humidité et de température via le réseau Ethernet, afin que les résultats puissent être utilisés pour la domotique (Home Assistant, etc.). Le capteur T9602 avait le meilleur facteur de forme, avec une grande performance à ar