Project Showcase '14

25

El logotipo es un derivado del logotipo de la comunidad Arduino con licencia de Creative Commons CC-SA-BY-NC 3.0

Actualización: Ganadores anunciados

Los ganadores del concurso han sido anunciados. Por favor, consulte la publicación Meta para más detalles .

Para celebrar los 10 años de Arduino , estamos orgullosos de anunciar el primer evento en Arduino Stack Exchange.

Saque sus placas y equipos de soldadura, extraiga los circuitos integrados y las resistencias. El primer concurso Arduino Stack Exchange está a la vuelta de la esquina. Buscaremos proyectos interesantes que se construyan con Arduinos. El concurso tiene como objetivo compartir, debatir y proporcionar comentarios sobre los proyectos en los que usted y otros miembros están trabajando. Ver publicación del anuncio

Detalles:

  • El premio es una camiseta oficial de Stack Exchange.
  • Límite de dos entradas por persona. Si se proporcionan más de dos, solo se considerarán los dos primeros.
  • Se permiten clones .
  • Los proyectos para consideración serán aceptados hasta el 29 de marzo de 2014 a las 4:00 UTC. La pregunta seguirá abierta en caso de que alguien quiera mostrar su proyecto que hicieron el día de Arduino 2014.

Visite la publicación Meta para discutir sobre este evento y obtener más información.

Formato de respuesta

Puede publicar hasta dos proyectos (como dos respuestas separadas) como entradas para el concurso. Todas las entradas adicionales serán eliminadas. Considere seguir la siguiente plantilla para las entradas:

Título del Proyecto

Descripción muy breve

Descripción

Cual es tu proyecto ¿Qué hace? ¿Qué problema soluciona?

Diseño

Cosas para incluir en esta sección:

  • Esquemas y otra documentación de diseño. Fritzing es una buena herramienta para dibujar esquemas de tablero como el que se muestra en el logotipo del proyecto anterior.
  • Componentes utilizados para construir el proyecto.
  • Fotos o video

Conclusión

Pensamientos finales. ¿Qué aprendiste al hacer este proyecto? ¿Qué haría diferente si tuviera que empezar de nuevo?

Puede copiar / pegar el siguiente texto si desea usar esta plantilla.

# Project Title
**Very Brief Description**

# Description
What is your project? What does it do? What problem does it solve?

# Design
Things to include in this section:

- Schematics and other design documentation. [Fritzing][8] is a good tool for drawing breadboard schematics like the one shown in the project logo above.
- Components used to build the project
- Pictures or video

# Conclusion
Final thoughts. What did you learn from doing this project? What would you do differently if you had to start over?

Premios

¡Hay dos premios! ¡El ganador será la presentación que obtenga el número máximo de votos a favor (los votos a favor no cuentan) y recibirá una camiseta de Stack Exchange *! También habrá algo para el subcampeón. El segundo puesto se decidirá a discreción de los organizadores del evento.

* Ciertas restricciones pueden aplicar. El envío internacional puede demorar algunas semanas.

¿Dónde envío mis proyectos?

Publique sus proyectos como respuestas a esta publicación.

Sachleen
fuente
¿Cuál es exactamente la calificación para ser un proyecto "arduino"? Uso optiboot en muchos lugares, pero no puedo ver eso como "arduino", ya que es solo un proyecto que utiliza la cadena de herramientas arduino. A menos que use una placa en el factor de forma arduino, no puedo ver una forma clara de delinear entre "arduino" y "no arduino", a menos que exija explícitamente que el proyecto se compile utilizando el editor de texto arduino, y eso probablemente descalificará a todos los proyectos decentes ya que el editor arduino es horrible, y todos los buenos programadores dejaron de usarlo hace mucho tiempo.
Connor Wolf
@FakeName llevemos esta discusión al Meta Post
sachleen

Respuestas:

14

Caja de búsqueda con estado

Una caja con GPS que te hace visitar algunos lugares antes de abrir

Descripción

Es similar a questbox , pero almacena una pequeña cantidad de información en EEPROM , por lo que debe visitar dos o tres lugares diferentes antes de que se abra.

Diseño

Hardware necesario:

  • Arduino Uno
  • Reverse Geocache Version 2 (o un protoshield)
  • Módulo GPS GlobalSat EM-406A
  • LCD azul 2 × 8 con conector y cable
  • Servomotor Hitec HS-55
  • 4-40 varilla de empuje y horquilla para el pestillo (algunas versiones proporcionan una varilla de flexión en Z)
  • 2 porta pilas AA
  • Pulsador metálico con LED azul incorporado y cable de 4 pines
  • Interruptor de baja tensión Pololu
  • Regulador de refuerzo Pololu de 5 V
  • Conector JST para módulo GPS EM-406A
  • Pines de encabezado rectos y en ángulo recto para la pantalla, el servo y los conectores de botón
  • Dos resistencias para limitación de corriente y ajuste de contraste de pantalla
  • Dos condensadores pequeños para suavizar la potencia.
  • condensador más grande para circuito de contraste de pantalla

Costo total de hardware: 137 $ + envío

Materiales adicionales:

  • Una bonita caja
  • Pegamento epoxi, madera para cubrir piezas, herramientas

Puede encontrar instrucciones de montaje en la página del reloj de sol (puede comprarles la mayoría de los materiales)

Cargaré código con estado y publicaré un enlace aquí, desafortunadamente no tendré todo el hardware necesario a tiempo, así que esto es solo una idea :)

Código escrito hasta ahora :

Inspiración:Caja de misiones original

Conclusión

Aprendí a integrar muchos componentes y bibliotecas todos juntos, tendré que viajar un poco para probarlo :)

El presupuesto se puede reducir bastante cambiando un poco el concepto:

Hithwen
fuente
11

Ahorro de energía para el usuario de PC distraído

Este dispositivo enciende / apaga las luces de mi escritorio cuando está oscuro (ish) y sincronizado con el protector de pantalla de mi PC.

Descripción

El proyecto es poco más que una combinación de un sensor sensible a la luz, un relé y un código inteligente que monitorea el protector de pantalla en mi PC. Cuando anochece y cuando el protector de pantalla no está activo, enciende las luces sobre mi escritorio. Cuando posteriormente salga de mi escritorio, se activará el protector de pantalla, que a su vez activará la luz del escritorio para apagarse. Cuando hay suficiente luz durante el día, las luces no se encienden en absoluto. El problema resuelto es reducir el desperdicio de energía debido a que la iluminación de mi oficina se enciende cuando salgo de la habitación.

Diseño

