Nota

Ciao, benvenuto nella Community di appassionati di SunFounder Raspberry Pi, Arduino e ESP32 su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino e ESP32 insieme ad altri appassionati.

Perché unirti?

  • Supporto esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.

  • Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.

  • Anteprime esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e alle anteprime.

  • Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni festive e giveaway: Partecipa a promozioni festive e concorsi a premi.

👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!

2. Segui @CheerLights

Questo è un progetto romantico: unisciti alla comunità @CheerLights - Twitter per il cambio colore dei LED, che permette ai LED di tutto il mondo di cambiare colore simultaneamente.

Puoi posizionarlo in un angolo del tuo ufficio per ricordarti che non sei solo.

Puoi twittare a @cheerlights includendo il nome del colore nel tweet. Questo cambierà i LED in tutto il mondo nel colore che hai specificato.

Componenti necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

È sicuramente conveniente acquistare un kit completo, ecco il link:

Nome

ELEMENTI IN QUESTO KIT

LINK

Kit Kepler

450+

Kepler Ultimate Kit

Puoi anche acquistarli separatamente dai link qui sotto.

SN

COMPONENTE

QUANTITÀ

LINK

1

Introduzione al Pico W

1

ACQUISTA

2

Cavo Micro USB

1

3

Breadboard

1

ACQUISTA

4

Cavi Jumper

Diverse

ACQUISTA

5

Striscia LED RGB WS2812 con 8 LED

1

ACQUISTA

6

Modulo Caricatore Li-po

1

7

Batteria 18650

1

8

Supporto batteria

1

Passaggi

  1. Costruisci il circuito.

    Il modulo caricabatterie Li-po utilizzato qui alimenterà il tuo circuito, così potrai scollegare il cavo USB e portare il tuo progetto altrove!

    Avvertimento

    Assicurati che il modulo caricabatterie Li-po sia collegato come mostrato nello schema. Altrimenti, un cortocircuito potrebbe danneggiare la batteria e il circuito.

    ../../_images/2.cheerlights_bb.png
  2. Cambia il percorso nella cartella in cui hai scaricato il code package in precedenza e apri il file 2_cheer_light.py nel percorso kepler-kit-main/iot.

  3. Per eseguire lo script, clicca sul pulsante Esegui script corrente o premi F5, quindi vedrai il prompt di connessione, l’IP e il colore (0xff0000 è rosso) nella Shell.

    Nota

    Prima di eseguire il codice, devi assicurarti di avere gli script do_connect.py e secrets.py nel tuo Pico W. In caso contrario, fai riferimento a 1. Accesso alla Rete per crearli.

    ../../_images/2_cheerlight1.png
  4. Dopo l’esecuzione dello script, la striscia RGB WS2812 mostrerà un colore, a volte il colore cambierà.

  5. Se vuoi eseguire questo script all’avvio, devi salvarlo nel Raspberry Pi Pico W come main.py, come segue.

    • Ferma l’esecuzione dello script e clicca su File -> Salva con nome.

      ../../_images/2_cheerlight2.png
    • Seleziona Raspberry Pi Pico nella finestra popup che appare.

      ../../_images/2_cheerlight3.png
    • Imposta il nome del file a main.py. Apparirà un avviso se esiste già un file con lo stesso nome sul tuo Pico W.

      ../../_images/2_cheerlight4.png
    • Ora puoi scollegare il cavo USB e utilizzare il modulo caricabatterie Li-po per alimentare il Raspberry Pi Pico W. Posizionalo in un angolo e funzionerà automaticamente.

Come funziona?

Il Raspberry Pi Pico W deve essere connesso a Internet, come descritto in 1. Accesso alla Rete. Per questo progetto, usalo semplicemente.

from do_connect import *
do_connect()

Imposta la striscia RGB WS2812, fai riferimento a 3.3 Striscia LED RGB per i dettagli sul suo utilizzo.

import machine
from ws2812 import WS2812
ws = WS2812(machine.Pin(18), 8)

Ora, abbiamo bisogno di un modo per ottenere il colore di @CheerLights. Esiste un sistema backend che raccoglie le modifiche di colore da Twitter e le pubblica in formato JSON all’URL: http://api.thingspeak.com/channels/1417/field/2/last.json.

Se apri questo URL direttamente nel tuo browser, vedrai qualcosa del genere. Tutto ciò di cui abbiamo bisogno è il dato field2, che è una stringa di colori codificata esadecimale.

{"created_at":"2022-08-16T06:12:44Z","entry_id":870488,"field2":"#ff00ff"}

Dobbiamo utilizzare il modulo urequests per ottenere questi dati e il modulo json per convertire questo carattere in un dizionario Python. Il seguente codice ottiene l’ultimo colore di @CheerLights dall’URL e restituisce un valore colore che può essere utilizzato dalla 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

Infine, usa un ciclo per far funzionare la ws2812 una volta al minuto.

while True:
    colour = get_colour()
    if colour is not None:
        ws.write_all(colour)
    time.sleep(60)