Sommario:

Dalla torcia al sensore di movimento con ESP8266 e MQTT: 5 passaggi (con immagini)
Dalla torcia al sensore di movimento con ESP8266 e MQTT: 5 passaggi (con immagini)

Video: Dalla torcia al sensore di movimento con ESP8266 e MQTT: 5 passaggi (con immagini)

Video: Dalla torcia al sensore di movimento con ESP8266 e MQTT: 5 passaggi (con immagini)
Video: Raspberry Pi ⋆ controllare luci e prese smart tramite NodeMCU 2024, Dicembre
Anonim
Image
Image
I LED hanno bisogno di corrente per essere limitati
I LED hanno bisogno di corrente per essere limitati

In questo post, presenterei gli elementi di seguito:

  • I LED necessitano di un circuito di limitazione della corrente
  • come fare una torcia elettrica
  • accendere una luce alimentata dalla batteria portatile e attenuare i LED tramite ESP8266 tramite MQTT

Il video è il riassunto e una breve spiegazione di come funziona,

Avevo programmato di includere il sensore PIR, ma il tutorial diventa piuttosto lungo in modo che il sensore PIR venga presentato nella seconda parte di questo argomento

Quindi iniziamo.

Passaggio 1: i LED hanno bisogno di corrente per essere limitati

Per i principianti, questo è strano considerando come di solito si accende una lampadina a incandescenza o fluorescente. Non preoccuparti, quelle lampadine a LED sullo scaffale sono già dotate di un adattatore di alimentazione CA-CC e una corrente limitante. Ma sarebbe bello fare qualcosa da zero.

Una chiave per accendere un LED è un circuito di limitazione della corrente. Funziona come una valvola per la corrente in modo che una volta che la tensione applicata al LED che lo rende conduttivo, la corrente che scorre attraverso i LED non può essere maggiore di quella regolata dal circuito. I LED si guastano solitamente a causa del surriscaldamento. Nessun circuito di limitazione della corrente in atto è un modo sicuro per bruciare i LED in pochi secondi. A proposito, fissando i chip LED, quelli vengono sul telaio in alluminio, a un dissipatore di calore ridurre il chip LED e generalmente consigliato.

Mi stavo grattando molto la testa quando lo imparavo intorno al 2015, e continuavo a grattarmi la testa (per diversi motivi). Ho imparato da questo tutorial e la sua chiara spiegazione mi ha risparmiato qualche intoppo.

Il circuito è allegato. Le linee in grassetto indicano il percorso di carico principale e quelle più sottili indicano il meccanismo di controllo per controllare la corrente del percorso principale che è di circa 150 mA. Wikipedia ha un breve articolo e alcuni riferimenti allegati. Il limitatore di corrente può essere costruito con un transistor sostituendo il MOSFET con transistor a medio carico come BD135, BD139.

Passaggio 2: crea una torcia elettrica

Fare una torcia elettrica
Fare una torcia elettrica
Crea una torcia elettrica
Crea una torcia elettrica
Crea una torcia elettrica
Crea una torcia elettrica
Crea una torcia elettrica
Crea una torcia elettrica

Parti necessarie:

  1. un MOSFET a canale N (IRF540N $ 1,62/10 pezzi, 30N06, $ 1,75/10 pezzi)
  2. un transistor NPN (come S8085)
  3. Resistenza da 3,9 ohm – 2 W, la corrente è limitata a circa 0,6/3,9 = 153 mA
  4. Resistenza da 100kR (1/4W)
  5. Un interruttore a pressione
  6. C'è un LED da 0,5 W da 8 mm, $ 3,18/100 pezzi qui
  7. Una batteria al litio 18660. Ne ho recuperati alcuni da un power bank. Batteria per laptop (4, 6, 8 celle) realizzata con celle 18650 ma attenzione con quella roba.
  8. 1 scheda boost fino a 12V, come questa, $ 0,56
  9. 1 caricabatterie al litio come questo, $ 0,30

La principale differenza rispetto al circuito sopra è l'utilizzo di una batteria al litio (18660) con scheda boost up invece di un adattatore di alimentazione 5V mock-up.

L'ultima foto mostra la torcia finale e si stava caricando da qualsiasi fonte micro USB (>1A).

Passaggio 3: Internet delle cose con questa torcia?

Internet delle cose con questa torcia?
Internet delle cose con questa torcia?
Internet delle cose con questa torcia?
Internet delle cose con questa torcia?
Internet delle cose con questa torcia?
Internet delle cose con questa torcia?

Divido questa parte in tre passaggi:

  • Prepara un abbonato (questo)
  • Configura il server MQTT (passaggio successivo)
  • e preparare un Editore (il prossimo)

Parti:

Innanzitutto, sì, ho usato quella parola d'ordine, alias IOT, ma questo potrebbe fare una buona combinazione di usare il circuito nel passaggio 2 con un ESP8266 e quindi controllare l'intensità della luce con il metodo MQTT.

Le parti del circuito sono identiche, tranne:

  1. Sostituisci il boost up a 12V con la scheda boost up MT3608, $ 1,92/5 pezzi, questo può aumentare la tensione di una batteria 18650 (circa 3,7 V) a 28 V, abbastanza per alimentare 8 LED (invece di 3).
  2. La posizione di non spinta nell'interruttore è collegata al GPIO 1 o 2 nell'ESP8266 per il segnale PWM.
  3. ESP8266 01, $ 1,68 ciascuno. Come questo
  4. AMS1117 3,3 V, un regolatore di tensione per ESP8266, alcuni condensatori
  5. Un modulo USB per flashare ESP8266, $ 0,78/pz come questo

