Tabla de contenido:

JavaStation (cafetera de IoT totalmente automática de autorrelleno): 9 pasos (con imágenes)
JavaStation (cafetera de IoT totalmente automática de autorrelleno): 9 pasos (con imágenes)

Video: JavaStation (cafetera de IoT totalmente automática de autorrelleno): 9 pasos (con imágenes)

Video: JavaStation (cafetera de IoT totalmente automática de autorrelleno): 9 pasos (con imágenes)
Video: Amazon FBA COMPLETE Product Research Tutorial 2024 2024, Mes de julio
Anonim
JavaStation (cafetera de IoT totalmente automática de autorrelleno)
JavaStation (cafetera de IoT totalmente automática de autorrelleno)
JavaStation (cafetera de IoT totalmente automática de autorrelleno)
JavaStation (cafetera de IoT totalmente automática de autorrelleno)
JavaStation (cafetera de IoT totalmente automática de autorrelleno)
JavaStation (cafetera de IoT totalmente automática de autorrelleno)

El objetivo de este proyecto era hacer una cafetera controlada por voz completamente automática que se rellene automáticamente con agua y todo lo que realmente necesita hacer es reemplazar a los clientes y tomar su café;)

Paso 1: Introducción

Introducción
Introducción

Como este fue mi segundo mod de café, he aprendido mucho en el proceso, particularmente que cuanto más compleja sea la máquina que modifique, más problemas / errores encontrará durante la operación del día a día. La máquina anterior era simplemente una vieja cafetera de 1 interruptor con un mod de relé.

La Circolo (versión completamente automática) es la máquina premium de primera línea de Dolce Gusto. Tuve que pasar horas buscando la máquina adecuada porque todas las demás máquinas de esta serie utilizan la palanca mecánica superior para cambiar entre los flujos de agua fría y caliente como se muestra en la imagen.

Paso 2: elija la máquina adecuada

Elija la máquina adecuada
Elija la máquina adecuada

Mi máquina base no solo es completamente automática, sino que tiene características notables como apagarse automáticamente después de 5 minutos y recordar la última cantidad de café (lo que hará las cosas mucho más fáciles más adelante en la modificación). Funcionamiento básico de la máquina:

1, botón de encendido pulsado

2, botón de agua fría pulsado (dispersará inmediatamente el agua a la taza)

3, botón de agua caliente presionado (calentará la caldera ~ 20-60 segundos y comenzará a liberar agua caliente a la taza) La luz de encendido parpadeará en rojo durante el período de espera y luego se pondrá verde permanentemente cuando la caldera esté lista.

Esta máquina también tiene la capacidad de detectar los siguientes errores:

El tanque de agua está vacío

El portavasos no está en su lugar

En ambos casos, la luz de encendido parpadeará entre rojo y verde.

Paso 3: modificaciones de hardware

Modificaciones de hardware
Modificaciones de hardware

En este escrito no detallaré el desmontaje y montaje de la carcasa porque hay videos al respecto en YouTube. El microprocesador principal está oculto justo debajo del panel principal donde están los 2 interruptores. La caldera está en el lado derecho de la caja separada de todo lo demás, la bomba y el panel de suministro de energía están en el lado izquierdo.

La máquina de café es un entorno de trabajo pesado para la electrónica, ninguno de los lados es perfectamente adecuado para integrar un circuito. La derecha de la caldera tiene más espacio pero te ocuparás del calor, obviamente el circuito no podría tocar la placa de la caldera ni siquiera estar cerca de ella. Elegí el lado de la fuente de alimentación / bomba, pero aquí tienes que lidiar con una fuerte resonancia proveniente del funcionamiento de la bomba de membrana que puede arruinar el circuito de control / hacer que los cables se salgan de sus conectores con el tiempo.

El panel de la fuente de alimentación no contiene nada útil, pero se puede usar para extraer un + 5V estable (un pulgar más para esta máquina) que se puede conectar directamente al pin VIN de Arduino sin pasar por el regulador de voltaje integrado.

Lista rápida de hardware (no lista de materiales completa, no incluye conceptos básicos):

  1. Dolce Gusto Circulo versión completamente automática
  2. Módulo de relé de 5 V y 4 canales con optoacoplador para PIC AVR DSP (sugiero usar 4 relés de interruptor de lengüeta SIP-1A05)
  3. Arduino Micro (sugiero usar SparkFun Pro Micro o más reciente en el futuro)
  4. 2PCS 4n35 FSC Optoacopladores Fototransistor
  5. Electroválvula eléctrica de 1/2 "para agua aire N / C normalmente cerrada DC 12V
  6. Módulo ultrasónico Sensor transductor de medición de distancia HC-SR04 (compre algunos extras, verá más adelante por qué)
  7. Módulo de sensor de detección de humedad de gotas de lluvia 2 uds Detección de lluvia para Arduino
  8. 1 Xbee
  9. Accesorios de tubería para bloques de agua (pueden variar según la casa, lo mejor es comprarlo en la ferretería y juntarlo todo antes de comprar)

Paso 4: Conexiones principales y placa del controlador

Conexiones principales y placa del controlador
Conexiones principales y placa del controlador
Conexiones principales y placa del controlador
Conexiones principales y placa del controlador
Conexiones principales y placa del controlador
Conexiones principales y placa del controlador

Es necesario conectar los siguientes puntos del circuito:

1, botón caliente

2, botón frío

3, led rojo

4, led verde

5, botón de encendido principal

6, GND compartido

Desafortunadamente, perdí mis notas / imágenes sobre dónde soldarlas en la placa, pero todo se puede rastrear fácilmente con un multímetro (solo use el modo de prueba de diodos para rastrear los cables). La soldadura no fue demasiado difícil, elija puntos con patas SMD y suelde los cables allí.

Los LED rojo / verde están ubicados uno al lado del otro en el interruptor de encendido. Son necesarios para determinar los estados de la máquina (encendida, lista para hacer café (caldera calentada), error). Los he quitado directamente de la placa principal, porque es difícil manipular el pequeño circuito alrededor del interruptor de encendido.

Estaba usando los optoacopladores de 4N35 para interactuar de manera segura con el Arduino y leer los estados de los LED. La idea original era usar 5 de ellos y hacer tanto las lecturas como los controles del interruptor (hacer un circuito completamente silencioso). Desafortunadamente, este chip no pudo generar una resistencia lo suficientemente baja como para emular la pulsación de un botón, por lo que me vi obligado a utilizar relés. Usé el módulo de relé genérico de 4 canales que tenía en la mano, pero si tuviera que rehacer este proyecto, solo usaría pequeños relés Reed (SIP-1A05 Reed Switch Relay con diodos internos de retorno) que se pueden conectar directamente a la salida de Arduino. pines (carga de ~ 7 mA) para que todo se pueda colocar en una estructura de tablero de 2 niveles.

Los 5 cables pequeños se pueden bajar fácilmente junto a los cables de alimentación debajo de la placa de suministro.

Para usar el espacio de manera más eficiente en la máquina, decidí dividir la electrónica en 2 paneles principales:

La izquierda es la placa de control principal, la derecha (lo que yo llamo la placa de comunicación) sostiene el Xbee y, aunque no se muestra en la imagen, los 2 sensores de agua (para detección de desbordamiento) se aprietan detrás de él. En la parte superior, el reloj de tiempo real (opcional para el tiempo de actividad:)) y la placa de relés de 4 canales que ocupa su lugar junto a la bomba en la parte inferior envuelta en una esponja, también un poco encolada para proteger de la resonancia.

Para la placa de comunicación, no me molesté en hacer PCB, solo usé una placa de pruebas normal porque no hay mucho que hacer allí. Tiene 6 conexiones a la placa principal:

Vcc (5V), GND, Xbee (TX), Xbee (RX), Sensor de agua1 (Datos), Sensor de agua2 (Datos)

Paso 5: Control del flujo de agua y mecanismo de recarga

Control de flujo de agua y mecanismo de recarga
Control de flujo de agua y mecanismo de recarga
Control de flujo de agua y mecanismo de recarga
Control de flujo de agua y mecanismo de recarga
Control de flujo de agua y mecanismo de recarga
Control de flujo de agua y mecanismo de recarga

He diseñado esta máquina teniendo en cuenta la seguridad, por lo que es imposible que los atacantes o las fallas de funcionamiento provoquen daños graves por agua en la casa, ya que la máquina estaría conectada tanto al grifo como a Internet las 24 horas del día, los 7 días de la semana. Esto es lo que hace el siguiente circuito de protección 555 en la parte superior del solenoide.

También tenga en cuenta que el solenoide funciona con una fuente de alimentación de 12 V, lo que todavía logré meter en la parte inferior de la máquina de café junto a la bomba y la placa de relés. Para no desperdiciar energía, la placa de relés de 4 canales cambia la línea principal de 230 V directamente al adaptador que luego encenderá el solenoide. Por supuesto, hay un retraso de apagado de un par de microsegundos, lo que debe calcular para el colapso del campo magnético tanto en el solenoide + en el adaptador al tirar del enchufe.

