Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Activez le contrôle Alexa sur votre ventilateur de plafond

Composants et fournitures

Raspberry Pi 3 Modèle B
× 1
Arduino UNO
× 1
Relais (générique)
soit un relais 5V pour pouvoir s'interfacer directement avec arduino soit une carte d'interface relais suffirait
× 1
Régulateur de ventilateur
vous pouvez utiliser n'importe quel type, tant que vous pouvez trouver un terminal pour l'alimenter. Je suggérerais des régulateurs de type plus ancien qui utilisaient des blocs résistifs pour réduire la tension fournie
× 1

Outils et machines nécessaires

Fer à souder (générique)

Applications et services en ligne

Arduino IDE
Kit de compétences Amazon Alexa Alexa
Ngrok

À propos de ce projet

Je vais détailler ici comment j'ai fait de mon ventilateur de plafond ordinaire un ventilateur intelligent en intégrant Amazon Alexa pour le contrôle de la vitesse de celui-ci. Nous utiliserons l'ensemble de compétences amazon alexa pour initier le changement de vitesse, et nous serons ngrok service de tunneling pour acheminer la demande vers notre serveur RPi hébergé localement, qui indiquera à notre Arduino uno d'activer le relais associé.

Configuration de notre serveur Raspberry Pi local

nous avons besoin des services suivants pour utiliser notre serveur.

  • Python PIP :pour installer les packages python, si vous utilisez python 2.7 ou 3 pip sera installé par défaut, vous pouvez donc éviter cette étape
sudo apt-get install python-pip  
  • Flask :Flask est un package serveur pour python qui vous aidera à implémenter facilement des serveurs python.
flacon d'installation pip  
  • flask ask :une extension de flacon utilisée pour créer facilement des programmes alexa friendly.
pip install flask-ask  
  • pyserial :module de communication série pour python
sudo apt-get install pyserial 
  • libpython2.7-dev
sudo apt-get intall libpython2.7-dev 

tous les modules nécessaires sont installés son temps pour mettre le serveur en marche. nous devons entrer le script python pour le même

depuis flask import Flaskfrom flask_ask import Ask, statementimport requestimport jsonimport serial ser =serial.Serial("/dev/ttyAMA0",9600)app =Flask(__name__)ask =Ask(app, '/')@ [email protected]("FanOn")def on():ser.write(b'1') return statement ("Ventilateur de plafond allumé.")@ask.intent("FanOff")def off() :ser.write(b'0') déclaration de retour("Ventilateur de plafond éteint.")@ask.intent("FanLevelUp")def up():ser.write(b'+') déclaration de retour("Ventilateur de plafond accélérer.")@ask.intent("FanLevelDown")def down():ser.write(b'-') return statement("Ceiling Fan speed down.")if __name__ =="__main__":app.run (debug=True) 

Exécutez ce script python et inscrivez ce script dans la liste de démarrage automatique de votre RPi.

3. Télécharger Ngrok

Ngrok est une plate-forme de tunneling sécurisée pour mettre votre appareil en ligne. Avec cette plate-forme, vous pouvez mettre en ligne votre application Web ou toute application de manière très simple. Pour le téléchargement, allez sur le site officiel et téléchargez pour ARM.

https://ngrok.com/

Décompressez-le et accédez au répertoire où vous l'extrayez. Exécutez-le en utilisant la commande

./ngrok http 5000  

Compétence Alexa

Accédez à la page développeur d'Amazon et créez votre compte développeur

https://developer.amazon.com/

Entrez dans la console du développeur après vous être connecté et sélectionnez maintenant "Kit de compétences Alexa"

maintenant sélectionnez "Ajouter une nouvelle compétence"

Saisissez le nom de votre compétence et saisissez un nom d'appel. assurez-vous que votre nom d'invocation remplit les conditions nécessaires

enregistrer et passer à l'étape suivante

saisissez ici les intentions d'invocation de la compétence et des exemples d'énoncés, c'est-à-dire les combinaisons de mots à initier pour chaque intention.

les intentions sont les suivantes

{ "intents":[ { "intent":"FanOn" }, { "intent":"FanOff" }, { "intent":"FanLevelUp" }, { "intent":"FanLevelDown" }] } 