A proposito. quei link sono per comodità.

Saldatura e caricamento:

  • Saldare le parti insieme e utilizzare gli schemi sopra. Alcuni circuiti di tensione 3.3 prefabbricati potrebbero farti risparmiare tempo ($ 1,38/5 pezzi come questo). Ero confuso nel ricordare il pin quando si capovolgeva la scheda PCB e alla fine ho soddisfatto un regolatore di tensione AMS1117.
  • Prossimo. Apporta una piccola modifica come nella terza foto per tenere premuto GPIO 0 su GND, tocca rapidamente il pin RST con il pin GND per mettere ESP8266 in modalità Flash.
  • Scarica il codice qui dal mio GitHub e carica il codice su ESP 8266 usando Arduino IDE.

Ho evidenziato la riga per mostrare l'argomento a cui si è iscritto l'abbonato. Qualsiasi messaggio pubblicato su questo argomento verrà passato ad altri client (abbonati) a questo argomento. L'EPS8266 in questo circuito ascolterà il messaggio JSON pubblicato sull'argomento e se ne andrà se è stata apportata una modifica nel canale tre

* C'era una volta, pensavo di poter mettere un resistore pull-down (100k) per mettere a terra il Gate del MOSFET quando l'ESP8266 non era presentato. Funziona in assenza di un ESP8266, ma con ESP8266, il resistore abbassa anche il GPIO0 o 2 su GND, trasformandoli in modalità Flash o non avviandoli (quando GPIO2 è BASSO)). Vedrai un verde fisso se ciò accade.

Passaggio 4: configurazione del server MQTT

Imposta il server MQTT
Imposta il server MQTT
Imposta il server MQTT
Imposta il server MQTT
Imposta il server MQTT
Imposta il server MQTT
Imposta il server MQTT
Imposta il server MQTT

MQTT (Message Queuing Telemetry Transport) è un protocollo di messaggistica basato sul metodo publish-subscribe. Il dispositivo che ospita il messaggio MQTT in entrata e in uscita è chiamato broker. Come un vero broker, ospita lo scambio tra editori (venditori) e abbonati (acquirenti). Nessun denaro cambia di mano quelli. Ci sono molti tutorial per questo.

Ecco il resoconto. Raspberry Pi è il dispositivo più popolare per questo. Per prima cosa, installa MQTT tramite:

sudo apt-get install mosquitto mosquitto-clients

verifica se il server MQTT funziona aprendo due terminali su Raspberry, uno digita la prima riga e l'altro per la successiva:

mosquitto_sub -h localhost -t "il tuo argomento"

mosquitto_pub -t "yourtopic" -h localost -m "dire qualcosa"

Dovresti vedere il messaggio "dire qualcosa" sul primo terminale. Walah! Funziona.

Il "#" può essere utilizzato per ascoltare qualsiasi argomento, sostituire "yourtopic" con "#"

Ora non vuoi che qualcuno possa pubblicare o iscriversi al tuo server MQTT, dovresti impostare una password, facendo così:

cd ~

mosquitto_passwrd -c pwfile mqtt_user

mqtt_user può essere un altro nome utente che ti piace, inserisci la password due volte e aggiorna il file.conf con:

sudo nano /etc/mosquitto/mosquitto.conf

aggiunge queste due righe:

allow_anonimo falso

password_file /home/pi/pwfile

quindi riavvia la zanzara:

sudo systemctl riavvia mosquitto

fare una prova inserendo il nome con una password del tipo:

mosquitto_sub -h localhost -t "yourtopic" -u "mqtt_user" -P "123456"

mosquitto_pub -h localhost -t "yourtopic" -u "mqtt_user" -P "123456" -m "è protetto?"

Inoltre, se MQTT rifiuta la connessione, prova questo per mettere il servizio MQTT in background del sistema Linux:

zanzara -d

Ho scoperto che questi riferimenti sono utili per dare un'occhiata. Ho imparato qualcosa da questi due oggi.

  1. Adafruit:
  2. Stees-internet-guide.com

Passaggio 5: preparare un editore

Prepara un editore
Prepara un editore
Prepara un editore
Prepara un editore
Prepara un editore
Prepara un editore
Prepara un editore
Prepara un editore

Per questo, creo una semplice dashboard per inviare il messaggio al server MQTT. In modalità stand, il display LCD mostra l'orologio.

Parti:

  1. Display dello schermo SSD1306, $ 2,41 ciascuno
  2. EPS8266 WEMOS D1 Mini, $ 2,53 ciascuno
  3. Un potenziometro
  4. Un interruttore a scorrimento a 4 pin.
  5. due led da 3mm,
  6. alcuni resistori

Saldatura:

Ecco lo schema di questo terminale:

Carica il codice:

È piacevole lavorare con il WEMOS ESP8266 di marca. Hai solo bisogno di una micro USB, premi il pulsante di caricamento su Arduino IDE per flashare il chip. Il codice è qui (GitHub):

Per pubblicare un messaggio, premere l'interruttore per accendere il led verde (e spegnere il rosso), quindi far scorrere il perno e regolare, e infine premere di nuovo il pulsante per inviare il messaggio al server MQTT. La dashboard potrebbe pubblicare un messaggio JSON su 4 canali.

Dai un'occhiata all'evidenziazione sul codice (screenshot). Questo è l'argomento su cui la dashboard spinge il messaggio e i nostri LED sono molto ansiosi di vedere eventuali novità dal messaggio JSON

Questo è tutto. Spero che il tutorial sia utile.

Consigliato: