Tabla de contenido:
- Paso 1: manual de usuario
- Paso 2: descripción general del circuito
- Paso 3: Fabricación y montaje de PCB
- Paso 4: Fabricación
- Paso 5: Descripción general del sistema de software
- Paso 6: descripción general del software
- Paso 7: Calibración del sensor
- Paso 8: Convención de nomenclatura de temas de MQTT
- Paso 9: depuración y búsqueda de fallas
- Paso 10: Probar el diseño
- Paso 11: Conclusión
- Paso 12: Referencias utilizadas
Video: Síntesis de voz retro. Parte: 12 IoT, automatización del hogar: 12 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Este artículo es el duodécimo de una serie de Instructables sobre automatización del hogar que documenta cómo crear e integrar un dispositivo de síntesis de voz retro de IoT en un sistema de automatización del hogar existente, incluida toda la funcionalidad de software necesaria para permitir la implementación exitosa en un entorno doméstico.
La imagen 1 muestra el dispositivo de sintetizador de voz IoT completo y la imagen 2 muestra todos los componentes utilizados en el prototipo que se redujeron en factor de forma para ir al producto final.
El video muestra el dispositivo en acción (durante la prueba).
Introducción
Como se mencionó anteriormente, este Instructable detalla cómo hacer un dispositivo de síntesis de voz retro de IoT y se basa en General Instruments SP0256-AL2.
Su propósito principal es agregar la síntesis de voz de la 'vieja escuela' a una red de IoT. ¿Por qué 'vieja escuela' puede preguntar? Bueno, porque yo estaba en los años 80 cuando se fabricaron estas cosas por primera vez y conecté una a mi BBC Micro, así que para mí hay un cierto grado de nostalgia en torno al SP0256-AL2.
Prefiero el desafío de tratar de averiguar qué diablos está diciendo esta voz que suena a Dalek que escuchar los tonos dulces de un eco inconformista de Amazon o Siri. ¿Dónde está el desafío en eso que te pregunto?
Ah, y sin mencionar que también tengo una 'bolsa de carga' de circuitos integrados 'SP0256-AL2' por ahí.
El dispositivo también es capaz de leer la temperatura y la humedad locales, por lo que amplía aún más la instrumentación ambiental de mi infraestructura de IoT existente y se conecta a la red de IoT basada en MQTT / OpenHAB que se detalla en esta serie sobre automatización del hogar (HA), basándose en el código reutilizado tomado de aquí.
En su corazón hay un ESP8266-07 que es responsable de las comunicaciones MQTT y de controlar todas las funciones del sistema (acceso a la tarjeta SD, control de LED, detección de temperatura / humedad, control de volumen, síntesis de voz). El dispositivo es totalmente configurable a través de archivos de texto almacenados en un tarjeta SD local, aunque los parámetros de seguridad de red y calibración también se pueden programar a través de publicaciones MQTT remotas.
¿Qué partes necesito?
Vea la lista de materiales aquí
¿Qué software necesito?
- Arduino IDE 1.6.9,
- Arduino IDE configurado para programar el ESP8266-07 (igual que este). Luego configure el IDE como se indica en la descripción detallada proporcionada en el esquema del software aquí,
- Python v3.5.2 si desea utilizar la capacidad de prueba automatizada, detalles aquí
¿Qué herramientas necesito?
- Microscopio al menos x3 (para soldadura SMT),
- Herramienta de crimpado de conectores Molex (para conectores JST),
- Soldador SMD (con bolígrafo de fundente líquido y soldadura con núcleo de fundente),
- Destornilladores (varios),
- Pistola de calor,
- Taladros (varios),
- Herramienta de mano avellanada,
- Archivos (varios),
- Dremel (varios bits),
- Vicio robusto (pequeño y grande, como un compañero de trabajo negro y decker),
- Bisturí,
- Calibradores Vernier (utilizados para medir la fabricación y útiles para dimensionar componentes de PCB),
- Llaves y destornilladores para tuercas (varios),
- Pinzas fuertes (para soldadura SMT),
- Sierra para metales junior,
- Taladro (con varias brocas),
- Alicates finos (puntiagudos y de punta chata),
- Cortadores al ras,
- DMM con control de continuidad audible,
- Osciloscopio digital de doble canal (útil para depurar señales)
¿Qué habilidades necesito?
- Mucha paciencia
- Gran destreza manual y excelente coordinación mano / ojo,
- Excelentes habilidades de soldadura,
- Excelentes habilidades de fabricación,
- La capacidad de visualizar en 3 dimensiones,
- Algunos conocimientos de desarrollo de software con 'C' (si desea comprender el código fuente),
- Algún conocimiento de Python (cómo instalar y ejecutar scripts, si desea utilizar las pruebas automatizadas),
- Conocimiento de Arduino y su IDE,
- Buen conocimiento de la electrónica,
- Algún conocimiento de su red doméstica.
Tópicos cubiertos
- Manual de usuario
- Resumen del circuito
- Fabricación y montaje de PCB
- Fabricación
- Descripción general del sistema de software
- Descripción general del software
- Calibración del sensor
- Convención de nomenclatura de temas de MQTT
- Depuración y búsqueda de fallos
- Probando el diseño
- Conclusión
- Referencias utilizadas
Vínculos de la serie a la Parte 11: Consola de escritorio de IoT. Parte: 11 IoT, automatización del hogar
Paso 1: manual de usuario
La imagen 1 de arriba muestra la parte frontal del sintetizador de voz retro y la imagen 2 la parte trasera.
Frente del recinto
- Parrilla del altavoz
- Conector de auriculares de 3,5 mm: el altavoz principal se desactiva cuando se inserta el conector de 3,5 mm.
- LED rojo: este LED se ilumina mientras se pronuncia una palabra cuando se inició la conversación a través de una solicitud
- LED azul: este LED se ilumina mientras se pronuncia una palabra cuando se inició la conversación a través de una solicitud de IoT de MQTT.
Caja trasera
- Botón de reinicio: se utiliza para reiniciar el dispositivo ESP8266-07 IoT.
- Botón de flash: cuando se usa junto con el botón de reinicio, permite volver a parpadear el ESP8266-07.
- Enchufe de antena WiFi (enchufe SMA): para antena WiFi externa que ofrece la menor atenuación de la ruta de RF ya que el cierre es de aluminio.
- Puerto de programación externo: para eliminar la necesidad de desatornillar el gabinete para obtener acceso al ESP8266-07 con fines de reprogramación. Los pines de programación del ESP8266-07 se han llevado al puerto de programación externo. La imagen 3 es el adaptador de programación.
- LED verde: este es el LED del sistema IoT y se utiliza para indicar el estado de diagnóstico del dispositivo y el inicio y durante el funcionamiento.
- Sensor externo de temperatura / humedad (AM2320)
- Ranura para tarjeta SD: contiene todos los datos de configuración / seguridad junto con las páginas del servidor web.
- Toma de alimentación de 2,1 mm 6vdc
Paso 2: descripción general del circuito
El dispositivo Retro Speech Synth consta de dos PCB;
- RetroSpeechSynthIoTBoard: Este es un PCB genérico y reutilizable ESP8266-07 / 12 / 12E / 13
- RetroSpeechSynthBoard: este es un PCB genérico SP0256-AL2
Tablero de IoT de sintetizador de voz retro
Esta placa permite soldar directamente un ESP8266-07 / 12 / 12E / 13 o enchufes de paso de 0.1 que alojan un PCB portador ESP8266.
La placa fue diseñada para expandir su E / S a través de una conexión I2C y puede admitir niveles de suministro de 3v3 o 5v a través de Q1, Q2, R8-13.
La conexión a la placa se logra a través de uno de los dos cabezales J2 y J4, una cinta DIL IDC de 8 vías o JST / Molex de 5 vías.
U2 y U3 provisión 3.3v y 5v regulación de alimentación a bordo. Alternativamente, si se requiere una mayor capacidad de corriente, se pueden conectar reguladores de derivación en serie externos a través de los conectores J10 y J11, respectivamente.
Los conectores J1 y J3 ofrecen soporte para tarjetas SD externas sobre SPI. J1 ha sido diseñado para un Molex de 8 vías y J3 tiene un pin directo para soporte de compatibilidad de pin para un PCB de tarjeta SD estándar con soporte 3v3 o 5v.
Tablero de sintetizador de voz retro
El control de esta placa se realiza a través de una conexión compatible con I2C 5v a través de J1, J5 o J6, un conector de cinta JST / Molex de 4 vías, DIL IDC de 8 vías o IDC de 8 vías.
U2 MPC23017 proporciona la interfaz I2C a paralelo a U3, el SP0256-AL2 y los LEDS D1 (verde), D2 (rojo) y D3 (azul). La salida del Speech Synth se envía al amplificador de audio CR1 TBA820M a través del potenciómetro analógico RV1 o del potenciómetro digital U1 MCP4561.
Digital Pot U1 también se controla a través de I2C compatible con 5v.
Nota: Se eligió el dispositivo ESP8266-07 porque tiene un conector RF IPX integral que permite agregar una antena WiFi externa a la carcasa de aluminio.
Paso 3: Fabricación y montaje de PCB
Las imágenes 1 y 2 muestran los subconjuntos de PCB completos y cableados ubicados en el sustrato del gabinete de aluminio.
Los dos PCB se diseñaron con Kicad v4.0.7, fabricados por JLCPCB y ensamblados por mí y se muestran arriba en las fotografías 3 a 13.
Paso 4: Fabricación
La imagen 1 muestra un diseño de estilo manual de Haynes de todas las piezas prefabricadas antes del ensamblaje final.
Las fotografías 2… 5 muestran varias tomas durante la fabricación del recinto con espacios mínimos.
Paso 5: Descripción general del sistema de software
Este dispositivo de síntesis de voz retro de IoT contiene seis componentes de software clave, como se muestra en la imagen 1 anterior.
Tarjeta SD
Este es el sistema de archivo flash SD SPI externo y se utiliza para contener la siguiente información (ver imagen 2 arriba);
- Íconos y 'Página de inicio de configuración de sintetizador de voz' index.htm: El dispositivo IoT lo proporciona cuando no puede conectarse a su red WiFi de IoT (generalmente debido a información de seguridad incorrecta o al uso por primera vez) y proporciona al usuario un medio de configurar de forma remota los sensores sin la necesidad de volver a flashear nuevo contenido SD. También contiene index1.htm, mqtt.htm y sp0256.htm, estas son las páginas web servidas localmente accesibles a través de un navegador web que permite un control limitado del sintetizador de voz a través de
- Información de seguridad: contiene la información utilizada en el encendido por el dispositivo IoT para conectarse a su red WiFi IoT y MQTT Broker. La información enviada a través de la 'Página de inicio de configuración de sintetizador de voz' se escribe en este archivo ('secvals.txt').
- Información de calibración: la información contenida en los archivos ('calvals1.txt' y 'calvals2.txt') se utiliza para calibrar los sensores de temperatura / humedad integrados en caso de que sea necesario. Las constantes de calibración se pueden escribir en el dispositivo IoT a través de comandos MQTT desde un agente MQTT o volviendo a flashear la tarjeta SD. 'calvals1.txt' pertenece al sensor AM2320 y 'calvals2.txt' al DHT22.
- Valores del sistema configurables por el usuario: la información contenida en este archivo ('confvals.txt'), elegida por el usuario, controla ciertas respuestas del sistema, como el nivel de volumen digital inicial, el anuncio automático de 'sistema listo' en la suscripción del corredor de MQTT, etc.
Servidor mDNS
Esta funcionalidad se invoca cuando el dispositivo IoT no ha podido conectarse a su red WiFi como una estación WiFi y, en cambio, se ha convertido en un punto de acceso WiFi similar a un enrutador WiFi doméstico. En el caso de un enrutador de este tipo, normalmente se conectaría ingresando la dirección IP de algo como 192.168.1.1 (generalmente impresa en una etiqueta adherida a la caja) directamente en la barra de URL de su navegador, después de lo cual recibirá una página de inicio de sesión para ingresar. el nombre de usuario y la contraseña para permitirle configurar el dispositivo. Para el ESP8266-07 en modo AP (modo de punto de acceso), el dispositivo tiene por defecto la dirección IP 192.168.4.1, sin embargo, con el servidor mDNS en ejecución, solo tiene que ingresar el nombre amigable para humanos 'SPEECHSVR.local' en la barra de URL del navegador para consulte la 'Página de inicio de configuración de sintetizador de voz'.
Cliente MQTT
El cliente MQTT proporciona toda la funcionalidad necesaria para; conéctese a su broker MQTT de la red de IoT, suscríbase a los temas que elija y publique cargas útiles para un tema determinado. En resumen, proporciona la funcionalidad principal de IoT.
Servidor web
Este servidor web tiene dos propósitos;
- Si el dispositivo de IoT no puede conectarse a la red WiFi cuyo SSID, P / W, etc.se define en el archivo de información de seguridad que se encuentra en la tarjeta SD, el dispositivo se convertirá en un punto de acceso. Una vez conectado a la red WiFi proporcionada por el punto de acceso, la presencia de un servidor web HTTP le permite conectarse directamente al dispositivo y cambiar su configuración mediante el uso de un navegador web HTTP, cuyo propósito es ofrecer la 'Configuración de sintetizador de voz Página de inicio 'página web que también se encuentra en la tarjeta SD.
- Una vez que el dispositivo de síntesis de voz retro de IoT se haya conectado a la red WiFi y al agente MQTT, si se accede, el servidor web HTTP ofrecerá automáticamente una página web HTTP que permitirá un control limitado del dispositivo de IoT para decir una selección de frases fijas y la capacidad de ciclar los dos LED rojo y azul delanteros.
Estación WiFi
Esta funcionalidad le da al dispositivo IoT la capacidad de conectarse a una red WiFi doméstica usando los parámetros en el archivo de Información de Seguridad, sin esto, su dispositivo IoT no podrá suscribirse / publicar en el Broker MQTT.
Punto de acceso WiFi
La capacidad de convertirse en un punto de acceso WiFi es un medio por el cual el dispositivo IoT le permite conectarse a él y realizar cambios de configuración a través de una estación WiFi y un navegador (como Safari en el iPad de Apple). Este punto de acceso transmite un SSID = "SPEECHSYN" + los últimos 6 dígitos de la dirección MAC del dispositivo IoT. La contraseña para esta red cerrada se llama imaginativamente 'PASSWORD'
Paso 6: descripción general del software
Preámbulo
Para compilar correctamente este código fuente, necesitará una copia local del código y las bibliotecas que se describen a continuación en el Paso 12, Referencias utilizadas. Si no está seguro de cómo instalar una biblioteca Arduino, vaya aquí.
Visión general
El software hace uso de la máquina de estado como se muestra en la imagen 1 anterior (copia completa de la fuente en mi repositorio de GitHub aquí). Hay 5 estados principales como se describe a continuación;
-
EN ESO
Este estado de inicialización es el primer estado que se ingresa después del encendido
-
NOCONFIG
Este estado se ingresa si después del encendido se detecta un archivo secvals.txt no válido o faltante. Durante este estado, la página de configuración está visible
-
PENDIENTE NO
Este estado es transitorio, se ingresa mientras no existe conexión de red WiFi
-
PENDIENTE MQTT
Este estado es transitorio, se ingresa después de que se ha establecido una conexión de red WiFi y mientras no existe conexión con un corredor MQTT en esa red
-
ACTIVO
Este es el estado operativo normal al que se ingresa una vez que se ha establecido una conexión de red WiFi y una conexión de MQTT Broker. Es durante este estado que la temperatura, el índice de calor y la humedad en el Dispositivo de Síntesis de Voz Retro de IoT se publica regularmente para MQTT Broker. En este estado, la página de inicio de Speech Synth es visible
Los eventos que controlan las transiciones entre estados se describen en la imagen 1 anterior. Las transiciones entre estados también se rigen por los siguientes parámetros de SecVals;
- Primera dirección IP del corredor de MQTT. En forma decimal con puntos AAA. BBB. CCC. DDD
- Segundo puerto de intermediario MQTT. En forma de número entero.
- La tercera conexión de MQTT Broker intenta realizar antes de cambiar del modo STA al modo AP. En forma de número entero.
- 4to SSID de red WiFi. En texto de forma libre.
- Quinta contraseña de red WiFi. En texto de forma libre.
Como se mencionó anteriormente, si el dispositivo IoT no puede conectarse como una estación WiFi a la red WiFi, cuyo SSID y P / W se definen en secvals.txt en la tarjeta SD, el dispositivo IoT se convertirá en un punto de acceso. Una vez conectado a este punto de acceso, aparecerá la 'Página de inicio de configuración de sintetizador de voz' como se muestra arriba en la Imagen 2 (ingresando 'SPEECHSVR.local' o 192.168.4.1 en la barra de direcciones URL de su navegador). Esta página de inicio permite la reconfiguración del dispositivo de síntesis de voz retro de IoT a través de un navegador
Acceso remoto mientras está en estado ACTIVO
Una vez conectado al MQTT Broker, también es posible recalibrar y reconfigurar el dispositivo a través de publicaciones temáticas de MQTT. El archivo calvals.txt tiene acceso R / W y secvals.txt tiene acceso de solo escritura expuesto.
También como se mencionó anteriormente, una vez en el modo activo es posible acceder al Speech Synth a través de una interfaz HTTP ingresando 'SPEECHSVR.local' o 192.168.4.1 en la barra de direcciones URL de su navegador. Esta interfaz basada en HTTP permite un control básico del Speech Synth. Las fotografías 3, 4 y 5 muestran las páginas web disponibles.
Depuración del usuario
Durante la secuencia de arranque, el LED verde del sistema del dispositivo IoT en la parte posterior del gabinete proporciona la siguiente información de depuración;
- 1 flash corto: no hay archivo de configuración ubicado en la tarjeta SD (secvals.txt)
- 2 destellos cortos: el dispositivo IoT está intentando conectarse a la red WiFi
- Iluminación continua: el dispositivo IoT está intentando conectarse a MQTT Broker
- Apagado: el dispositivo está activo.
Funcionalidad del dispositivo de síntesis de voz retro de IoT en estado ACTIVO
Una vez en el estado ACTIVO, el ESP8266 entra en un bucle continuo que llama a las siguientes funciones; timer_update (), checkTemperatureAndHumidity () y handleSpeech (). El resultado neto de lo cual ha sido diseñado para presentar al usuario una interfaz HTTP o MQTT, dar servicio sin problemas a su procesador de voz integrado con fonemas a pedido y publicar valores paramétricos ambientales locales a través de MQTT.
En el código fuente se incluye una lista completa de todas las publicaciones y suscripciones a temas, incluidos los valores de carga útil.
Paso 7: Calibración del sensor
Cuando el dispositivo de IoT se enciende, como parte de la secuencia de arranque, se leen de la tarjeta SD dos archivos llamados 'cavals1.txt' y 'cavals2.txt'.
El contenido de estos archivos son constantes de calibración como se indica arriba en la imagen 1.
- 'cavals1.txt': utilizado por el AM2320 externo
- 'cavals2.txt': utilizado por el DHT22 interno
Estas constantes de calibración se utilizan para ajustar las lecturas adquiridas de los dos sensores para alinearlas con un dispositivo de referencia. Hay un valor adicional que define una estrategia de informes para cada dispositivo y se describe a continuación junto con el procedimiento seguido para calibrar los sensores.
Estrategia de informes
Este parámetro determina cómo el sensor remoto informa cualquier cambio paramétrico ambiental local. Si se selecciona un valor de 0, el sensor remoto publicará cualquier cambio que vea en la temperatura o la humedad cada vez que se lea el sensor respectivo (aproximadamente cada 10 segundos). Cualquier otro valor retrasará la publicación de un cambio entre 1… 60 minutos. La modificación de este parámetro permite optimizar el tráfico de la red MQTT. Cabe señalar que los datos de temperatura y humedad del DHT22 se leen alternativamente debido a las limitaciones del sensor.
Calibración de temperatura
Para calibrar el sensor de temperatura, seguí el mismo proceso que se describe aquí en el paso 4, nuevamente usando una relación simple y = mx + c. Utilicé el sensor de temperatura y humedad de IoT n. ° 1 como dispositivo de referencia. Los valores del sensor están en grados centígrados.
Calibración de humedad
Como no poseo ningún medio para registrar con precisión o incluso controlar la humedad ambiental local, para calibrar el sensor utilicé un enfoque similar al anterior aquí paso 4, nuevamente usando el sensor n. ° 1 como referencia. Sin embargo, dicho lo anterior, recientemente encontré un excelente artículo en la web que describe cómo calibrar los sensores de humedad. Bien podría intentar este enfoque en algún momento en el futuro. Los valores del sensor están en% de edad de la humedad relativa.
Paso 8: Convención de nomenclatura de temas de MQTT
Como se mencionó en un Instructable anterior (aquí), me decidí por la convención de nomenclatura de temas descrita en la imagen 1 anterior.
Es decir, 'AccessMethod / DeviceType / WhichDevice / Action / SubDevice' no es perfecto, pero permite que se apliquen filtros útiles para ver todas las salidas de sensor para un tema paramétrico dado, lo que permite una comparación fácil como en la imagen 2 anterior con MQTTSpy.
Este proyecto es el primer caso en el que un solo dispositivo contiene más de una fuente de origen del mismo tipo de publicación. es decir. Dos sensores de temperatura / humedad, de subdispositivos internos y externos.
También admite agrupaciones lógicas de funcionalidad razonablemente extensibles dentro de un dispositivo IoT determinado.
Al implementar estos temas en el software, utilicé cadenas de temas codificadas de forma rígida con identificadores numéricos incrustados fijos para cada dispositivo en lugar de generar dinámicamente los temas en tiempo de ejecución para ahorrar RAM y mantener un alto rendimiento.
Nota: Si no está seguro de cómo utilizar MQTTSpy, consulte aquí 'Configuración de un agente MQTT'. Parte 2: IoT, automatización del hogar '
Paso 9: depuración y búsqueda de fallas
En general, para mis proyectos de hobby, cuando es posible, tiendo a construir un prototipo de hardware representativo contra el cual se desarrolla el software. Rara vez tengo problemas al integrar el software en el hardware de la plataforma final.
Sin embargo, en esta ocasión me encontré con una extraña falla intermitente por la cual algunos fonemas sonaban pero otros no.
Después de una depuración inicial del Speech Synth PCB usando un Arduino Uno para obtener fonemas y probar que esta placa estaba funcionando, tomé un alcance de las líneas I2C entre el IoT PCB y el Speech Synth PCB. Vea la Imagen 1 arriba.
Puede ver claramente el 'diente de sierra' / borde exponencial de la señal I2C en las trazas.
Esto suele ser una indicación de que los valores de pull up I2C son demasiado altos, lo que impide que el voltaje de línea se recupere lo suficientemente rápido en un circuito de drenaje abierto.
Como una 'solución alternativa', comparé las dos resistencias smt pull up R12 y R13 con 10K para dar 4K7 y, efectivamente, el Speech Synth 'cobró vida'
Este tipo de falla es lo contrario a lo que puede ocurrir al depurar este tipo de proyectos. En general, la mayoría de los módulos basados en I2C comprados en Ebay tienden a venir con pull ups de 10K o 4K7 ya instalados. Si tiene la intención de utilizar> 5 módulos I2C, cada uno con 4K7 pull ups, entonces la carga total es 940R, que será demasiado grande para la etapa de salida del maestro. La solución sería desoldar todos menos un conjunto de resistencias pull up en cada módulo. Preferiblemente el más alejado físicamente del maestro.
Un consejo útil que vale la pena tener en cuenta al diseñar dispositivos electrónicos con dispositivos I2C.
Paso 10: Probar el diseño
Las pruebas se llevaron a cabo utilizando dos metodologías; Manual y Automatizado.
El primero, manual y generalmente utilizado durante el desarrollo inicial del código fue usar MQTT Spy para ejercitar todos los temas suscritos disponibles y verificar las respuestas publicadas (representadas en la imagen 2 arriba). Como se trata de un proceso manual, puede llevar mucho tiempo y ser propenso a errores a medida que avanza el desarrollo del código, aunque la ejecución manual permite una cobertura del 100%.
Se eligió MQTTSpy para las pruebas manuales porque es una excelente herramienta para formatear manualmente una carga útil determinada y publicarla en cualquier tema con facilidad. También muestra un registro claro con marca de tiempo que es muy útil para depurar (imagen 3 arriba).
El segundo enfoque automatizado se adoptó cuando el código fuente se volvió más complejo (> 3700 líneas). Una mayor complejidad significa ciclos de prueba manuales más largos y pruebas más complejas. Para mejorar la confiabilidad, el determinismo y la calidad de las pruebas, se utilizaron pruebas automatizadas a través de un ejecutivo de pruebas de Python (imagen 1). Vea el Paso # 10 en este Instructable sobre cómo se introdujeron las pruebas automatizadas. Una copia completa de las pruebas automatizadas utilizadas en este Instructable está disponible aquí.
Arriba se muestra un video de la secuencia de prueba automatizada en funcionamiento. La secuencia ejecuta los siguientes pasos;
-
Automatizado a través de MQTT
- Conéctese a la red troncal MQTT y anuncie 'Sistema listo'
- LED verde de ejercicio
- Ejercicio LED rojo
- Ejercicio LED azul
- Compruebe que funciona Digital Pot
- Hablar usando fonemas
- Habla usando códigos hexadecimales para fonemas
- Habla usando códigos para corregir frases
- Un poco de diversión de Dr Who y los Daleks.
-
Manualmente a través de HTTP / Chrome
- Ejercicio LED azul
- Ejercicio LED rojo
- Diga frases fijas 'Steven Quinn', 'Sistema listo' y 'Hola mundo'
- Tenga el servidor HTTP, sirva
- Detalles sobre Speech Synth Chip
- Detalles de MQTT
Paso 11: Conclusión
Aunque requirió mucho esfuerzo con archivos y taladros, etc., especialmente para la rejilla del altavoz, creo que el resultado es estéticamente agradable y se empaqueta en un recinto pequeño y agradable. Podría haberlo hecho más pequeño, pero habría tenido que ir a una PCB y deliberadamente lo partí en dos para poder reutilizar las PCB en una fecha posterior para otros proyectos. Así que es un feliz compromiso.
El software funciona bien, el dispositivo IoT ha estado en funcionamiento estable durante bastante tiempo sin ningún problema.
He estado monitoreando la temperatura y la humedad a través de Grafana y comparándola con un dispositivo de ubicación conjunta. Los dos valores ambientales se han correlacionado bien, lo que implica que la calibración es razonable (o al menos son similares).
Me detuve antes de implementar el comando de palabra ('WFD / SpeechTH / 1 / Word / Command') porque se me acabó el tiempo y necesitaba seguir adelante. Bien puedo volver a visitar esto si y cuando configuro una base de datos MySQL. Ahora mismo estoy usando InfluxDB.
Paso 12: Referencias utilizadas
Se utilizaron las siguientes fuentes para armar este Instructable; Código fuente para el dispositivo de síntesis de voz retro de IoT (esto contiene una copia de todo)
https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2
PubSubClient.h
- Por: Nick O'Leary
- Propósito: permite que el dispositivo publique o se suscriba a temas de MQTT con un Broker determinado.
- De:
DHT.h
- Por: Adafruit
- Propósito: biblioteca Arduino para sensores de temperatura y humedad DHT11DHT22, etc.
- De:
Adafruit_AM2320.h / Adafruit_Sensor.h
- Por: Adafruit
- Propósito: biblioteca Arduino para AM2320, etc. Sensor de temperatura y humedad
- De:
MCP4561_DIGI_POT.h
- Por: Steve Quinn
- Propósito: Biblioteca Arduino para potenciómetro digital MCP4561
- De:
Adafruit_MCP23017.h
- Por: Steve Quinn
- Propósito: Biblioteca Arduino para el expansor de puerto I2C MCP23017. Esta es una bifurcación GITHub de Adafruit-MCP23017-Arduino-Library, de Adafruit.
- De:
Por diversión
https://haynes.com/en-gb/
Fabricación de PCB
https://jlcpcb.com/
Instalación de bibliotecas Arduino adicionales
https://www.arduino.cc/en/Guide/Libraries
Cómo verificar y calibrar un sensor de humedad
https://www.allaboutcircuits.com/projects/how-to-check-and-calibrate-a-humidity-sensor/?utm_source=All+About+Circuits+Members&utm_campaign=ffeee38e54-EMAIL_CAMPAIGN_2017_12_06&utm_25ium_6teremail=48cutm_25ium_6teremail=8 /
Hoja de datos de SP0256-AL2
https://www.futurebots.com/spo256.pdf
Tienda de chips de voz
https://www.speechchips.com/shop/
Finalista en el Concurso Arduino 2019
Recomendado:
Automatización habladora -- Audio de Arduino -- Automatización controlada por voz -- Módulo Bluetooth HC - 05: 9 pasos (con imágenes)
Automatización habladora || Audio de Arduino || Automatización controlada por voz || HC - 05 Módulo Bluetooth: …………………………. SUSCRÍBETE A mi canal de YouTube para ver más videos …. …. En este video, hemos construido una Automatización Habladora … Cuando envíe un comando de voz a través del móvil, encenderá los dispositivos domésticos y enviará comentarios i
Control de voz de automatización del hogar con Arduino Uno y Bluetooth: 4 pasos
Control de voz de automatización del hogar usando Arduino Uno y Bluetooth: este proyecto trata sobre la interconexión de un módulo bluetooth con Arduino y un dispositivo móvil Android para activar las luces y el ventilador en una habitación usando el control de voz
Controlador de red IoT. Parte 9: IoT, automatización del hogar: 10 pasos (con imágenes)
Controlador de red IoT. Parte 9: IoT, automatización del hogar: descargo de responsabilidad LEA ESTO PRIMERO Este Instructable detalla un proyecto que usa energía de la red (en este caso, Reino Unido 240VAC RMS), mientras que se ha tomado todo el cuidado para usar prácticas seguras y buenos principios de diseño, siempre existe el riesgo de que sea potencialmente letal. electo
Sensor de temperatura y humedad WiFi IoT. Parte: 8 IoT, automatización del hogar: 9 pasos
Sensor de temperatura y humedad WiFi IoT. Parte: 8 IoT, automatización del hogar: preámbulo Este artículo documenta la robustez práctica y el desarrollo posterior de un Instructable anterior: 'Pimping' de su primer dispositivo WiFi de IoT. Parte 4: IoT, automatización del hogar, incluida toda la funcionalidad de software necesaria para permitir el éxito
Automatización del hogar controlada por voz: 8 pasos (con imágenes)
Automatización del hogar controlada por voz: Hola, en este instructivo, te enseñaré a hacer una automatización del hogar controlada por voz. Simplemente aprovecharemos nuestro teléfono móvil y controlaremos nuestros dispositivos con nuestra voz. Créame, no es tan difícil de hacer como parece. Solo sigue los pasos y