exemples d'énoncés

FanOn dit fan onFanOn dit onFanOff dit offFanOff dit fan offFanLevelUp dit ventilateur level upFanLevelUp dit augmenter la vitesse du ventilateurFanLevelDown dit ventilateur level downFanLevelDown dit diminuer la vitesse du ventilateur 

Enregistrez et passez à l'étape suivante. ici, vous devrez entrer l'emplacement auquel vous êtes censé envoyer les données une fois qu'une intention est invoquée.

puisque nous utilisons ngrok , sélectionnez HTTPS, et entrez le lien sécurisé est généré dans ngrok serve, enregistrez-le et passez à l'étape suivante

choisissez la deuxième option pour le certificat SSL, et continuez

Pour vérifier si notre configuration fonctionne ou non. Assurez-vous que votre serveur ngrok fonctionne et que le script Python s'exécute également, sinon cela ne fonctionnera pas.

nous pouvons voir que les serveurs reçoivent des demandes et les mettent à jour.

Code Arduino

téléchargez le croquis ci-joint votre arduino et connectez-le à raspberry pi comme expliqué dans le schéma.

int Fan[] ={13,12,11,10,9,8} ; int n=0;void reset();void set(char);void setup() { // mettez votre code de configuration ici, à exécuter une fois :for(int i=0;i<6;i++){ pinMode(Fan [i], SORTIE); } Serial.begin(9600); } void loop() { char x;if (Serial.available()){ x=Serial.read(); réinitialiser(); set(x);}}void reset(){ for(int i=0;i<6;i++) { digitalWrite(Fan[i], LOW); }}void set(char x){ switch (x) { case '1' :n=1 ; Pause; cas '+' :n++ ; Pause; cas '-':n--; Pause; cas '0' :n=0; Pause; } digitalWrite(Fan[n],HIGH);}  

Matériel

connectez le matériel comme indiqué sur le schéma

Bonne fabrication. activer la voix de tout autre appareil de la même manière :)

Code

  • croquis arduino
  • Code du serveur Python
croquis arduinoArduino
téléchargez ce code sur votre arduino et connectez-le à votre serveur raspberry pi
int Fan[] ={13,12,11,10,9,8} ; int n=0;void reset();void set(char);void setup() { // mettez votre code de configuration ici, à exécuter une fois :for(int i=0;i<6;i++){ pinMode(Fan [i], SORTIE); } Serial.begin(9600); } void loop() { char x;if (Serial.available()){ x=Serial.read(); réinitialiser(); set(x);}} void reset(){ for(int i=0;i<6;i++) { digitalWrite(Fan[i], LOW); }}void set(char x){ switch (x) { case '1' :n=1 ; Pause; cas '+' :n++ ; Pause; cas '-':n--; Pause; cas '0' :n=0; Pause; } digitalWrite(Fan[n],HIGH);} 
Code du serveur PythonPython
un ce code dans votre spython après la configuration de ngrok afin de recevoir les données
de l'importation du flacon Flaskfrom flask_ask import Ask, statementimport requestimport jsonimport serial ser =serial.Serial("/dev/ttyAMA0",9600)app =Flask(__name__ )ask =Ask(app, '/')@[email protected]("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'+') déclaration de retour("Ventilateur de plafond accéléré.")@ask.intent("FanLevelDown")def down():ser.write(b'-') déclaration de retour ("Vitesse de ventilateur de plafond réduite." )if __name__ =="__main__":app.run(debug=True)

Schémas

c'est ainsi que vous connectez les appareils ensemble

Processus de fabrication

  1. Construire un réseau de capteurs sans fil dans votre maison
  2. Contrôler l'accepteur de pièces avec Arduino
  3. Centre de contrôle Arduino
  4. LED contrôlées par Alexa via Raspberry Pi
  5. Arduino avec Bluetooth pour contrôler une LED !
  6. Contrôle de l'humidificateur Arduino
  7. Arduino Nano :contrôler 2 moteurs pas à pas avec joystick
  8. Contrôlez votre LED avec Cortana
  9. Contrôle de ventilateur PWM 4 broches 25 kHz avec Arduino Uno