Debido a la potencia de los microcontroladores / Arduino, solo se requiere un poco de hardware adicional para crear un proyecto útil. Lo mismo ocurre con este proyecto donde el hardware es poco más que:

  • Un arduino
  • Un par de protectores de tornillo para conectar los componentes externos.
  • Un LDR en serie con una resistencia para medir la luz ambiental.
  • Una tarjeta de relé para encender y apagar las luces de red
  • Un condensador de 10 μF de GND a RST para evitar que la placa se reinicie y se programe accidentalmente.

esquemático

simular este circuito : esquema creado con CircuitLab

Conclusión

Aprendí cómo conectar la PC a través del enlace serie USB con Arduino y cómo leer el estado actual del protector de pantalla en mi PC. Si volviera a empezar, usaría un controlador mucho más pequeño, ya que realmente solo necesito una única salida digital y una sola entrada analógica. Probablemente base el proyecto en V-USB . Sin embargo, Arduino es excelente para la prueba de concepto (PoC) rápida y fácil. (El PoC ha estado en mi escritorio durante al menos dos años).

jippie
fuente
Sería genial ver fotos de tu tablero final y configuración. ¿Cómo es el tiempo de respuesta? ¿Instante? Después de un minuto?
sachleen
@sachleen El demonio en mi PC que sondea el protector de pantalla se ejecuta cada 30 segundos cuando el protector de pantalla está apagado (cuando estoy trabajando en mi PC) y cada 5 segundos cuando está encendido. Puedo aumentar esa velocidad, pero eso influye en la carga de la CPU y con ese uso de energía ... También hay un condensador conectado para evitar que el Arduino se reinicie y se programe accidentalmente.
jippie
@sachleen a medida que el anochecer cae lentamente con el tiempo, estos 30 segundos no son realmente un problema. Nadie nota la diferencia en la oscuridad durante 30 segundos. Dentro de los 5 segundos de mover mi mouse o golpear mi teclado cuando vuelvo, las luces se encienden. Hay una ligera histéresis entre lo que se considera oscuro y claro, para evitar que las luces se enciendan / apaguen cada pocos segundos cuando está cada vez más oscuro oscureciendo lo suficiente como para activarse.
jippie
Debe modificarlo para atenuarlo al 50% durante 10-15 segundos para que no esté en la oscuridad por completo y le dé una pequeña "advertencia"
Anonymous Penguin
@AnnonomusPerson Estoy cambiando el lado de 240 VCA de un SMPS que tiene una entrada especificada de 100-250 VCA. No va a suceder, me temo, ya que no quiero cambiar el lado secundario. Buena idea, sin embargo, tal vez pueda agregar un pequeño LED blanco inteligente de alguna manera.
jippie
8

Creo que este tipo apenas se ajusta a las reglas, pero es lo suficientemente interesante como para pensar que lo publicaría de todos modos.

Generador de marca de tiempo sincronizado por GPS de alta precisión para fines de adquisición de datos.

Este es un proyecto bastante interesante destinado a proporcionar una manera fácil de sincronizar múltiples sistemas independientes de adquisición de datos.

Básicamente, trabajo en un laboratorio de investigación, y a menudo tenemos instrumentos que tienen múltiples sistemas independientes de adquisición de datos, que pueden estar físicamente separados hasta 50 pies. Necesitamos poder correlacionar el tiempo en el que se tomaron muestras de cada sistema, lo que puede ser difícil si desea resolver los tiempos de muestreo con un alto grado de precisión. Usando algo como un sistema de adquisición de datos USB, solo la latencia USB puede introducir varios cientos de milisegundos de latencia desconocida, que puede variar de una adquisición a otra.

La solución anterior era un contador paralelo de 24 bits que simplemente se transportaba por todas partes, que requería un arnés de cableado enorme y que era un poco molesto.

Este sistema utiliza un módulo GPS de temporización especializado que puede sintetizar relojes de frecuencia arbitrarios, que están bloqueados en fase y frecuencia a los relojes atómicos en los satélites GPS.

El MCU es responsable de vincular los mensajes de datos GPS (tuve que extender y optimizar en gran medida un analizador de protocolo existente para los datos GPS). El GPS está configurado para usar un protocolo binario patentado, y todo lo analiza el analizador que escribí.

El proyecto ha pasado por varias revisiones (en la foto a continuación).

Diseño

Revisiones! ingrese la descripción de la imagen aquí
Rev 1: Nunca funcionó, debido al hecho de que inicialmente esperaba usar un software dPLL de un GPS mucho menos costoso, para sintetizar un reloj de mayor frecuencia desde solo la salida de 1 PPS. Probablemente sea posible hacerlo funcionar, pero la inversión de tiempo simplemente hizo que no valiera la pena. (y soy un codificador demasiado malo)

Usó una hélice de paralaje MCU. La falta de idiomas compilados decentes también fue un problema importante.


ingrese la descripción de la imagen aquí
Rev 2: cambiado a un ATmega2560. Trabajó, tenía muchos aspectos de diseño originales heredados de la primera revisión. Principalmente, el uso continuo de registros de desplazamiento para la salida de 32 bits, a pesar del número más que suficiente de IO en el ATmega2560.

La primera placa que ejecutó Optiboot, y en realidad se programó completamente usando la cadena de herramientas estándar Arduino, antes de que me irritara y comenzara a modificar la cadena de herramientas para que se adaptara mejor a mis propósitos.


ingrese la descripción de la imagen aquí
Rev 3: También funcionó. El cableado estructurado se debe a que esta placa incorpora un concentrador USB incorporado para reducir la cantidad de puertos USB requeridos (la interfaz FTDI requiere 1 USB y el GPS también tiene una interfaz USB). Desafortunadamente, el GPS no se enumeraría correctamente, aunque el dispositivo FTDI funcionó bien, y he usado este concentrador en otro lugar sin problemas. Extraño.

No tengo un depurador USB adecuado, así que simplemente dejé caer el concentrador USB por completo, en lugar de tratar de solucionar el problema. De todos modos, el usb GPS no se usa mucho fuera de la configuración.


ingrese la descripción de la imagen aquí
Rev 4: versión semifinal ATmega2560. Se agregó una pantalla LCD para el estado del GPS, manipulada con LED, etc. Además, mejores huellas para los posibles supercondensadores para mantener el estado del GPS cuando no está encendido.

Esta es la última versión de Optiboot.

MStimees el MSTOW, o milisegundo de tiempo de la semana, que es el nombre del valor de datos GPS que se emite en la marca de tiempo. Es una variable de 32 bits que se incrementa una vez por milisegundo y se reinicia cada semana. Es una parte más oscura del estándar GPS.

