Innholdsfortegnelse:
- Trinn 1: Lysdioder trenger strøm for å være begrenset
- Trinn 2: Lag en lommelykt
- Trinn 3: Tingenes internett med denne lommelykten?
- Trinn 4: Sett opp MQTT -server
- Trinn 5: Forbered en utgiver
Video: Fra lommelykt til bevegelsessensor med ESP8266 og MQTT: 5 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
I dette innlegget vil jeg presentere elementene nedenfor:
- Lysdioder trenger en begrensende strømkrets
- hvordan lage en lommelykt
- lage et lys drevet av det bærbare batteriet, og dimme lysdiodene med ESP8266 via MQTT
Videoen er sammendraget og en kort forklaring på hvordan dette fungerer,
Jeg planla å ha PIR -sensor inkludert, men opplæringen blir ganske lang slik at PIR -sensoren vil bli presentert i den andre delen av dette emnet
Så la oss begynne.
Trinn 1: Lysdioder trenger strøm for å være begrenset
For nybegynnere er dette rart med tanke på hvordan man vanligvis slår på en glødelampe eller lysrør. Ikke bekymre deg, disse LED-pærene på hyllen har allerede en AC-til-DC strømadapter og en begrensende strøm. Men det ville være fint å lage noe fra bunnen av.
En nøkkel for å slå en LED er en strømbegrensende krets. Dette fungerer som en ventil for strømmen, slik at når spenningen som tilføres LED -en gjør den ledende, kan strømmen gjennom lysdiodene ikke være større enn den som reguleres av kretsen. Lysdioder mislykkes vanligvis som følge av overoppheting. Ingen strømbegrensningskrets på plass er en sikker måte å brenne lysdiodene på i løpet av få sekunder. Forresten, ved å fikse LED -brikkene, de som kommer på aluminiumsrammen, til en kjøleribbe, reduseres LED -brikken og anbefales generelt.
Jeg klødde mye i hodet da jeg lærte dette rundt 2015, og klødde fremdeles i hodet (av forskjellige grunner). Jeg lærte av denne opplæringen, og hans klare forklaring sparer meg for noen riper.
Kretsen er vedlagt. De fete linjene angir hovedlastruten, og de tynnere angir kontrollmekanismen for å kontrollere strømmen til hovedruten som er omtrent 150 mA. Wikipedia har en kort artikkel og noen referanser vedlagt. Strømbegrensningen kan bygges med en transistor ved å erstatte MOSFET med transistorer med middels strømbelastning som BD135, BD139.
Trinn 2: Lag en lommelykt
Nødvendige deler:
- en N-kanal MOSFET (IRF540N $ 1,62/10stk, 30N06, $.1,75/10stk)
- en NPN -transistor (for eksempel S8085)
- 3,9 ohm - 2W motstand, strømmen begrenset rundt 0,6/3,9 = 153mA
- 100kR (1/4W) motstand
- En trykklåsbryter
- Det er 0,5 W 8 mm LED, $ 3,18/100 stk her
- Et litiumbatteri fra 18660. Jeg reddet noen av dem fra en powerbank. Laptop -batteri (4, 6, 8 celler) laget av 18650 celle, men forsiktig med det.
- 1 boost opp til 12V brett, som dette, $ 0,56
- 1 litiumlader som denne, 0,30 dollar
Hovedforskjellen til kretsen ovenfor er å bruke et litiumbatteri (18660) med boost up-bord i stedet for en 5V strømadapter.
Det siste bildet viser den siste lommelykten, og den lades fra en hvilken som helst mikro -USB -kilde (> 1A).
Trinn 3: Tingenes internett med denne lommelykten?
Jeg deler denne delen i tre trinn:
- Forbered en abonnent (denne)
- Oppsett av MQTT -server (neste trinn)
- og forberede en utgiver (den neste)
Deler:
Først, ja, jeg brukte det buzzwordet, også kjent som IOTs, men dette kan være en god kombinasjon av å bruke kretsen i trinn 2 med en ESP8266 og deretter kontrollere lysintensiteten ved hjelp av MQTT -metoden.
Deler til kretsen er identiske, unntatt:
- Erstatt 12V boost opp med MT3608 boost up board, $ 1,92/5stk, denne kan øke spenningen til et 18650 batteri (ca. 3,7V) til 28 V, nok til å drive 8LED (i stedet for 3).
- Un-push-posisjonen i bryteren er koblet til GPIO 1 eller 2 i ESP8266 for PWM-signal.
- ESP8266 01, 1,68 dollar hver. Som denne
- AMS1117 3,3 V, en spenningsregulator for ESP8266, noen kondensatorer
- En USB -modul for å blinke ESP8266, $ 0,78/stk som denne
Btw. disse koblingene er for enkelhets skyld.
Lodding og opplasting:
- Lodde deler sammen, og bruk skjemaene ovenfor. Noen ferdiglagde 3,3 spenningskretser kan spare deg for litt tid ($ 1,38/5 stk som dette). Jeg var forvirret over å huske pinnen da jeg vendte PCB -kortet og endte opp med å tilfredsstille noen AMS1117 spenningsregulator.
- Neste. Gjør en liten modifikasjon som på det tredje bildet for å holde nede GPIO 0 til GND, trykk raskt på RST -pinnen med GND -pinnen for å sette ESP8266 i Flashmode.
- Last ned koden her fra min GitHub, og last opp koden til ESP 8266 ved hjelp av Arduino IDE.
Jeg markerte linjen for å vise emnet som abonnenten abonnerte på. Enhver melding som legges ut til dette emnet vil bli sendt videre til andre klienter (abonnenter) til dette emnet. EPS8266 i denne kretsen vil lytte til JSON -meldingen som er lagt ut på emnet og sparge ut hvis det ble gjort en endring i kanal tre
* en gang trodde jeg at jeg kunne sette en nedtrekksmotstand (100k) for å jorde porten til MOSFET når ESP8266 ikke ble presentert. Dette fungerer i fravær av en ESP8266, men med ESP8266 trekker motstanden også ned GPIO0 eller 2 til GND, noe som gjør dem til en Flash -modus eller ikke starter opp (når GPIO2 er LAV)). Du vil se en solid grønn hvis dette skjer.
Trinn 4: Sett opp MQTT -server
MQTT (Message Queuing Telemetry Transport) er en messingprotokoll basert på publish-subscribe-metode. Enhet som er vert for MQTT -melding inn og ut kalles megler. Som en ekte megler er det utveksling mellom utgivere (selgere) og abonnenter (kjøpere). Ingen penger skifter hender de. Det er mange opplæringsprogrammer for dette.
Her er sammendraget. Raspberry Pi er den mest populære enheten for dette. Frist, installer MQTT av:
sudo apt-get install mosquitto mygg-klienter
test om MQTT -serveren fungerer ved å åpne to terminaler på Raspberry, den ene skriver den første linjen og den andre for den neste:
mosquitto_sub -h localhost -t "yourtopic"
mosquitto_pub -t "yourtopic" -h localost -m "si noe"
Du bør se "si noe" dukker opp på den første terminalen. Walah! Det fungerer.
"#" Kan brukes til å lytte til ethvert emne, erstatte "yourtopic" med "#"
Nå som du ikke vil at noen kan publisere eller abonnere på MQTT -serveren din, bør du sette opp et passord ved å gjøre det:
cd ~
mosquitto_passwrd -c pwfile mqtt_user
mqtt_user kan være andre brukernavn du liker, skriv inn passordet to ganger og oppdater.conf -filen med:
sudo nano /etc/mosquitto/mosquitto.conf
legger til disse to linjene:
allow_anonymous false
password_file/home/pi/pwfile
start deretter myggen på nytt ved å:
sudo systemctl start mygg på nytt
gjør en test ved å inkludere navnet med et passord som:
mosquitto_sub -h localhost -t "yourtopic" -u "mqtt_user" -P "123456"
mosquitto_pub -h localhost -t "yourtopic" -u "mqtt_user" -P "123456" -m "er dette sikret?"
Også hvis MQTT nekter tilkoblingen, kan du prøve dette for å sette MQTT -tjenesten i bakgrunnen til Linux -systemet ved å:
mygg -d
Jeg fant ut at disse referansene er gode å se på. Jeg lærte noe av disse to i dag.
- Adafruit:
- Stees-internet-guide.com
Trinn 5: Forbered en utgiver
For denne lager jeg et enkelt dashbord for å sende meldingen til MQTT -serveren. I stand-modus viser LCD-skjermen klokken.
Deler:
- SSD1306 Skjerm, $ 2,41 hver
- EPS8266 WEMOS D1 Mini, 2,53 dollar hver
- Et potensiometer
- En glidebryter med 4 pinner.
- to 3 mm lysdioder,
- noen motstander
Lodding:
Her er skjematikken til denne terminalen:
Last opp koden:
Den merkede WEMOS ESP8266 er hyggelig å jobbe med. Du trenger bare en mikro -USB, trykk på opplastingsknappen på Arduino IDE og blits. Koden er her (GitHub):
For å publisere en melding, trykk på bryteren for å slå den grønne lysdioden på (og rød av), skyv deretter opp pinnen og juster den, og til slutt trykker du på knappen igjen for å skyve meldingen inn på MQTT -serveren. Dashbordet kan publisere en JSON -melding til 4 kanaler.
Ta en titt på høydepunktet på koden (skjermbilde). Det er emnet dashbordet skyver meldingen til, og våre lysdioder er veldig ivrige etter å se noe nytt fra JSON -meldingen
Det er omtrent det. Jeg håper opplæringen er nyttig.
Anbefalt:
Bevegelsessensor under sengebelysning: 16 trinn (med bilder)
Motion Sensing Under Bed Lighting: Har du noen gang prøvd å komme deg ut av sengen stille om natten bare for å snuble over noe og vekke hele huset? Bevegelsesfølende nattlys installert diskret under sengen gir lavt lys som er sterkt nok til å lede deg rundt de herreløse LEGO-klossene
Kamerablits til lommelykt: 8 trinn (med bilder)
Kameralampe til lommelykt: Jeg kjedet meg i helgen, så jeg bestemte meg for å rotere i delene mine for litt inspirasjon og kom på denne "ible". Blitsen jeg brukte tok jeg for noen måneder siden for et par dollar og resten av delene jeg hadde igjen fra andre
Kontrollere en Neopixel Led -ring med en bevegelsessensor: 3 trinn (med bilder)
Kontrollere en Neopixel Led-ring med en bevegelsessensor: I denne opplæringen skal vi leke med en bevegelsessensor (APDS-9960) og en neopikselring for å lære å kombinere dem begge med en Arduino UNO. Sluttproduktet vil reagere på venstre - høyre bevegelser ved å animere ledet bevegelse til høyre eller venstre, og til deg
Openhab MQTT PIR bevegelsessensor: 7 trinn
Openhab MQTT PIR bevegelsessensor: Hei, i denne instruksen skal jeg vise deg hvordan du kan lage din egen bevegelsessensor for Openhab
Bevegelsessensor aktivert LED -stripe med timer: 6 trinn (med bilder)
Bevegelsessensor aktivert LED -stripe med timer: Hei alle sammen! Jeg er veldig glad for å skrive en annen instruerbar akkurat nå. Dette prosjektet ble til da jeg ble kontaktet av en instruktør (?!) (David @dducic) for flere måneder siden og ba om hjelp til design. Så her var den opprinnelige spesifikasjonen: & q