Table des matières:

Thermostat d'ambiance - Arduino + Ethernet : 3 étapes
Thermostat d'ambiance - Arduino + Ethernet : 3 étapes

Vidéo: Thermostat d'ambiance - Arduino + Ethernet : 3 étapes

Vidéo: Thermostat d'ambiance - Arduino + Ethernet : 3 étapes
Vidéo: Arduino home central heating thermostat and Room Arduino Digital Thermostat Controller 2024, Novembre
Anonim
Thermostat d'ambiance - Arduino + Ethernet
Thermostat d'ambiance - Arduino + Ethernet

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

Description du thermostat Ethernet
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

Interface Web
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 s'exécutant sur le serveur Web, schémas, code source
Pages HTML s'exécutant 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é: