Contrôler votre ventilateur de plafond avec Alexa : Guide étape par étape
Composants et fournitures
| Raspberry Pi 3 Model B | × | 1 |
| Arduino UNO | × | 1 |
| Relais 5V (ou carte d'interface relais) | × | 1 |
| Régulateur de ventilateur (type résistif ancien recommandé) | × | 1 |
Outils nécessaires
| Fer à souder |
Applications et services en ligne
| Arduino IDE |
| Amazon Alexa Skills Kit |
| Ngrok (tunnel sécurisé pour exposer le serveur local) |
À propos de ce projet
Ce projet transforme un ventilateur de plafond classique en appareil intelligent contrôlable par Amazon Alexa pour la vitesse et l'allumage/extinction.
Architecture : Alexa Skill → Ngrok → Raspberry Pi (serveur Flask) → Arduino (série) → Relais → Régulateur.

Configuration du serveur Raspberry Pi local
Installez les paquets Python nécessaires :
sudo apt-get install python-pip
pip install flask
pip install flask-ask
sudo apt-get install python-serial
sudo apt-get install libpython2.7-dev
Code serveur Python (Flask + Flask-Ask)
from flask import Flask
from flask_ask import Ask, statement
import serial
ser = serial.Serial("/dev/ttyAMA0", 9600)
app = Flask(__name__)
ask = Ask(app, '/')
@ask.launch
@ask.intent("FanOn")
def on():
ser.write(b'1')
return statement("Ventilateur de plafond allumé.")
@ask.intent("FanOff")
def off():
ser.write(b'0')
return statement("Ventilateur de plafond éteint.")
@ask.intent("FanLevelUp")
def up():
ser.write(b'+')
return statement("Vitesse ventilateur augmentée.")
@ask.intent("FanLevelDown")
def down():
ser.write(b'-')
return statement("Vitesse ventilateur diminuée.")
if __name__ == "__main__":
app.run(debug=True)
Lancez ce script et ajoutez-le au démarrage automatique du Raspberry Pi.
Ngrok : tunnel sécurisé
Téléchargez Ngrok pour ARM : ngrok.com
./ngrok http 5000
Notez l'URL HTTPS générée (ex: https://abcd1234.ngrok.io).
Création de la compétence Alexa (Alexa Skill)
- Inscrivez-vous sur Amazon Developer Console
- Créez une nouvelle compétence (« Add new skill »)
- Nom et nom d'invocation (ex: « ventilateur »)
- Définissez les intents :
{
"intents": [
{ "intent": "FanOn" },
{ "intent": "FanOff" },
{ "intent": "FanLevelUp" },
{ "intent": "FanLevelDown" }
]
}
- Exemples d'énoncés (utterances) :
FanOn dire ventilateur allumer / dire allumer
FanOff dire éteindre / dire ventilateur éteindre
FanLevelUp dire ventilateur plus vite / dire augmenter vitesse
FanLevelDown dire ventilateur moins vite / dire diminuer vitesse
- Configuration du endpoint : sélectionnez HTTPS, collez l'URL Ngrok, choisissez l'option 2 pour le certificat SSL (certificat Ngrok auto-signé)
- Testez : assurez-vous que Ngrok et le script Python tournent
Code Arduino
Le sketch reçoit les commandes série (1, 0, +, -) et pilote 6 relais pour les vitesses :
int Fan[] = {13, 12, 11, 10, 9, 8}; // Broches relais vitesse 0-5
int n = 0;
void reset() {
for (int i = 0; i < 6; i++) digitalWrite(Fan[i], LOW);
}
void set(char x) {
switch (x) {
case '1': n = 1; break; // Allumage vitesse 1
case '+': n++; break; // Vitesse supérieure
case '-': n--; break; // Vitesse inférieure
case '0': n = 0; break; // Extinction
}
if (n >= 0 && n <= 5) digitalWrite(Fan[n], HIGH);
}
void setup() {
for (int i = 0; i < 6; i++) pinMode(Fan[i], OUTPUT);
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
char x = Serial.read();
reset();
set(x);
}
}
Montage hardware
Câblez selon le schéma : Raspberry Pi (UART) → Arduino (série) → Relais → Régulateur ventilateur.


Amusez-vous bien ! Vous pouvez rendre tout appareil pilotable par la voix de la même façon.
Processus de fabrication
- Construire un réseau de capteurs sans fil abordable pour votre maison
- Construire une Tirelire Intelligente : Contrôler un Accepteur de Pièces avec Arduino Nano
- Centre de contrôle d'alimentation Arduino : N-FET, P-FET, Relais et RTC
- Contrôler des LED avec Alexa via Raspberry Pi – Guide Pas à Pas
- Contrôler une LED par Bluetooth avec Arduino et MIT App Inventor
- Contrôleur d'humidificateur DIY avec Arduino et relais – Installation haute tension sécurisée
- Contrôler 2 moteurs pas-à-pas avec Arduino Nano et joystick – Tutoriel Visuino
- Contrôler une LED Arduino avec Cortana via Bluetooth sur Windows 10
- Contrôle de ventilateur PWM 4 broches 25 kHz avec Arduino Uno – Construction, code et test