HomePod S3 – Un compagnon Smart Desk

HomePod S3 - A Smart Desk companion
  • Commande tactile pour les lumières et le ventilateur
  • Commandes vocales hors ligne pour une utilisation mains libres
  • Une interface utilisateur Web locale pour le contrôle à distance depuis un téléphone ou un ordinateur portable
  • Minuterie d’étude (style Pomodoro)
  • Liste de choses à faire
  • Rappels de médicaments
  • Affichage de la température
  • Écran de verrouillage avec diapositive pour déverrouiller
  • Écran tactile capacitif intégré
  • Wi-Fi pour l’interface utilisateur Web locale (aucun cloud requis)
  • MCU double cœur pour interface utilisateur + serveur Web + voix + capteurs
  • Format compact et convivial

Schéma de circuit

Schéma de circuit HomePod S3 Un compagnon Smart Desk

  • RX vers GPIO 44
  • Émission vers GPIO 43
  • Terre à Terre
  • VCC à 3V
  • DONNÉES vers GPIO 42
  • Terre à Terre
  • VCC à 3V
  • IN1 vers GPIO 10
  • IN2 vers GPIO 14
  • IN3 vers GPIO 13
  • VCC à 3V
  • Terre à Terre
  • IN1 vers GPIO 10
  • IN2 vers GPIO 14
  • IN3 vers GPIO 13
  • VCC à 3v
  • Terre à Terre
  • Borne positive du moteur au GPIO 21
  • Borne négative du moteur à GND
  • Émission vers GPIO 44
  • RX vers GPIO 43
  • Terre à Terre
  • VCC à 3v
  • Données vers GPIO 42
  • VCC à 3v
  • Terre à Terre

Étape 6 : Connectez le buzzer (alertes et notifications)

  • Borne positive du buzzer au GPIO 41
  • Borne négative du buzzer à GND
  • Réveillez le module en utilisant le mot de réveil par défaut
  • Dire « Apprendre le mot d’éveil » pour entraîner une commande de réveil personnalisée (facultatif)
  • Suivez les invites vocales pour enregistrer votre nouveau mot de réveil
  • Dire « Apprendre le mot de commande » pour démarrer l’entraînement aux commandes de contrôle
  • (par exemple, « Allumer un », « Vitesse du ventilateur trois », « Minuterie d’ouverture »)
  • Répétez chaque commande lorsque vous y êtes invité (2 à 3 fois)
  • Dire « Quitter l’apprentissage » terminer la formation

Navigation entre les écrans

  • Écran du contrôleur
  • Écran de minuterie
  • Écran de liste de tâches
  • Écran de liste de médicaments

Lumières et ventilateur de l'écran du contrôleur

  • Commandes Lumière 1, Lumière 2, Lumière 3 ON/OFF
  • Contrôle le ventilateur ON/OFF

Pop-up sur la vitesse du ventilateur

  • Appuyez deux fois sur l’icône du ventilateur : une fenêtre contextuelle apparaît
  • Utilisez + et – pour augmenter ou diminuer la vitesse du ventilateur

Écran de minuterie

  • Régler l’heure au format HH:MM:SS
  • +/- ajuste les heures, les minutes, les secondes
  • Lecture/Pause pour démarrer et arrêter la minuterie

À la fin du chronomètre :

Minuterie terminée

  • Le buzzer sonne
  • L’écran Big Timer DONE apparaît

Écran de liste de tâches

Écran de liste de tâches

  • Les tâches ajoutées depuis l’interface utilisateur Web apparaissent ici
  • Appuyez sur n’importe quelle tâche pour afficher le texte intégral
  • La case à cocher sur le côté supprime la tâche (tâche terminée)

Affichage du texte Sortie

Écran de liste de médicaments

  • Les médicaments ajoutés depuis l’interface utilisateur Web apparaissent ici
  • Cocher la case arrête les rappels supplémentaires pour cette dose

Écran de liste de médicaments

Écran de verrouillage

  • Verrouillage automatique après inactivité
  • Affiche l’heure, la température, faites glisser pour déverrouiller
  • Réveillez-vous par le toucher ou la voix

Affichage de l'écran de verrouillage

Interface utilisateur Web (tableau de bord Web local)

Tableau de bord Web local de l'interface utilisateur Web

Commandes d’éclairage et de ventilateur

Commandes du ventilateur de lumière

  • Lumière 1, Lumière 2, Lumière 3 ON/OFF
  • Ventilateur marche/arrêt
  • Vitesse du ventilateur réglée via le menu déroulant

Ajouter une section de tâches

image de la section des tâches

  • Ajouter des tâches (max 5 tâches)
  • Le bouton D supprime une tâche
  • Les modifications se synchronisent instantanément sur l’appareil

Section Liste des médicaments

Section Liste des médicaments

  • Ajouter le nom du médicament + l’heure + AM/PM
  • Ajouter un bouton pour enregistrer
  • Le bouton D supprime le médicament
  • Synchronisation en temps réel avec l’appareil
#include 
#include 
#include 
#include 
#include 
#include "DFRobot_DF2301Q.h"
#define LGFX_ESP32_S3_BOX_V3
#include 
#define GPIO_LIGHT1 10
#define GPIO_LIGHT2 14
#define GPIO_LIGHT3 13
#define FAN_PWM_PIN 21
#define BUZZER_PIN 41
#define DHTPIN 42
#define ASR_RX 44
#define ASR_TX 43
enum Screen { SCREEN_MAIN, SCREEN_TIMER, SCREEN_TASKS, SCREEN_TASK_DETAIL, SCREEN_MEDICINES };
Screen currentScreen = SCREEN_MAIN;
  • drawMain() : Lumières et ventilateur
  • drawTimer() : minuterie d’étude
  • drawTasks() : liste de tâches
  • drawTaskDetail() : vue complète des tâches
  • drawMedicines() : rappels de médicaments
  • drawLockScreen() : Horloge + Température + glisser pour déverrouiller
if(lcd.getTouch(&x, &y)) { ... }
  • Boutons pour basculer les lumières et le ventilateur
  • Appuyez deux fois pour ouvrir la fenêtre contextuelle de vitesse du ventilateur.
  • Les valeurs de la minuterie sont ajustées
  • Les tâches sont sélectionnées ou supprimées
  • Le curseur de l’écran de verrouillage déverrouille l’interface utilisateur
uint8_t cmd = asr.getCMDID();
if(cmd){
 handleVoiceCommand(cmd);
}
ledcAttach(FAN_PWM_PIN, FAN_PWM_FREQ, FAN_PWM_RES);
case 1: duty = 51;   // 20%
case 2: duty = 102;  // 40%
case 3: duty = 153;  // 60%
case 4: duty = 204;  // 80%
case 5: duty = 255;  // 100%
WebServer server(80);
  • /11, /12, //13 – Basculer les lumières
  • /fan – Activer/désactiver le ventilateur
  • /speed?val=3 – définir la vitesse du ventilateur
  • /add, /deltask – gérer les tâches
  • /addmed, /delmed – gérer les médicaments
  • /status – État JSON en direct
  • Utilise millis() pour le compte à rebours
  • Montre grand MINUTERIE TERMINÉE écran
  • Joue une alerte sonore

Rappel de médicaments :

  • Synchronisation de l’heure NTP
  • Vérifie toutes les quelques secondes
  • Déclenche popup + buzzer
  • Fenêtre contextuelle de fermeture automatique
  • Permet de marquer le médicament comme pris
if(!isLocked && millis() - lastUserInteraction > 10000){
 isLocked = true;
}
  • Heure (NTP)
  • Température ambiante (DHT11)
  • Glisser pour déverrouiller l’interface utilisateur
  • Gérer les requêtes Web
  • Lire les commandes vocales
  • Minuterie de mise à jour
  • Vérifier l’heure des médicaments
  • Lire la température
  • Toucher la poignée
  • Écran de verrouillage automatique
  • Actualiser l’interface utilisateur

HomePod S3 - Un compagnon GitHub pour Smart Desk0pVcmIAAAAGSURBVAMAyugGFqrt9sMAAAAASUVORK5CYII=

Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

Youtube video