Estoy usando un conector estándar de 3,5 mm para conectar el bloque de agua externo con un cable largo de 3 m y un tubo de PVC de pequeño diámetro que sale del bloque y va a la cafetera.

La parte superior del tanque de agua se perfora para acomodar esta tubería que luego se lleva al fondo del tanque. Me gustaría señalar que es muy importante alimentar la tubería hasta el fondo en el lateral sin pasar por el medio e interferir con los sensores ultrasónicos.

Después de que el solenoide se enciende, el circuito lo apagará automáticamente después de ~ 4 segundos (que debería ser un tiempo más que suficiente para llenar el tanque por completo) y permanece en este estado hasta el próximo ciclo de encendido. Este circuito es la última línea de defensa contra el mal funcionamiento y funciona completamente independiente de la cafetera. Si el relé de la máquina falla y permanece cerrado, el agua podría inundar la casa, con esta protección nunca puede suceder.

Si esto aún no es lo suficientemente bueno para usted o es imposible cerrar el agua o no quiere jugar con bloques de agua, consulte mi proyecto WasserStation, que fue construido exactamente para esto para extender el pequeño tanque de agua de la máquina de café.

Paso 6: Detección de inundaciones

Detección de inundaciones
Detección de inundaciones
Detección de inundaciones
Detección de inundaciones
Detección de inundaciones
Detección de inundaciones

Hay 2 sensores de agua adicionales para protección:

  • Sensor1: en la parte posterior del tanque para la detección de desbordamiento del tanque
  • Sensor2: en la parte inferior de la máquina de café para la detección de desbordamiento de la taza

Ambos sensores activarán una interrupción que corta el agua inmediatamente, enciende la luz de error y aborta la ejecución del programa para evitar un ataque como hacer un millón de cafés e inundar la casa de esa manera. Después de que el programa se cierre, la máquina ya no responderá a nada y debe apagarse manualmente.

En caso de que se pregunte qué pasaría si el sensor ultrasónico se inundara (sucedió una vez:))

Estuvo devolviendo el nivel del agua de esta manera durante un par de días, pero incluso después de que se secó, nunca volvió a ser exacto y tuve que reemplazarlo. La máquina fue diseñada para funcionar con agua fría del grifo, por lo que el vapor no podría dañar el sensor. Este sensor solo es preciso hasta que el nivel del agua está a 2-3 cms.

La forma elíptica del tanque dificultaba los cálculos del nivel de agua, por lo que se midieron y codificaron en el programa para que correspondieran a porcentajes.

Paso 7: prueba y ensamblaje final

Pruebas y montaje final
Pruebas y montaje final
Pruebas y montaje final
Pruebas y montaje final
Ensayo y montaje final
Ensayo y montaje final

La máquina en su estado final, ocultando casi por completo los rastros de cualquier pirateo y si los 3 indicadores LED de estado y el puerto de depuración USB no estuvieran allí, no se podría decir que hay algo más en el interior mientras que incluso podría albergar un Wifi conectado. Servidor Quake:)

Cuando modifico dispositivos, siempre mantengo el uso manual como una prioridad. Después del pirateo, cualquiera puede usar la máquina tal como estaba, excepto que el tanque de agua no se puede quitar fácilmente. A menos que termine la parte completa de automatización del agua del diseño, la máquina solo se puede llenar en este punto con una combinación de tubería pequeña + embudo.

Paso 8: Código de control de café

Código de control de café
Código de control de café

Encuentre el código fuente completo de Arduino adjunto a continuación.

Breve explicación del código:

El bucle principal llama a la función xcomm (), responsable del procesamiento del comando, hacer el café, encender / apagar la máquina.

El código de abajo solo se alcanza en caso de control manual. Aumenta un contador de estadísticas para realizar un seguimiento de cuántos cafés se prepararon y llena el tanque de agua automáticamente.

Los comandos se pueden enviar a través del Xbee o del puerto USB (Debug debe estar habilitado al principio). Cuando la comunicación proviene de cualquiera de los dos, el LED naranja parpadea durante un segundo para mostrar la actividad de la red. Se implementan los siguientes comandos:

1, CMSTAT: consulta de estadísticas de la máquina

La máquina almacena estadísticas sobre cuántos cafés calientes / fríos / manuales se prepararon y también obtiene el tiempo de actividad del RTC, que no se desborda después de 3 días, por lo que podría aumentar hasta años: P

