Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Habilita el control de Alexa en tu ventilador de techo

Componentes y suministros

Raspberry Pi 3 Modelo B
× 1
Arduino UNO
× 1
Retransmisión (genérico)
ya sea un relé de 5V para que pueda interactuar directamente con arduino o una placa de interfaz de relé sería suficiente
× 1
Regulador del ventilador
puede usar cualquier tipo, siempre que encuentre un terminal para suministrar energía al mismo. Sugeriría reguladores de tipo más antiguo que usaban bloques resistivos para reducir el voltaje suministrado
× 1

Herramientas y máquinas necesarias

Soldador (genérico)

Aplicaciones y servicios en línea

Arduino IDE
Kit de habilidades de Alexa de Amazon Alexa
Ngrok

Acerca de este proyecto

Detallaré aquí cómo hice que mi ventilador de techo regular fuera inteligente al integrar Amazon Alexa para el control de velocidad del mismo. Usaremos el conjunto de habilidades de amazon alexa para iniciar el cambio de velocidad, y seremos ngrok servicio de tunelización para enrutar la solicitud a nuestro servidor RPi alojado localmente, que le dirá a nuestro Arduino uno que encienda el relé relacionado.

Configuración de nuestro servidor Raspberry Pi local

necesitamos los siguientes servicios para hacer uso de nuestro servidor.

  • Python PIP:para instalar paquetes de Python, si está utilizando python 2.7 o 3 pip se instalarán de forma predeterminada, por lo tanto, puede evitar este paso
  sudo apt-get install python-pip  
  • Flask:Flask es un paquete de servidor para Python que le ayudará a implementar servidores Python fácilmente.
  matraz de instalación de pip  
  • flask ask:una extensión de matraz que se utiliza para crear fácilmente programas de alexa frendly.
  pip install flask-ask  
  • pyserial:módulo de comunicación en serie para python
  sudo apt-get install pyserial  
  • libpython2.7-dev
  sudo apt-get intall libpython2.7-dev  

todos los módulos necesarios están instalados, es hora de que el servidor se ejecute. necesitamos ingresar el script de Python para el mismo

  from flask import Flaskfrom flask_ask import Ask, statementimport ordersimport 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 ("Ventilador de techo encendido") @ ask.intent ("FanOff") def off () :ser.write (b'0 ') return statement ("Ventilador de techo apagado.") @ ask.intent ("FanLevelUp") def up ():ser.write (b' + ') return statement ("Ventilador de techo acelerar. ") @ ask.intent (" FanLevelDown ") def down ():ser.write (b'- ') return statement (" Reducir la velocidad del ventilador de techo. ") if __name__ ==" __main__ ":app.run (debug =True)  

Ejecute este script de Python e inscriba este script en la lista de inicio automático de su RPi.

3. Descarga Ngrok

Ngrok es una plataforma de tunelización segura para que su dispositivo esté en línea. Con esta plataforma puedes hacer que tu aplicación web o cualquier aplicación se conecte en línea de una manera muy sencilla. Para descargar, vaya al sitio oficial y descargue para ARM.

https://ngrok.com/

Descomprímalo y vaya al directorio donde lo extrae. Ejecútelo usando el comando

  ./ngrok http 5000  

Habilidad de Alexa

Vaya a la página de desarrollador de Amazon y regístrese para obtener su cuenta de desarrollador

https://developer.amazon.com/

Ingrese a la consola del desarrollador después de iniciar sesión y ahora ingrese y seleccione "Kit de habilidades de Alexa"

ahora seleccione "Agregar nueva habilidad"

Ingrese el nombre de su habilidad e ingrese un nombre de invocación. asegúrese de que su nombre de invocación cumpla con las condiciones necesarias

guardar y continuar con el paso siguiente

aquí ingrese las intenciones para la invocación de la habilidad y los ejemplos de enunciados, es decir, las combinaciones de palabras para iniciar cada intención.

Las intenciones son las siguientes

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

expresiones de muestra

  FanOn dice fan onFanOn dice onFanOff dice offFanOff dice ventilador apagadoFanLevelUp dice que sube el nivel del ventiladorFanLevelUp dice que aumenta la velocidad del ventiladorFanLevelDown dice que baja el nivel del ventiladorFanLevelDown dice que disminuye la velocidad del ventilador  

Guarde y pase a la siguiente etapa. aquí deberá ingresar la ubicación a la que se espera que envíe los datos una vez que se invoca una intención.

ya que estamos usando ngrok , seleccione HTTPS, e ingrese el enlace seguro que se genera en ngrok serve, guárdelo y continúe con el siguiente paso

elija la segunda opción para el Certificado SSL y continúe

Para comprobar si nuestra configuración funciona o no. Asegúrese de que su servidor ngrok esté funcionando y la secuencia de comandos de Python también se esté ejecutando; de lo contrario, no funcionará.

podemos ver que los servidores están recibiendo solicitudes y actualizándolas.

Código Arduino

cargue el boceto adjunto de su arduino y conéctelo a raspberry pi como se explica en el esquema.

  int Fan [] ={13,12,11,10,9,8}; int n =0; void reset (); void set (char); void setup () {// ponga su código de configuración aquí, para que se ejecute una vez:for (int i =0; i <6; i ++) {pinMode (Fan [i], SALIDA); } Serial.begin (9600); } bucle vacío () {char x; if (Serial.available ()) {x =Serial.read (); Reiniciar(); set (x);}} void reset () {for (int i =0; i <6; i ++) {digitalWrite (Fan [i], LOW); }} conjunto vacío (char x) {interruptor (x) {caso '1':n =1; descanso; caso '+':n ++; descanso; caso '-':n--; descanso; caso '0':n =0; descanso; } digitalWrite (Fan [n], HIGH);}  

Hardware

conecte el hardware como se muestra en el esquema

Hacer feliz. hacer que cualquier otro dispositivo se active por voz de manera similar :)

Código

  • bosquejo de arduino
  • Código del servidor Python
arduino sketch Arduino
sube este código a tu arduino y conéctalo a tu servidor raspberry pi
 int Fan [] ={13,12,11,10,9,8}; int n =0; void reset (); void set (char); void setup () {// ponga su código de configuración aquí, para que se ejecute una vez:for (int i =0; i <6; i ++) {pinMode (Fan [i], SALIDA); } Serial.begin (9600); } bucle vacío () {char x; if (Serial.available ()) {x =Serial.read (); Reiniciar(); set (x);}} void reset () {for (int i =0; i <6; i ++) {digitalWrite (Fan [i], LOW); }} conjunto vacío (char x) {interruptor (x) {caso '1':n =1; descanso; caso '+':n ++; descanso; caso '-':n--; descanso; caso '0':n =0; descanso; } digitalWrite (Fan [n], HIGH);} 
Código del servidor Python Python
Desbloquee este código en su spython después de que ngrok esté configurado para recibir datos
 de flask import Flaskfrom flask_ask import Pregunte, declaración de importación 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 ("Ventilador de techo encendido") @ ask.intent ("FanOff") def off ():ser.write (b'0 ') return statement ("Ventilador de techo apagado.") @ ask.intent ("FanLevelUp") def up ():ser.write (b '+') return statement ("Aceleración del ventilador de techo.") @ ask.intent ("FanLevelDown") def down ():ser.write (b'- ') return statement ("Reducción de velocidad del ventilador de techo." ) si __name__ =="__main__":app.run (debug =True) 

Esquemas

así es como se conectan los dispositivos

Proceso de manufactura

  1. Creación de una red de sensores inalámbricos en su hogar
  2. Controlar el aceptador de monedas con Arduino
  3. Centro de control de Arduino
  4. LED controlados por Alexa a través de Raspberry Pi
  5. ¡Arduino con Bluetooth para controlar un LED!
  6. Control del humidificador Arduino
  7. Arduino Nano:Controla 2 motores paso a paso con joystick
  8. Controla tu LED con Cortana
  9. Control total de su televisor con Alexa y Arduino IoT Cloud
  10. Conecte su calefacción central a Arduino
  11. Control de ventilador PWM de 4 pines y 25 kHz con Arduino Uno