ITOWes otro valor relacionado con GPS, siendo un valor que corresponde a la señal 1PPS. La correlación entre los dos no se refleja adecuadamente en la pantalla LCD, ya que no tengo el tiempo de CPU para actualizar la pantalla LCD a la velocidad que me gustaría. Esta fue en realidad una de las principales cosas que mejoró en la actualización de los dispositivos Xmega.


ingrese la descripción de la imagen aquí
Rev 5: cambio de arquitectura completa. Ahora usa un procesador ATxmega128A1U. Ya no soy realmente "Arduino", pero la capacidad de tener múltiples niveles de interrupción en la serie de procesadores xmega me permitió mejorar considerablemente la estructura del código.

Los dos cables del cuerpo son de mí haciendo algo de experimentación, el tablero funcionó bien sin ellos también.

Viendo hacia adelante:

Rev 6! ingrese la descripción de la imagen aquí
Agregue la capacidad de usar diferentes tamaños de LCD, más protección ESD en la conexión de antena GPS (eso fue un problema), la capacidad de usar una batería CR2032 para mantener el reloj GPS en lugar de los supercondensadores.

Además, un etiquetado mucho mejor de los LED de depuración y estado.

ingrese la descripción de la imagen aquí
Y bonificación Nyan-Cat!

ingrese la descripción de la imagen aquí

(Estas placas están en proceso de fabricación en este momento. Cuando las obtenga, agregaré fotos de la placa real).


Hice algunas pruebas de larga duración entre dos de las placas ATmega2560, y durante 72 horas, el error de tiempo RMS entre las dos unidades fue de ~ 20 us. Esto fue con dos antenas completamente independientes también. Mi objetivo de diseño era <1 ms, así que estoy muy feliz con eso.

En general, creo que esto hace un buen trabajo ilustrando cómo Arduino puede ser una herramienta útil para la creación temprana de prototipos de productos / sistemas "reales". Lo uso para obtener una versión de prueba inicial que se ejecuta con un esfuerzo mínimo, y cuando estoy seguro de que la idea funcionará, realizo el trabajo para migrar a una implementación completamente personalizada y específica.


Archivos de diseño:
https://fake-server.no-ip.org/svn/FPGAStuff/DAQ%20systems/
(en la serie de directorios "GPS Timestamp").
(Nota: Los archivos son de Altium Designer El son. No archivos de águila).

Código fuente:
https://fake-server.no-ip.org/svn/Programming/Code/AVR/
Nuevamente, en la serie de directorios "gpsTimeStamp".

Perdón por las malas fotos del celular.

Connor Wolf
fuente
¿Podría por favor reducir el número de imágenes? 3-4 debería ser suficiente para transmitir la idea. Lleva bastante tiempo cargar en conexiones lentas.
asheeshr
77
@AsheeshR - Estoy totalmente en desacuerdo. Podría dejar caer una de las imágenes de la última revisión, pero tener la progresión del diseño del sistema creo que es bastante valioso.
Connor Wolf
1
¿Divirtiéndote con la serigrafía?
TheDoctor
Oooh, vista en 3D de PCB. Aww, es Altium y bastante caro? : $ Bastante divertido ver estos proyectos, o ver cualquier proyecto que otros estén haciendo ...
Paul
7

Sonic Ray Gun

Dos proyectos de niños

Estoy trabajando con un par de niños educados en el hogar y nos estamos divirtiendo mucho con un arduino. Su primer proyecto fue una bomba falsa, como se ve en las películas, con un temporizador de cuenta regresiva LCD y un clásico "¿Cortas el cable rojo o azul?" problema de tipo

El proyecto dos comenzó mostrándoles el ejemplo de toneMelody y un pequeño orador. Rápidamente descubrió que si gira la frecuencia hasta 15 kHz, sería bastante molesto para los adolescentes. Una hora después, habían mejorado el diseño con una taza, papel higiénico y un interruptor hecho de un clip que hacía una pistola direccional de rayos sónicos.

Lamentablemente no hay fotos.

Conclusión

No deje a los niños desatendidos con un arduino.

Salix alba
fuente
3
¿Puedes describirlo un poco más (código, Fritzing, etc.)?
Anonymous Penguin
7

(falso) Linux en Arduino

Recientemente adquirí una pequeña pantalla LCD compuesta, con la que comencé a jugar rápidamente usando la biblioteca Arduino TVout. ¿Qué vino después? Linux!

Descripción

Mientras jugaba con la pantalla de mi televisor y la biblioteca de TVout, descubrí que hay un controlador de terminal prefabricado para el televisor. Pronto comencé a experimentar con su uso como terminal de TV conectado a un teclado PS / 2. Hubo algunos problemas con la biblioteca PS / 2 que utilicé, así que hice la transición para usar la biblioteca USB en mi Mega ADK junto con un teclado USB. Eso funcionó mucho mejor. Ahora para almacenamiento.

El escudo de mi tarjeta SD no es compatible con mi Mega, por lo que lo conecté de forma algo casual al SPI al final del tablero. Escribí el manejo de comandos para realizar algunas tareas como listar archivos y encontrar el tamaño del disco, espacio libre, etc. El ensamblaje completo no está terminado de ninguna manera, pero estoy contento con el progreso que he logrado.

El código será reubicado a Github eventualmente, mira los comentarios.

Diseño

foto alejada

pantalla de cierre

Desafíos

Tuve muchos problemas para concatenar los caracteres introducidos en la cadena que almacenaba el comando actual porque no estaba lanzando correctamente. Una vez que lo entendí, también necesitaba solucionar el problema en el que algunas teclas imprimían basura aleatoria en la pantalla. Esto fue causado por la lectura de la memoria antes de las definiciones de las letras, por lo que unos pocos lo ifaclararon.

Conclusión

Estoy muy satisfecho con el código. Una vez que le agregue algunas utilidades más, lo pondré en Github, así que mira los comentarios. En general, fue un proyecto muy divertido. Aprendí a usar Stino en el proceso.

TheDoctor
fuente
Esto suena interesante ¡Realmente me gustaría ver tu código pronto!
asheeshr
¡¡Código!! ¡¡Código!! github.com/red-green/fakeLinuxonArduino
TheDoctor
¿La pantalla LCD costó mucho?
Anonymous Penguin
@AnnonomusPerson solo $ 17: amazon.com/3-5-Inch-TFT-Monitor-Automobile/dp/B0045IIZKU/…
TheDoctor
@AnnonomusPerson lo desarmé porque era demasiado voluminoso
TheDoctor
5

ShiftLCD

Placa basada en AVR, compatible con Arduino, que se monta en la parte posterior de una pantalla LCD de 8x1 hasta 20x4 caracteres.

Descripción

