Nota
¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder para Raspberry Pi, Arduino y ESP32 en Facebook. Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 junto a otros entusiastas.
¿Por qué unirse?
Soporte Experto: Resuelve problemas posventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y Comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Previsualizaciones Exclusivas: Obtén acceso anticipado a anuncios de nuevos productos y adelantos exclusivos.
Descuentos Especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones Festivas y Sorteos: Participa en sorteos y promociones de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy.
2. Sigue a @CheerLights
Este es un proyecto inspirador; únete a la comunidad de cambio de color de LED @CheerLights - Twitter, que permite que los LEDs de todo el mundo cambien de color al mismo tiempo.
Colócalo en un rincón de tu oficina para recordarte que no estás solo.
Puedes enviar un tweet a @cheerlights incluyendo el nombre de un color en el mensaje. Esto hará que los LEDs de todo el mundo cambien al color que has especificado.
Componentes Requeridos
Para este proyecto, necesitamos los siguientes componentes.
Es conveniente adquirir el kit completo; aquí tienes el enlace:
Nombre |
ELEMENTOS EN ESTE KIT |
ENLACE |
|---|---|---|
Kit Kepler |
450+ |
También puedes comprarlos por separado a través de los enlaces a continuación.
N.º |
COMPONENTE |
CANTIDAD |
ENLACE |
|---|---|---|---|
1 |
1 |
||
2 |
Cable Micro USB |
1 |
|
3 |
1 |
||
4 |
Varios |
||
5 |
1 |
||
6 |
1 |
||
7 |
Batería 18650 |
1 |
|
8 |
Portapilas |
1 |
Pasos
Ensambla el circuito.
El Módulo de Carga Li-po utilizado aquí alimentará tu circuito para que puedas desconectar el cable USB y llevar tu proyecto a cualquier parte.
Advertencia
Asegúrate de que tu Módulo de Carga Li-po esté conectado como se muestra en el diagrama. De lo contrario, un cortocircuito podría dañar la batería y el circuito.
Cambia la ruta al directorio donde descargaste el code package y abre el archivo
2_cheer_light.pyen la rutakepler-kit-main/iot.Para ejecutar el script, haz clic en el botón Ejecutar script actual o presiona F5. Entonces verás el mensaje de conexión establecida, la IP y el color (0xff0000 es rojo) en la consola.
Nota
Antes de ejecutar el código, asegúrate de tener los scripts
do_connect.pyysecrets.pyen tu Pico W; si no los tienes, consulta 1. Acceso a la Red para crearlos.
Después de ejecutar el script, la tira RGB WS2812 mostrará un color, que cambiará ocasionalmente.
Si deseas que este script se ejecute al inicio, guárdalo en la Raspberry Pi Pico W como
main.py, de la siguiente manera:Detén la ejecución del script y haz clic en Archivo -> Guardar como.
Selecciona Raspberry Pi Pico en la ventana emergente que aparece.
Asigna el nombre
main.pyal archivo. Aparecerá un mensaje si ya existe un archivo con el mismo nombre en tu Pico W.
Ahora puedes desconectar el cable USB y usar el Módulo de Carga Li-po para alimentar tu Raspberry Pi Pico W. Colócala en un rincón y funcionará automáticamente.
¿Cómo funciona?
La Raspberry Pi Pico W debe estar conectada a Internet, como se describe en 1. Acceso a la Red. Para este proyecto, solo tienes que utilizarlo.
from do_connect import *
do_connect()
Configura la tira RGB WS2812; consulta 3.3 Tira de LED RGB para obtener más detalles sobre su uso.
import machine
from ws2812 import WS2812
ws = WS2812(machine.Pin(18), 8)
Ahora, necesitamos una forma de obtener el color de @CheerLights. Hay un sistema de backend que toma los cambios de color de Twitter y los publica en formato JSON en la URL: http://api.thingspeak.com/channels/1417/field/2/last.json.
Si abres esta URL directamente en tu navegador, verás algo similar a lo siguiente. Solo necesitamos el dato field2, que es una cadena codificada en hexadecimal.
{"created_at":"2022-08-16T06:12:44Z","entry_id":870488,"field2":"#ff00ff"}
Usaremos el módulo urequests para obtener estos datos y el módulo json para convertir el contenido en un diccionario de Python.
El siguiente código obtiene el color más reciente de @CheerLights de la URL y devuelve un valor de color que puede ser usado por WS2812.
def get_colour():
url = "http://api.thingspeak.com/channels/1417/field/2/last.json"
try:
r = urequests.get(url)
if r.status_code > 199 and r.status_code < 300:
cheerlights = json.loads(r.content.decode('utf-8'))
print(cheerlights['field2'])
colour = int('0x'+cheerlights['field2'][1:7])#Convert from String to Integer
r.close()
return colour
else:
return None
except Exception as e:
print(e)
return None
Finalmente, utiliza un bucle para hacer que el ws2812 funcione una vez por minuto.
while True:
colour = get_colour()
if colour is not None:
ws.write_all(colour)
time.sleep(60)