Dans ce tutoriel, on a mis en place une petite station connectée en ethernet. L’objectif est de faire une petite station qui va remonter périodiquement à web page des informations de températures et d’humidités. C’est à dire que toute le 1 minute par exemple, notre montage va appeler l’API REST pour lui communiquer l’humidité et la température. Le projet nécessitera une carte Arduino, un capteur DTH11, un module hanrun HR911105A et un routeur.
Ce dont vous aurez besoin
- Arduino Uno / Arduino Nano / Arduino Mega
- ENC28J60 Ethernet Shield Module
- capteur DHT11 Arduino
- fils de connexion
- libraries EtherCard.h et DHT.h
Matériel supplémentaire sur ce sujet:
Arduino station météo connectée à internet

| ENC28J60 | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| 5V / 3.3V | 5V / 3.3V | 5V / 3.3V | 5V / 3.3V |
| SCK | 13 (SCK) | 13 (SCK) | 52 (SCK) |
| SO | 12 (MISO) | 12 (MISO) | 50 (MISO) |
| ST | 11(MOSI) | 11 (MOSI) | 51 (MOSI) |
| CS | 10 (SS) | 10 (SS) | 53 (SS) |
Nous avons cherché à connecter l’Ethernet ENC28J60 à l’Arduino et à activer les LEDs à distance. Aujourd’hui, nous allons utiliser ce montage en ajoutant un capteur numérique de température et d’humidité DTH11 au circuit. Suivez les instructions et vous serez en mesure de fabriquer votre propre station météorologique domestique Arduino, recevant les données de température et d’humidité sur votre ordinateur ou votre smartphone via votre réseau local.
Notez que le module Ethernet 10 broches ENC28J60 Enternet HR911105A est alimenté par 3,3V et le module 12 broches par 5V. Le capteur DHT11 ne peut pas mesurer les températures négatives, il ne peut donc être utilisé que pour mesurer le climat ambiant. Connectez l’Arduino Uno, le capteur de températures et d’humidités DHT11 et ENC28J60 Ethernet Shield Module comme sur la photo ci-dessus et téléchargez le programme suivant.
Programme Arduino pour station météo + interface web
#include "EtherCard.h" #include "DHT.h" DHT dht(2, DHT11); static byte mymac[] = { 0x74, 0x69, 0x69, 0x2D, 0x30, 0x31 } static byte myip[] = { 192, 168, 1, 55 }; static byte gwip[] = { 70, 117, 92, 55 }; byte Ethernet::buffer[1000]; BufferFiller bfill; int t, h; void setup () { if (ether.begin(sizeof Ethernet::buffer, mymac, 10) == 0) Serial.println("Failed to access Ethernet controller"); ether.staticSetup(myip, gwip); dht.begin(); } static void ReadDHT11() { h = dht.readHumidity(); t = dht.readTemperature(); } static word homePage() { bfill = ether.tcpOffset(); bfill.emit_p(PSTR( "HTTP/1.0 200 OK\r\n" "Content-Type: text/html; charset=utf-8\r\n" "Pragma: no-cache\r\n" "\r\n" "<meta name='viewport' content='width=device-width, initial-scale=1.0'>" "<meta http-equiv='refresh' content='1'>" "<title>Station météo Arduino</title>" "<h1 style='color:#0ea6f2'>Station météo Arduino</h1>" "<font size='3em'>Temperature: $D C <br><br>Humidity: $D %</font>" ), t, h); return bfill.position(); } void loop () { word len = ether.packetReceive(); word pos = ether.packetLoop(len); if (pos) { ReadDHT11(); ether.httpServerReply(homePage()); } delay(1); }
Explication du code ethernet station météo + interface web:
- utiliser une mise en page CSS pour personnaliser l’affichage de la page web;
- si la page web se fige, augmentez la mémoire tampon.
Conclusion. Vous devrez peut-être installer un routeur Wi-Fi pour configurer un réseau local. En ouvrant la page 192.168.1.55 dans le navigateur de votre ordinateur ou de votre smartphone (si vous disposez d’un hotspot Wi-Fi), vous verrez un relevé de capteur en temps réel. La page web se met à jour automatiquement toutes les 10 secondes, et vous aurez besoin de connaissances de base en HTML et CSS pour concevoir joliment votre page web.








Laisser un commentaire