Acabo de diseñar esta placa y la biblioteca personalizada para que sea más fácil de usar y LCD. Aunque son bastante fáciles de usar en este momento. Reduce el número de pines de salida utilizados de 6 a 3. También tiene la opción de expandir la E / S agregando más registros de desplazamiento al que controla la pantalla. El procesador utilizado es un ATTiny45 o ATTiny85 que tiene, después de usar el registro de desplazamiento, los pines digitales 1 (PWM) y 4 disponibles y el pin analógico 2 (mismo pin que el pin digital 4) disponible.

Diseño

Esquemático OSH Park render Junta sin soldar

Desafíos

Un desafío imprevisto que enfrenté fue cuando comencé a usar pines digitales 0-2 para ejecutar el registro de desplazamiento, estos también resultaron ser los pines de programación (MISO, MOSI, SCK). Por lo tanto, cada vez que reprogramaba el dispositivo, la pantalla LCD recibía un montón de mensajes entrecortados en los que había que apagar la alimentación para restablecer la pantalla. Resolví este problema moviendo el pin de cierre de los registros de desplazamiento al pin digital 3, que no es un pin de programación. Resolver esto también resolvió otro problema para mí porque cuando moví el pasador de cierre, abrió el pin digital 1 que tenía uso de PWM, lo que permitió hacer más cosas con la placa.

Conclusión

De acuerdo, este puede no ser el mejor producto o idea, aún tiene sus usos. La respuesta a la pregunta directamente, "¿Qué aprendiste al hacer este proyecto?" Aprendí a diseñar desde el principio hasta el final de una placa PCB. Si pudiera hacer algo diferente, habría sido usar piezas de montaje en superficie en lugar de orificio pasante, entonces nuevamente es solo un prototipo de placa única.

Jesse Laning
fuente
¿Cómo programó su ATtiny? ¿Qué código estuvo involucrado? IDE? (Solo comente, no edite su publicación. )
Anonymous Penguin
@AnnonomusPerson Parece que la persona que publicó lo que hice antes eliminó su comentario, así que aquí es donde obtuve las cosas necesarias (archivos Arduino IDE y esquema de programación) para programar el ATTiny. highlowtech.org/?p=1695
Jesse Laning el
¿Por qué usar montaje en superficie? Soldar un agujero pasante en casa es mucho más fácil? Creo que SMD es solo para series de producción, ¿o hay algo más?
Paul
5

Robot de botones.

Un robot de disparo láser de control remoto de cuatro ruedas y ocho libras que presiona los botones.

Descripción

Hice este proyecto en el transcurso del año escolar pasado. Estaba en la clase de robótica y decidimos hacer una competencia. Cada equipo crearía un robot que tiene un botón grande y una forma de presionar otros botones. Al final del año, tendríamos el concurso final, donde los tres robots intentarían presionarse mutuamente.

A finales de año, mi robot solo funcionaba parcialmente. Cada parte del robot había estado funcionando en algún momento, pero entre un Arduino frito, conductores de motores fritos, una organización de código terrible y yo siendo la única persona en mi equipo que trabajó en el robot durante un total de más de cinco horas. No pude hacerlo funcionar por completo.

No he tocado mi robot en casi un año, así que sé que si quisiera que volviera a funcionar tendría que volver a cablear el bot y reescribir el código. Tal vez decida hacerlo algún día, pero por ahora voy a trabajar en proyectos menos ambiciosos.

Diseño

Diseño general

ingrese la descripción de la imagen aquí

Información / flujo de electricidad

+--------------------------+   +-------------------------------------------------+
|         Computer         |   |      Robot                                      |
|--------------------------|   |-------------------------------------------------|
|                          |   |                                                 |
| Keyboard +--> Processing |   |  Button +-------------+        Motor    Motor   |
|                          |   |                       |          ^       ^      |
|                    +     |   |                       |          |       |      |
|                    |     |   |  Batteries +-----+    |          +       +      |
|                    v     |   |                  |    |   +----> Motor Driver   |
|                          |   |                  v    v   +                     |
|               Bluetooth +-----> Bluetooth +--> Arduino Uno +--> Motor driver   |
|                          |   |                  +    +  +       +       +      |
+--------------------------+   |                  |    |  |       |       |      |
                               |                  |    |  |       v       v      |
                               |                  |    |  |    Motor     Motor   |
                               |                  |    |  |                      |
                               |                  |    |  |                      |
                               |                  |    |  +-----> Laser          |
                               |  +---------------|----|----+                    |
                               |  |       Arm     |    |    |                    |
                               |  |---------------|----|----|                    |
                               |  |     +---------+    v    |                    |
                               |  |     |      Motor Driver |                    |
                               |  |     v              +    |                    |
                               |  |  Servo             |    |                    |
                               |  |                    v    |                    |
                               |  |                  Motor  |                    |
                               |  +-------------------------+                    |
                               +-------------------------------------------------+

Componentes

Código

No organicé mi código muy bien, así que espero que este sea el código correcto.

Mas imagenes

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Terrible video de una versión temprana del robot lenta, sin brazos, sin botones, sin láser y sin bluetooth.

https://www.youtube.com/watch?v=Q7MvE7-Xb0E

Conclusión

Soy muy bueno para freír productos electrónicos.

Esta fue mi primera experiencia en un taller de máquinas real. Pude usar una fresadora CNC, una fresadora manual, un torno y una sierra de cinta. Si comenzara un proyecto como este nuevamente, haría una documentación mucho mejor, para poder descubrir qué diablos estaba haciendo un año después.

El chico con el sombrero
fuente
1
¡Buen trabajo! Nada es tan valioso como la experiencia y lo importante es que ahora sabes cómo hacer un mejor trabajo la próxima vez.
jippie
5

Pantalla LED de 4 dígitos para Arduino

Tablero pequeño con 4 dígitos LED de 7 segmentos, gestionado a través de 3 pines.

Descripción

Cuando comencé a trabajar con Arduino, quería una forma de mostrar los valores recopilados por varios sensores que experimenté, pero no quería enviar estos valores Seriala una PC.

Quería una placa pequeña que pudiera reutilizar fácilmente de un proyecto a otro y quería ahorrar una placa de prueba.

Esta placa, junto con su pequeña biblioteca, actualmente permite la visualización de números de 4 dígitos y no genera ninguna corriente de Arduino durante la visualización (la corriente se obtiene solo cuando se comunica a la placa el nuevo valor para mostrar a partir de ahora).

tablero de anuncios con mostrador

Diseño

El diseño es bastante simple, ya que decidí reutilizar un chip MAX-7219 para controlar mi pantalla LED (tenía algunos a mano).

Gracias a este chip, el esquema era mucho más simple, pero era importante entender correctamente cómo usarlo; Afortunadamente, su hoja de datos era bastante clara.

El diseño original se realizó en una placa de pruebas y se utilizaron 4 dígitos LED de 7 segmentos individuales ; pero requirió demasiado cableado para mi gusto (necesidad de conectar segmentos por grupos de 4). Además, durante mi primer experimento con dígitos LED de 7 segmentos, he frito uno: tenía 2 pines de tierra, pero conecté solo uno a GND en lugar de ambos :-(

Luego decidí optar por una pantalla de 4x7 segmentos, cátodo común , con ánodos de segmento ya conectados para 4 dígitos: ¡eso es solo 4 + 8 pines!

Esquema del tablero

Durante mis pruebas, encontré una biblioteca Arduino útil para trabajar con MAX-7219 que decidí reutilizar. He construido mi propia biblioteca sobre ella, con una API muy simple.

Después del proceso de prueba, llegó el momento de hacer que el diseño sea más permanente; Como tenía un montón de tablas de striptease a mano, decidí hacerlo.

Busqué y encontré un sencillo diseñador de Stripboard para PC que he usado para diseñar mi tablero.

El primer diseño del stripboard no estaba optimizado en términos de espacio y decidí no implementarlo:

DISEÑO DE TABLERO # 1

Luego, he revisado el diseño para optimizar el costo y el tamaño (solo un pequeño stripboard de 50x75 mm); eso fue fácil con el diseñador de tablas que encontré antes:

DISEÑO DE TABLERO # 2

Una vez que el tablero estuvo listo, decidí verificarlo con un Arduino UNO y un sensor ultrasónico:

IMAGEN

Parecía funcionar, excepto que a menudo tenía valores mostrados extraños e inconsistentes; Después de la investigación, descubrí que se debía al ruido provocado por el panel de visualización , ruido que interfería con el sensor. Solo necesitaba agregar una tapa de desacoplamiento lo más cerca posible de los pines de suministro de corriente del sensor y funcionó perfectamente (tenga en cuenta que la placa de visualización ya tenía tapas de desacoplamiento para el chip MAX-7219).

Lista de partes:

  • 1 x LN5461AS: bloque de 7 segmentos de cátodo común de 4 dígitos
  • 1 x MAX7219: chip de controlador LED multiplexado
  • 1 x soporte IC (24 pines)
  • 1 x resistencia de 22K
  • 1 x 10uF tapa electrolítica
  • 1 x tapa de 100nF
  • 1 x conector macho pin (5 pines)
  • 1 x listón de 90x50mm
  • alambres, soldadura ...

Conclusión

30 años después de mis últimos experimentos electrónicos, pude volver a contraer el virus con Arduino y con este primer proyecto que, aunque bastante simple, me enseñó varias cosas:

  • interpretar hojas de datos para los componentes utilizados (MAX7219 y pantalla LED)
  • aprende a usar y ser eficaz con el diseño de tablas
  • todos los pines marcados como GND o V + deben estar conectados: ¡no eliges el que deseas conectar!
  • si hay algo que parece extraño cuando prueba su circuito y no entiende por qué: no busque, debe ser ruido, intente agregar una tapa de desacoplamiento y ¡eso debería hacerlo!
  • aprende a crear una biblioteca Arduino (no solo un boceto)

Si tuviera que comenzar este proyecto nuevamente hoy, haría lo siguiente:

  • tratar de optimizar aún más el diseño del stripboard (probablemente podría reducir el tamaño un poco más)
  • reemplace los encabezados de clavija recta en el tablero con encabezados en ángulo recto para que los cables que se conectan a Arduino sobresalgan más enfrente del tablero
jfpoilpret
fuente
5

Reloj de pared digital con control remoto por radiofrecuencia (RF)

Un gran reloj de pared con pantalla de 7 segmentos (40x30cm / 16x12 ") con control remoto R / F.

ingrese la descripción de la imagen aquí

Descripción

Este proyecto presenta un reloj de pared digital de pantalla grande (40x30cm / 16x12 ") de 7 segmentos con control remoto R / F. Tiene las siguientes características:

  • Muestra la hora y fecha actuales (horas, minutos, segundos, día, mes, año) en dos formatos (horas o fecha en los dígitos grandes).
  • Muestra la temperatura actual en ° C.
  • Tiene una cuenta regresiva definida por el usuario que hará sonar una alarma (molesta) cuando llegue a cero.
  • Todas las funciones controladas remotamente por un control remoto RF.
  • Tiene un pequeño teclado de cursor para controlar sus funciones (cuando el control remoto no está disponible).
  • Control de brillo independiente para cada línea de visualización.
  • Continúa manteniendo la hora actual con precisión incluso cuando está apagada, gracias a un IC de reloj en tiempo real alimentado por una batería de botón.

Diseño

Los aspectos clave de este proyecto fueron los siguientes:

  • Está completamente basado en el microcontrolador Arduino y AVR ATmega328.
  • Mantiene la hora actual incluso cuando está apagado, gracias al DR1307 RTC alimentado por una batería de botón.
  • Los dígitos nunca se multiplexan. En cambio, cada dígito tiene un IC de registro de desplazamiento en serie de 8 bits dedicado (74HC595) que mantiene los segmentos seleccionados independientemente de lo que se muestra en los otros dígitos y lo que está haciendo la MCU.
  • Los segmentos son alimentados por matrices Darlington debido al consumo de corriente que excede el de la MCU o los registros de desplazamiento.
  • El reloj está controlado por un teclado en la placa del controlador y también por un control remoto de RF. La comunicación por radio se realiza mediante un par de receptores y transmisores de radio de 434MHz de bajo costo.
  • El proyecto tiene un diseño modular en el que un solo controlador puede gestionar hasta 12 dígitos individuales. El controlador también acepta módulos expandibles para un número ilimitado de dígitos (el número máximo de dígitos está limitado por el retraso de temporización debido a la conexión en cadena de los registros de desplazamiento y la atenuación de su señal de reloj).
  • El diseño admite varios dígitos de visualización de 7 segmentos ya preparados o dígitos personalizados hechos con LED.

A continuación se muestran los esquemas para el controlador y una de las placas de 7 segmentos:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Aquí hay algunas fotos de los tableros que diseñé, grabé y ensamblé, y el control remoto:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Y finalmente, aquí hay una foto de otra versión del reloj. En este, estoy haciendo las pantallas de 7 segmentos usando LED rectangulares y componentes discretos.

ingrese la descripción de la imagen aquí

Conclusión

Este proyecto me llevó mucho tiempo, esfuerzo y aprendizaje para llegar a esta etapa (nunca lo terminé, como he aprendido), pero fue muy divertido. Algunas cosas que he aprendido:

  1. Estudie todas las bibliotecas que va a utilizar en su proyecto antes de asignar pines GPIO en su controlador para evitar posibles conflictos. No tuve la suerte de usar el mismo pin PWM para el control de brillo que está asociado con el temporizador VirtualWire, así que tuve que parchear la placa para que el brillo y la RF funcionaran al mismo tiempo.

  2. ¡El engarzado KK molex y los conectores modulares toman MUCHO TIEMPO!

  3. Las piezas acrílicas cortadas con láser son el futuro. Añaden mucha calidad al dispositivo incluso si eres torpe.

Ricardo
fuente
¿Cómo hiciste los PCB (grabado y perforación)?
Sachleen
1
@sachleen Utilizo el método de transferencia de tóner con planchado. Imprimo el diseño del tablero en papel fotográfico de inyección de tinta en una impresora láser, luego lo plancho en el tablero, luego grabo el tablero en FeCl. Toma un tiempo encontrar la configuración correcta de papel e impresora. Utilizo una taladradora Dremel para taladrar, pero solo uso tablas fenólicas y brocas de alta velocidad. Las tablas de fibra de vidrio son mucho más duras en las brocas, por lo general requieren las brocas de carburo más caras y frágiles.
Ricardo
¿De dónde sacaste esos LED? ¡Tengo algunos que se ven exactamente así!
The Guy with The Hat
1
@TheGuywithTheHat ¿Los verdes rectangulares? Esos son bastante comunes por aquí en Brasil. Los compré en una de nuestras tiendas de componentes electrónicos en línea. Aquí hay algunos enlaces: en DigiKey , en eBay . Aquí es donde los conseguí .
Ricardo
5

Rotador de antena de TV

Rotación de antena con control remoto IR

¿No puede levantarse del sofá para ajustar la dirección de la antena de TV? E incluso si lo hace, a veces su proximidad a la antena cambia la recepción. Sería bueno poder ajustar la antena desde el sofá. Usando el control remoto del televisor.

Componentes

Arduino Uno, receptor IR, motor paso a paso con placa de conductor, cojinete de identificación de 1 ", mango de trapeador Swiffer, caja de plástico,

detrás de la tele Arduino con receptor IR por adelantado Cierre de caja y rodamiento Manija Swiffer Estos dos botones no hacen nada en el televisor de todos modos

Descripción

Use una manija de trapeador Swiffer vieja como el poste de la antena. Obtuve un cojinete de identificación de 1 "de mi tienda en línea favorita, en el cual el mango de la fregona simplemente se presiona y se detiene. Perfore un agujero en la caja de plástico lo suficientemente grande como para que entre el mango de la fregona, pero no para el cojinete. Perfore un rectángulo orificio en el extremo del mango del trapeador para que encaje en el eje de un motor paso a paso 28BYJ-48, y pegó el artilugio en la caja como se muestra. .

Usé la biblioteca stepper.h para girar el motor desde un Uno.

Desarmé un reproductor de DVD sin usar y recuperé el receptor IR de él. Puede desmontar cualquier dispositivo de consumo que tenga un control remoto y usar el receptor IR de él, funcionará. El receptor IR utiliza la biblioteca IRremote.h. Usando el monitor en serie, imprimí el código hexadecimal que correspondía a los dos botones del control remoto del televisor que quiero usar para operar el motor de la antena. Uno para girar a la izquierda, uno para la derecha.

Para ahorrar energía, use la función small_stepper.motorOff () para apagar las bobinas después de cada movimiento.

Conclusión

Este fue un proyecto divertido que también fue útil para mi esposa. No implementé ninguna aceleración / desaceleración en el movimiento, lo que podría ser bueno, especialmente si la antena tenía más inercia rotacional.

Editar: ¡perdón por que la imagen esté de lado! Está derecho en mi computadora, no tengo idea de por qué está en línea.

user851
fuente
5

La lámpara Knock-knock

Una lámpara que se enciende / apaga cuando se enciende el escritorio. Actualmente en fase alfa, todavía creando prototipos, pero creo que es el proyecto Arduino más útil que existe. Incluye generador de chistes cursi ... de chistes de golpeteo previamente grabados. Nota: Sé que no puedo ganar en las reglas, pero no hay una regla sobre entrar ... También puedo mostrar mi proyecto.

Descripción

Hasta ahora he explicado casi todo. Tocas y la luz se enciende y se apaga. Actualmente estoy en el tablero. Estoy usando un elemento piezoeléctrico para detectar los golpes con vibraciones. En paralelo, tengo una resistencia de 1 megaohmio para proteger mi Arduino Uno SMD.

Pensé en este diseño después de casi tirar (jajajaja) mi lámpara de mi escritorio mientras buscaba el pequeño interruptor de palanca. No soy exactamente ... bueno hábil . Es bueno tocar el escritorio y luego tener luz. También estoy usando un Power Switch Tail SSR (relé de estado sólido: sin ruido) para controlarlo con dos de los pines de mi Arduino.

Diseño

Foto Imagen tomada con la cámara web colgando sobre el monitor ... ¡eek!

Diagrama fritzing

Componentes utilizados para construir el proyecto:

  • Elemento piezoeléctrico ($ 3.00 USD)
  • Resistencia Megaohm ($ 0.30 USD cada uno en paquete de 5)
  • Arduino Uno SMD (en mano)
  • Power Switch Tail SSR (~ $ 25.00 USD con envío, pero tenía a mano, así que sin costo)
  • Tablero de pruebas y puentes / cable adicional (~ $ 5.00 USD, pero tenía a mano, así que sin costo)

Costo para mí: $ 3.30 USD + $ 0.02 USD (impuestos) == ¡Solo $ 3.32!

Conclusión

En general, es un proyecto simple pero en realidad es útil. Esa es una lucha con mis proyectos Arduino: ¿puedo construir algo que realmente usaría ? Parpadear un LED no te ayudará exactamente en la vida. Es divertido, pero eso es todo.

El mayor problema al que me enfrenté (y aún lo hago) es no recibir una señal lo suficientemente fuerte. Aprendí mucho sobre señales eléctricas: descubrí cómo encontrar el "pico" de un pulso y no solo leer el pin en un intervalo aleatorio y perder el voltaje más alto. Intentaría obtener un elemento piezo más sensible. Una más grande ayudaría. Estoy tratando de modificar mi circuito para no limitar tanto el voltaje, sino para proteger el Arduino. Algún tipo de fusible ayudaría en esta situación. También estoy jugando con valores de resistencia. Sería de gran ayuda tener un alcance para esto, pero supongo que no ...: P

Después de perfeccionar el circuito, voy a trabajar para obtenerlo en un PCB con un ATtiny ... y tal vez incluso desarrollar algunos kits. Intentaré publicar mis hallazgos sobre cómo hacer que el elemento sea más sensible sin arriesgar mi tablero en el proceso.

Actualización de estado: he estado muy ocupado recientemente. Voy a pedir un diodo zener (4.3V) aquí en una semana o dos para eliminar la resistencia megaohm para evitar diluir la señal mientras se protege el chip. Puedo construir un amplificador de voltaje simple aquí si es necesario (junto con el Zener) para tratar de hacer que el sensor sea más sensible.

Pingüino anónimo
fuente
1
Pasar a algo con diferenciales y ganar ADCs lo ayudaría a obtener más sensibilidad del piezo. Y posiblemente usando un TVS en lugar de una resistencia.
Ignacio Vazquez-Abrams
¿Está utilizando ADC para la detección o una interrupción? ¿Alguna idea de qué tan grande es el pico de voltaje que desea detectar?
jippie
@jipie ADC para detección, tengo un código bastante eficiente: realiza un bucle y encuentra el pico por cada 250 ms. Sin demoras Para el pico, IIRC es alrededor de 14/1024 (demasiado flojo para convertir eso ahora). También debería mirar el pin AREF, pero podría haber problemas si se deja caer, puede hacer ~ 9V.
Anonymous Penguin
Prueba esto como buffer de entrada. El transistor actúa como un rectificador de media onda amplificador de corriente / detector de pico. No es necesario detectar un solo pico con el ADC, el transistor / condensador lo estirará por usted. Según lo configurado, el voltaje de salida tiene una polarización de 2.2V DC, pero puede cambiarlo a lo que prefiera cambiando el divisor resistivo. De esa manera, puede hacer que la entrada sea aún más sensible seleccionando la referencia de banda prohibida 1V1 o 2V56. La resistencia de 10M garantiza que el condensador se descargue durante aproximadamente un segundo y en realidad fue mi DMM.
jippie
4

MySensors

- Aprenda a crear sus propios sensores inalámbricos de bajo costo y conectarlos al mundo.

http://www.mysensors.org

Lo llamamos "Internet de tus cosas"

Descripción

Hemos combinado la plataforma Arduino con un pequeño transceptor de radio en un mundo divertido y flexible de sensores inalámbricos de bajo costo.

Todos los detalles esenciales sobre la comunicación del sensor se han empaquetado en una biblioteca de software conveniente para que no tenga que preocuparse por ellos.

Es tan fácil como 1, 2, 3. Arduino + NRF24L01 +

  1. Conecta las partes. 2. Descargue los ejemplos proporcionados. 3. ¡Comienza a medir y controlar el mundo!

Lea más sobre cómo se forma automáticamente la red de sensores utilizando nuestra Biblioteca Arduino en el sitio. Básicamente forma una red estelar y puede alcanzar cientos de metros.

La red de sensores

En el medio, coloca una puerta de enlace Arduion o Raspberry que recopila la información de sus sensores. Controlador de frambuesa

Arduino Gateway

Diseño y esquemas.

Aquí está uno de los prototipos de sensores de movimiento que creé para controlar la luz del jardín fuera de mi casa. El estado de los movimientos se envía a mi controlador HA que enciende la luz (a través de la onda z) cuando se detecta movimiento. Un sensor de luz (que no está en la imagen) se asegura de encender las luces solo por la noche.
ingrese la descripción de la imagen aquí

Encontrará todas las instrucciones de compilación aquí: http://www.mysensors.org/build/

En el sitio también hay instrucciones de construcción fáciles de seguir para muchos otros sensores y actuadores inalámbricos. Aquí hay unos ejemplos:

Sensor de distancia, sensor de movimiento, actuador de relé, humedad, luz, presión, lluvia, temperatura, ...

Conclusión

El proyecto todavía está en los bloques de partida y esperamos proporcionar complementos para una lista cada vez mayor de controladores de automatización del hogar. Lo primero en nuestra lista en este momento es proporcionar un controlador de bricolaje que proporcione un almacenamiento gratuito en la nube para los datos de su sensor.

Hola

Nos vemos @ mysensors.org

/ Henrik Ekblad (el creador de la Biblioteca Arduino Open Source utilizada para la comunicación entre los sensores)

  • ACTUALIZACIÓN 27/3. Hice el ejemplo más concreto y agregué mi afiliación con el proyecto de código abierto.
hek
fuente
44
Bienvenido a Arduino.SE! Me temo que su sitio web no cumple con los criterios de nuestro escaparate. Estamos buscando proyectos específicos que demuestren una aplicación práctica de Arduino (como se ve en los otros ejemplos aquí). ¿Quizás podría proporcionar un ejemplo de un proyecto de sensor que ha construido?
Peter Bloomfield
Ok, tal vez me estoy perdiendo el punto;). El "proyecto específico" aquí es que usamos Arduinos para crear una red de sensores inalámbricos de autocuración. Para archivar esto, hemos creado una biblioteca Arduino de código abierto para el transceptor NRF24L01 +.
hek
44
Esto suena más como un anuncio que como un proyecto. Cambie el tono, quizás lo haga un poco más específico para una sola aplicación. Sospecho que es por eso que obtuviste un voto negativo.
Cybergibbons
Bienvenido a Ard.SE! Según el sitio web de su perfil, usted trabaja o es propietario del sitio que se promociona anteriormente. Es política de SE que usted divulgue esto en su respuesta. Edítelo para incluir eso. Además, ¿puede agregar un ejemplo de uso de esto?
Anonymous Penguin
He estado desarrollando esta biblioteca MySensors (de código abierto) durante los últimos 6 meses en mi tiempo libre. Para ayudar a otras personas a usar la biblioteca correctamente, (más personas se han unido al proyecto en los últimos meses) lanzamos la página de instrucciones de construcción hace solo 3 días. Pensé que sería un buen proyecto de Arduino recibir comentarios en este "Project Showcase". No creo que haya tratado de ocultar mi participación en el proyecto de ninguna manera y lo siento si la descripción se percibe como un anuncio. ¡Estamos muy contentos con el proyecto!
hek
4

Caja de serie

Un monitor serie portátil en una caja.

Descripción

A veces es útil para un dispositivo (Arduino o de otro tipo) generar información de depuración a través de serie. Eso es genial si tienes una computadora a mano con una entrada serial apropiada. Sin embargo, ese no es siempre el caso por una variedad de razones.

Este proyecto es mi intento de abordar ese problema mediante la creación de un monitor serie portátil con Arduino, que puedo conectar a otros dispositivos en el campo.

Por defecto, simplemente mostrará el texto en un formato de desplazamiento hacia atrás; es decir, el texto aparece en la línea inferior y todo se desplaza hacia arriba para hacer espacio cuando llega más. Esto significa que debería funcionar perfectamente con todo tipo de dispositivos genéricos. Sin embargo, también será posible usar secuencias de escape para controlar la pantalla con mayor precisión, de modo que los dispositivos también se puedan programar específicamente para aprovechar sus capacidades.

Diseño

El diseño consiste en un conjunto de 4 pantallas LCD alfanuméricas (16x2 caracteres cada una), alineadas en una caja similar a esta:

Maqueta 3D del diseño de la caja de serie

Las pantallas son Epson EAX16027AR, que desafortunadamente no son compatibles con el controlador estándar Hitachi HD44780. Como tal, tuve que escribir mi propia biblioteca para ellos.

Elegí usar estas pantallas (en lugar de, por ejemplo, una pantalla grande) principalmente porque las tenía por ahí y quería hacer algo interesante con ellas. También pensé que sería bastante útil poder controlar cada pantalla de forma independiente para algunas aplicaciones (por ejemplo, mostrar información diferente en cada una).

En términos de diseño de circuitos, las pantallas están conectadas en paralelo, con pines de selección de chip que se utilizan para dirigir los datos / comandos a cada uno según sea necesario.

Un ATMega328 será el cerebro de la unidad final, con datos en serie provenientes de una línea de nivel TTL (para conectarse directamente al TX de una MCU similar), u opcionalmente desde un zócalo D-sub RS232 de 9 pines (para conectarse a varios otros sistemas). La unidad también tendrá un dial de contraste, un botón para borrar la pantalla y un botón para iniciar un modo de autocomprobación. En el futuro, me gustaría agregar botones que permitan al usuario moverse a través de un historial de desplazamiento también.

A continuación se muestra un diseño de circuito muy preliminar (¡tuve algún problema para que Fritzing funcione bien por alguna razón!). Incluye un registro de desplazamiento SIPO de 8 bits para controlar las líneas de datos de los LCD, que se muestran en verde. También puede ver las líneas de selección de chips en naranja.

Disposición preliminar del circuito

Por el momento, el proyecto aún se encuentra en la etapa de prototipo de trabajo, impulsado desde una placa Uno (clon). A continuación, puede ver una foto en acción, que muestra el texto que se pasó en serie desde mi computadora.

El prototipo en acción.

Código fuente

Estoy haciendo que mi biblioteca LCD esté disponible en GitHub en el siguiente enlace. Tenga en cuenta que se encuentra en una etapa temprana de desarrollo. En un futuro cercano, tengo la intención de hacerlo mucho más similar a la biblioteca de LiquidCrystal central para que sea más fácil la transición entre los dos.

Puede encontrar algún código básico para mi prototipo de Serial Box en la carpeta "ejemplos".

Conclusión

Creo que el proyecto avanza muy bien, y me complació mucho que el prototipo funcionara. Mi principal desafío será montar todo en una caja. Ya he comenzado a cortar agujeros adecuados para las pantallas, pero no tengo mucha experiencia en ese tipo de cosas, y me resulta bastante complicado alinear todo.

Sin embargo, llegaré al final. ¡Puede que no se vea muy bonito cuando termine! :)

Peter Bloomfield
fuente
3

Controlador de calefacción

Ya sabes cómo es: configuras la calefacción para que se encienda a una hora determinada y cuántos días trabajas hasta tarde y ha estado en pleno funcionamiento durante horas, o te vas por unos días y te olvidas de apagarla. ¿O la rara ocasión en que llegas temprano a casa y la casa está fría? Decidí que la forma más sencilla de solucionar esto era crear un dispositivo que me permitiera encender o apagar la calefacción por mensaje de texto / sms. Sería adicional al sistema de control existente para no perder la flexibilidad que puede proporcionar.

El proyecto consta de algunas partes principales: un clon Arduino Uno, un escudo GSM Seeedstudio, un sensor de temperatura DHT22 y un SSR de 25 amp.

Cómo funciona:

Los controles de calefacción existentes están configurados en 'Apagado' y el nuevo controlador está conectado para anularlos. El Uno está programado para responder a tres mensajes diferentes: Encendido, Apagado y Consulta. En el caso de este último, la unidad leerá el DHT22 y responderá al remitente con la temperatura actual y el estado de la unidad (encendido o apagado). Si el comando está activado o desactivado, responderá con una confirmación de la acción realizada. Una vez que se han actuado los mensajes, se eliminan; cualquier mensaje que no se ajuste a la estructura específica del mensaje se deja en la memoria de la tarjeta SIM y se puede examinar más adelante si lo desea.

La alimentación a la unidad es suministrada por una fuente de alimentación de modo de interruptor de cinco voltios y tres amperios. Como los pines de alimentación del Arduino simplemente exponen el bus interno de 5v de la placa, decidí alimentar el conjunto a través de estos y configurar el escudo para extraer energía del Arduino.

La unidad tiene tres LED de estado. Una verde para indicar que hay energía, una azul para indicar que la placa GSM está "activa" y una roja para indicar el estado de la calefacción. Estos son adicionales a los LED de estado provistos en el Arduino y el escudo. También hay un interruptor de botón que permite el control manual de la calefacción, con un condensador de 100nF para manejar el rebote.

Próximo:

Gran parte del código se basa en el viejo retraso () para darle al escudo el tiempo suficiente para realizar sus acciones. ¡Planeo mejorar el código para que espere la confirmación del escudo en lugar de suponer que ha hecho lo que se le indicó dentro del tiempo asignado! También agregaré una característica de 'todavía vivo': a intervalos fijos apague el LED azul, envíe el comando AT al escudo y, en un reconocimiento, encienda nuevamente el LED. El escudo está bajo control del software, por lo que si no responde, apáguelo y vuelva a encenderlo.

Todo el conjunto debe montarse en una carcasa adecuada y montarse junto al controlador existente. Tengo un interruptor de botón iluminado internamente que usaré en lugar de un interruptor separado y un LED rojo para manejar la anulación.

A largo plazo, planeo agregar un RTC, una pantalla LCD de 20 x 4 y botones adicionales para permitir que la unidad se programe y actúe también como un interruptor de tiempo.

¡La creación de prototipos ya ha comenzado!

Conclusión.

¡Hay algo un poco decadente en despertarse en un frío día de descanso de invierno, enviar un mensaje de texto / sms para encender la calefacción y darse la vuelta y volver a dormir durante una hora! Y cuando te das cuenta de que no lo has apagado en una noche, ¡puedes hacerlo desde la comodidad de tu cama!

Imagen del controlador 1 Imagen del controlador 2

DavidA
fuente