Client de contrôle et de monitoring pour M5Stack CoreS3 permettant d'interagir avec un système domotique centralisé. Ce projet agit comme une télécommande intelligente capable d'envoyer des données environnementales et de piloter des équipements distants.
Ce projet implémente un client ESP32 qui communique avec un serveur pour :
- S'authentifier de manière sécurisée avec le serveur central
- Envoyer les données de température/humidité (DHT22)
- Contrôler des équipements distants (Lumière, Porte, Chauffage) via l'écran tactile
- Diffuser l'écran en streaming via HTTP
- Navigation par pages (3 menus distincts)
- Design moderne avec cartes et feedback visuel
- Menus disponibles :
- SYSTEM & AUTH : Gestion de la connexion et du statut
- CLIMATE & LIGHTS : Gestion de l'envoi météo et des lumières
- SECURITY & HEAT : Contrôle de la porte et du chauffage
- Appairage avec le serveur via
DeviceIDunique (307D68F23A08) - Récupération et stockage d'un Token de session
- Sécurisation des requêtes via header
Authorization: DeviceID:Token
- Mode Auto : Envoi des données du capteur DHT22 toutes les 5 secondes
- Activation/désactivation facile via le Menu 2
- Indicateur visuel de l'état (AUTO: ON/OFF)
- Serveur Web intégré sur port 80
- Capture d'écran en temps réel (format BMP)
- Page HTML intégrée avec auto-refresh
- Accessible via navigateur :
http://[IP_CLIENT]/
- M5Stack CoreS3 (ESP32-S3)
- Capteur DHT22 (Température & Humidité)
- Réseau WiFi (SSID:
MyHouseOS)
GPIO 17 → Pin DATA du DHT22
3V3 → VCC DHT22
GND → GND DHT22
#include "M5CoreS3.h" // M5Stack CoreS3
#include <WiFi.h> // WiFi
#include <ArduinoJson.h> // JSON
#include <HTTPClient.h> // Client HTTP
#include <DHT.h> // Capteur DHT
#include <WebServer.h> // Serveur WebÀ modifier dans PostClient.ino selon votre infrastructure :
// WiFi
const char* ssid = "MyHouseOS";
const char* password = "12345678";
// URLs API
const char* authUrl = "http://192.168.4.1/link";
const char* tempUrl = "http://192.168.4.2:3000/temp";
const char* ledUrl = "http://192.168.4.2:3000/toggle/light";
const char* doorUrl = "http://192.168.4.2:3000/toggle/door";
const char* heatUrl = "http://192.168.4.2:3000/toggle/heat";- Arduino IDE
- Gestionnaire de cartes ESP32 installé
Via le gestionnaire de bibliothèques Arduino :
M5CoreS3ArduinoJsonDHT sensor libraryAdafruit Unified Sensor
- Sélectionner la carte "M5Stack CoreS3"
- Connecter l'appareil via USB
- Téléverser le sketch
PostClient.ino
Le bouton B (Milieu) permet de changer de menu (1 → 2 → 3 → 1).
| Bouton | Action |
|---|---|
| A (Gauche) | AUTHENTICATE : S'identifier auprès du serveur |
| B (Milieu) | Menu Suivant |
| C (Droite) | STATUS CHECK : Affiche l'IP locale |
| Bouton | Action |
|---|---|
| A (Gauche) | AUTO ON/OFF : Activer l'envoi auto de la température |
| B (Milieu) | Menu Suivant |
| C (Droite) | TOGGLE LED : Allumer/Éteindre la lumière distante |
| Bouton | Action |
|---|---|
| A (Gauche) | DOOR LOCK : Verrouiller/Déverrouiller la porte |
| B (Milieu) | Retour Menu 1 |
| C (Droite) | HEAT CONTROL : Allumer/Éteindre le chauffage |
POST /link
Request: { "id": "307D68F23A08" }
Response: { "token": "votre_token_session" }POST /temp
Header: Authorization: 307D68F23A08:TOKEN
Body: { "temp": "24.5" }Utilisé pour Lumière, Porte, Chauffage.
POST /toggle/xxx
Header: Authorization: 307D68F23A08:TOKEN
Body: { "id": "307D68F23A08", "token": "TOKEN" }Fond : #0f172a (Bleu nuit)
Cartes : #1e293b (Gris foncé)
Accent : #6366f1 (Indigo)
Texte : #f8fafc (Blanc)
Succès : #22c55e (Vert)
Warning : #fb923c (Orange)- Vous essayez d'effectuer une action sans être authentifié.
- Allez dans le Menu 1 et appuyez sur BTN A pour vous connecter.
- Le capteur DHT22 ne répond pas.
- Vérifiez le câblage sur le GPIO 17.
- Le serveur est injoignable ou renvoie une erreur.
- Vérifiez que le serveur (192.168.4.2) est allumé et accessible sur le même réseau WiFi.
Version : 1.0 Date : Décembre 2025 Plateforme : M5Stack CoreS3