2, CMWSTART: comienza a preparar café y bebidas calientes con agua caliente

3, CMCSTART: comienza a preparar té helado y bebidas frías con agua fría

Los procesos en caliente y en frío comienzan con la llamada a la función standby () que realiza más comprobaciones y luego activa un botón de encendido. Después de esto, el programa espera la luz verde (cuando la caldera se calienta) y luego emula la pulsación del botón de frío / calor. Después de esto, espera 50 segundos (que es más que suficiente incluso para la taza de café más grande) y luego apaga la energía. Esto ni siquiera sería necesario ya que esta excelente máquina se apagaría automáticamente 5 minutos después de hacer el café, pero ¿por qué desperdiciar energía? Por cierto, el consumo de energía en espera de la máquina incluso después de la modificación es inferior a 2 vatios.

Recarga de agua y seguridad

Esta máquina fue diseñada teniendo en cuenta la seguridad, por lo que sería imposible que un atacante que gana el control inunde toda la casa con agua. Una falla de hardware tampoco daría lugar a daños graves. Junto a los sensores de hardware, hay protecciones integradas en el código para la recarga. Un contador que activa la rutina ISR si la máquina no se recarga en x segundos (esto, por ejemplo, podría suceder si el sensor ultrasónico funcionara mal y diera un 20% después de x segundos una vez que se inicia la recarga).

No hay autenticación, cualquiera puede usar la máquina dentro del rango de radio que conozca los comandos, así que cambié la ID predeterminada de Xbee piconet a otra, también se puede comentar ERR_INVALIDCMD y la máquina ignorará cualquier comando desconocido.

Insectos

Error de doble café: lo más molesto de este error es que comenzó a ocurrir un par de meses después de usar la máquina con el mismo código. Después de que se emitió el comando de café, hizo el café, se apagó y se volvió a encender y continuó haciendo 1 café más con el mismo patrón.

Tuve que comenzar a depurar la duplicación de comandos desde el nivel de Android porque implementé el reenvío al código en caso de pérdida de paquetes. Resultó que ni el Android, el software de control C ni el kernel de Linux en el raspi2 fueron los responsables de esto, sino el Xbee.

Después de emitir echo "CMCSTART"> / dev / ttyACM0 en el nodo de control, sale dos veces al otro extremo. Concluí que mi espectro de 2.4Ghz en mi hogar comenzó a saturarse de los muchos dispositivos de radio en este rango, lo que provocó que un Xbee invocara algún tipo de reenvío en la capa de radio y los datos se enviaran dos veces (no siempre). Una vez que el primer comando entró en la máquina, la función xcomm () comenzó a procesarlo, sin embargo, un segundo entró justo después del cual estaba esperando en el búfer de Xbees y cuando el ciclo terminó, comenzó a procesar el segundo comando. Para solucionar este problema, he introducido 3 umbrales en el código para que sea imposible hacer más de 1 café en 2 minutos. También hay un límite en el CMSTAT, pero para no interferir con el código de control C / Android, simplemente silenciará las respuestas durante 2 segundos.

El último umbral se estableció para el contador de café manual, porque una vez que la máquina ha alcanzado el estado listo (caldera calentada, luz verde), ha registrado el evento verde cientos de veces aumentando el conteo de café.

Paso 9: Consideraciones de diseño y pensamientos finales

Después de muchos problemas con la comunicación de Xbee, no recomendaría Xbee para este proyecto. Utilice la radio estándar barata de 433Mhz con VirtualWire y Bps reducidos para mayor estabilidad o incruste una Raspberry PI Zero con conexión Wifi directamente en la máquina de café.

Como muestra la fecha, es un proyecto antiguo, así que me disculpo por los pequeños detalles que faltan, como la conexión del circuito de control a las patas de los pines precisos en la placa base. Este proyecto requiere un cierto nivel de conocimientos técnicos para realizarlo por tu cuenta. Si encuentra algún error / problema o le gustaría contribuir a este tutorial, hágamelo saber.

El software de control, los métodos de control por voz es otra parte que permitirá tener listo su café con solo un comando de voz antes incluso de levantarse de la cama.

Ahora he completado la documentación de mi sistema de almacenamiento de agua (WasserStation) y he actualizado CoffeeControlCode a la última versión, que también incluye la recarga automática. Si usa la misma máquina para la construcción, la recarga funcionará sin problemas (sin ninguna modificación en el código) ya que los niveles de agua se calibraron en el tanque de agua del Circolo.

Recomendado: