Una lámpara inteligente que muestra el estado de ánimo de tu ciudad.



Todos conocen este sentimiento cuando hay un deseo obsesivo de hacer algo: comprar algo, crear algo, escribir algo, llamar a alguien ... Así que tenía el deseo de hacer algo con mis propias manos. En busca de un proyecto adecuado en instructables.com, me topé con esto y me di cuenta: ¡esto es lo que necesita!

En primer lugar, adapté este diseño de la lámpara para mí:

  • en lugar del estado de ánimo del mundo entero, decidí tomar el estado de ánimo de mi ciudad
  • en lugar de frambuesa pi, decidí usar arduino (ya que ya estaba en stock)
  • diseño de caja de plexiglás también cambié un poco a mi discreción
  • La capacidad de configurar la lámpara sin parpadear, a través de la tarjeta SD.

El primer paso decidí escribir un programa bajo arduino. El problema era que arduino no tenía wifi, pero la solución se encontró bastante rápido: esp8266. ESP8266 es un microcontrolador con interfaz Wi-Fi. Además de Wi-Fi, el microcontrolador se distingue por la capacidad de ejecutar programas desde una memoria flash externa con una interfaz SPI. La programación ESP8266 se realiza a través de un adaptador en serie, que se puede utilizar como un arduino. Además, los programas de escritura y flasheo también se pueden hacer a través del IDE de Arduino.



Mientras trabajaba con la placa ESP-01, rápidamente me di cuenta de que usar el paquete arduino uno + ESP-01 no es la mejor solución. El hecho es que para programar la placa, era necesario ensamblar un pequeño circuito programador. Esto, por supuesto, no es difícil, pero es muy inconveniente: para el firmware del módulo, debe conectar ESP-01 a través del programador a arduino uno, que funciona en modo adaptador serie, y para verificar el funcionamiento del programa, tenía que volver a conectar ESP-01 directamente a arduino uno en modo pantalón para que las dos placas puedan intercambiar información a través del puerto serie.



Por lo tanto, decidí usar la placa NodeMCU como un microcontrolador, que es algo así como esp8266 y arduino mini en una placa. Además, tiene una entrada micro usb, que simplifica enormemente el procedimiento para trabajar con ella.



El programa en sí resultó ser bastante simple. Primero, se conecta a una red wifi, cuyo nombre de usuario y contraseña están almacenados en la tarjeta SD. Después de eso, json se descarga desde ip-api.com/json para determinar la ubicación de la lámpara (solo el nombre de la ciudad y las coordenadas geográficas se toman del paquete). Cuando se conoce la ubicación de la lámpara, el programa comienza a generar solicitudes para Twitter, utilizando palabras clave que describen cada "estado de ánimo" programado. Después de procesar las solicitudes, el programa calcula el número total de tweets y determina el porcentaje de cada estado de ánimo en el ciclo actual. Para hacer que el cálculo del estado de ánimo actual sea más "animado", el programa compara el estado de ánimo actual con el anterior y calcula el cambio porcentual. Por ejemplo, si en el primer ciclo de trabajo la distribución del estado de ánimo fue de 0.4 para la felicidad y 0.05 para el romance, y en el segundo ciclo, 0.5 y 0.1, respectivamente, el programa elegirá "romance" como el estado de ánimo actual (ya que el aumento de la felicidad fue del 25% y el romance fue de 100 %) Este enfoque le permite responder rápidamente a cambios repentinos en los estados de ánimo de la ciudad, así como rastrear estados de ánimo mixtos (si la fracción de masa de los dos estados de ánimo es aproximadamente la misma, el programa cambiará entre ellos a su vez).

La segunda etapa fue el montaje de la carcasa de la lámpara. Inmediatamente determiné el material: plexiglás opaco (44% de transmisión de luz) de 2 mm de espesor. Al mismo tiempo, según la idea, el estante inferior, en el que se encuentran todos los componentes electrónicos, estaba hecho de plexiglás transparente. Al mismo tiempo, existe la sensación de que cuando la lámpara está funcionando, la luz parece fluir desde abajo y crea la ilusión de levitación de la propia lámpara.

Quería pegar las paredes cortadas de plexiglás entre sí con pegamento caliente. Pero dicho diseño resultó ser inestable (posiblemente debido al pequeño ancho de las paredes) y se desmoronó constantemente. Entonces decidí fijar las paredes con la ayuda de esquinas y tornillos. Esta opción resultó ser más confiable (aunque no tan linda), así que la dejé.

Después de armar la caja, pasé a la tercera y última etapa: instalar la electrónica en el estante inferior. Aquí todo era bastante simple, excepto que en lugar de los 4 LED planeados, utilicé 8; otros 4 adicionales se dirigen hacia abajo para crear un efecto de levitación. El hecho es que extrañé el tamaño de la lámpara y el 30% del estante se comió un compartimento para 4 baterías AA, bloqueando la luz de los LED.



Y también se descubrió que los LED que compré hacen un mal trabajo al mostrar colores complejos. Por lo tanto, tuve que limitarme a 7 simples: rojo, verde, azul, rosa (rojo + azul), amarillo (rojo + verde), turquesa (verde + azul) y blanco.

El resultado final del trabajo se puede ver en el video .

En este video, la lámpara está en modo de demostración: cambia rápidamente todas las combinaciones de colores con cable en orden aleatorio. En el modo de funcionamiento "normal", la lámpara sondea Twitter cada diez minutos para calcular el estado de ánimo actual y cambia de color de acuerdo con los resultados del cálculo.

El presupuesto del proyecto ascendió a un poco más de 2 mil rublos. Además, las partes más caras: 4 pilas AA 700r, una lámina de plexiglás esmerilado 600r, chino nodemcu 500r.

Qué se puede mejorar:

  • Al armar la caja, puede usar esquinas transparentes para que no se destaquen tanto.
  • El costo de una caja de plexiglás se puede reducir significativamente si compra una hoja grande de plexiglás y la corta usted mismo.
  • Puede usar LED más caros, que normalmente mostrarán colores intermedios como naranja, púrpura, etc.
  • Puede usar otra fuente de energía, como una corona. Esto se debe principalmente al hecho de que el compartimento de la batería para 4 baterías AA es demasiado grande y bloquea una gran cantidad de luz desde la parte inferior de la lámpara. Es cierto que no se sabe cuánto tiempo puede funcionar la lámpara desde una corona.
  • Puede crear una interfaz web simple para configurar la lámpara. Dado que la biblioteca para trabajar con tarjetas SD no es compatible con el idioma ruso, es imposible establecer palabras clave para la búsqueda de esta manera.

El código del programa se puede encontrar en el github . Si será interesante, puedo darle más información sobre el programa en otro artículo.

Source: https://habr.com/ru/post/es419299/


All Articles