INHOUDSOPGAWE:

Van flitslig tot bewegingsensor met ESP8266 en MQTT: 5 stappe (met foto's)
Van flitslig tot bewegingsensor met ESP8266 en MQTT: 5 stappe (met foto's)

Video: Van flitslig tot bewegingsensor met ESP8266 en MQTT: 5 stappe (met foto's)

Video: Van flitslig tot bewegingsensor met ESP8266 en MQTT: 5 stappe (met foto's)
Video: Node-RED aan Home Assistant toevoegen via MQTT 2024, Desember
Anonim
Image
Image
LED's benodig stroom om beperk te word
LED's benodig stroom om beperk te word

In hierdie pos sal ek die volgende items aanbied:

  • LED's benodig 'n beperkende stroombaan
  • hoe om 'n flitslig te maak
  • maak 'n lig wat deur die draagbare battery aangedryf word, en die LED's deur ESP8266 via MQTT verdof

Die video is 'n opsomming en 'n kort verduideliking van hoe dit werk,

Ek was van plan om 'n PIR -sensor in te sluit, maar die tutoriaal word redelik lank sodat die PIR -sensor in die tweede deel van hierdie onderwerp aangebied word

Laat ons dus begin.

Stap 1: LED's moet stroom beperk word

Vir beginners is dit vreemd as jy kyk na hoe jy gewoonlik 'n gloeilamp of fluorescerende gloeilamp moet aanskakel. Moenie bekommerd wees nie; die LED-gloeilampe op die rak het reeds 'n AC-na-DC-adapter en 'n beperkte stroom. Maar dit sal lekker wees om iets van voor af te maak.

Een sleutel om 'n LED te draai, is 'n stroombeperkingskring. Dit werk as 'n klep vir die stroom, sodat sodra die spanning wat op die LED aangewend word, gelei word, die stroom deur die LED's nie groter kan wees as die wat deur die stroombaan gereguleer word nie. LED's misluk gewoonlik as gevolg van oorverhitting. Geen stroombeperkingskring in plek is 'n veilige manier om die LED's binne 'n paar sekondes op te brand. Terloops, die herstel van die LED -skyfies, wat op die aluminium raam kom, verminder die LED -chip en word gewoonlik aanbeveel.

Ek het baie in my kop gekrap toe ek dit in 2015 geleer het, en steeds om my kop gekrap (om verskillende redes). Ek het geleer uit hierdie handleiding en sy duidelike verduideliking spaar my 'n paar krake.

Die kring is aangeheg. Die vet lyne dui die hooflasroete aan, en die dunner dui die beheermeganisme aan om die stroom van die hoofroete, wat ongeveer 150 mA is, te beheer. Wikipedia bevat 'n kort artikel en 'n paar verwysings daarby. Die stroombeperking kan met 'n transistor gebou word deur MOSFET te vervang met transistors met medium stroomlas, soos BD135, BD139.

Stap 2: Maak 'n flitslig

Maak 'n flitslig
Maak 'n flitslig
Maak 'n flitslig
Maak 'n flitslig
Maak 'n flitslig
Maak 'n flitslig
Maak 'n flitslig
Maak 'n flitslig

Onderdele benodig:

  1. 'n N-kanaal MOSFET (IRF540N $ 1,62/10 stuks, 30N06, $. 1,75/10 stuks)
  2. 'n NPN -transistor (soos S8085)
  3. 3.9 ohm - 2W weerstand, die stroom is beperk tot ongeveer 0.6/3.9 = 153mA
  4. 100kR (1/4W) weerstand
  5. 'N Druk-sluit-skakelaar
  6. Daar is 0.5W 8 mm LED, $ 3,18/100 stuks hier
  7. 'N Litiumbattery van 18660. Ek het 'n paar van hulle uit 'n kragbank gered. Laptop battery (4, 6, 8 selle) gemaak van 18650 sel, maar versigtig met die dinge.
  8. 1 hupstoot tot 12V bord, soos hierdie, $ 0,56
  9. 1 litiumlaaier soos hierdie, $ 0,30

Die belangrikste verskil met die stroombaan hierbo is die gebruik van 'n litiumbattery (18660) met 'n boost-boord in plaas van 'n 5V-voedingsadapter.

Die laaste foto toon die laaste flitslig en dit word vanaf enige mikro -USB -bron (> 1A) gelaai.

Stap 3: Internet van dinge met hierdie flitslig?

Internet van dinge met hierdie flitslig?
Internet van dinge met hierdie flitslig?
Internet van dinge met hierdie flitslig?
Internet van dinge met hierdie flitslig?
Internet van dinge met hierdie flitslig?
Internet van dinge met hierdie flitslig?

Ek deel hierdie deel in drie stappe:

  • Berei 'n intekenaar voor (hierdie een)
  • Stel MQTT -bediener op (volgende stap)
  • en berei 'n uitgewer voor (die volgende een)

Dele:

Eerstens, ja, ek het die modewoord, oftewel IOT's, gebruik, maar hierdie een kan 'n goeie kombinasie wees van die gebruik van die stroombaan in stap 2 met 'n ESP8266 en dan die ligintensiteit beheer volgens die MQTT -metode.

Onderdele vir die kring is identies, behalwe:

  1. Vervang 12V boost up deur MT3608 boost up board, $ 1.92/5 stuks, hierdie kan die spanning van 'n 18650 battery (ongeveer 3.7V) verhoog tot 28 V, genoeg om 8LED's aan te dryf (in plaas van 3).
  2. Die un-push posisie in die skakelaar is gekoppel aan die GPIO 1 of 2 in die ESP8266 vir PWM sein.
  3. ESP8266 01, $ 1,68 elk. Soos die een
  4. AMS1117 3.3 V, 'n spanningsreguleerder vir ESP8266, enkele kondensators
  5. 'N USB -module om ESP8266 te flits, $ 0,78/stuks soos hierdie

Btw. hierdie skakels is vir die gemak.

Soldeer en oplaai:

  • Soldeer dele saam en gebruik die skemas hierbo. Sommige vooraf gemaakte 3.3-stroombane kan u tyd bespaar ($ 1,38/5 stuks soos hierdie). Ek was verward om die pen te onthou toe ek die PCB -bord omdraai, en ek het uiteindelik 'n AMS1117 -spanningsreguleerder tevrede gestel.
  • Volgende. Maak 'n klein verandering soos op die derde foto om die GPIO 0 tot GND in te hou, tik vinnig op die RST -pen met GND -pen om die ESP8266 in Flashmode te plaas.
  • Laai die kode hier af van my GitHub en laai die kode op na ESP 8266 met behulp van Arduino IDE.

Ek het die reël beklemtoon om die onderwerp te wys waarop die intekenaar ingeteken het. Enige boodskap wat op hierdie onderwerp geplaas word, sal aan ander kliënte (intekenare) na hierdie onderwerp oorgedra word. Die EPS8266 in hierdie kring sal luister na die JSON -boodskap wat op die onderwerp geplaas is en uitskakel as daar 'n verandering in kanaal Drie aangebring word

* Eens het ek gedink ek kan 'n aftrekweerstand (100k) sit om die poort van MOSFET te grond wanneer die ESP8266 nie aangebied word nie. Dit werk in die afwesigheid van 'n ESP8266, maar met ESP8266 trek die weerstand ook die GPIO0 of 2 af na GND, sodat hulle in 'n flitsmodus gaan of nie oplaai nie (as GPIO2 LOW is). U sal 'n soliede groen kleur sien as dit gebeur.

Stap 4: Stel MQTT -bediener op

Stel MQTT -bediener op
Stel MQTT -bediener op
Stel MQTT -bediener op
Stel MQTT -bediener op
Stel MQTT -bediener op
Stel MQTT -bediener op
Stel MQTT -bediener op
Stel MQTT -bediener op

MQTT (Message Queuing Telemetry Transport) is 'n gemorsprotokol wat gebaseer is op publiseer-teken-metode. Toestel wat MQTT -boodskap in en uit huisves, word die makelaar genoem. Soos 'n ware makelaar, bied dit die uitruil tussen uitgewers (verkopers) en intekenare (kopers) aan. Geen geld verander van hande nie. Daar is baie tutoriale hiervoor.

Hier is die opsomming. Raspberry Pi is die gewildste toestel hiervoor. Frist, installeer MQTT deur:

sudo apt-get install mosquitto mosquitto-kliënte

toets of die MQTT -bediener twee terminale op Framboos oopmaak, een tik die eerste reël en die ander vir die volgende:

mosquitto_sub -h localhost -t "yourtopic"

mosquitto_pub -t "yourtopic" -h localost -m "sê iets"

U moet sien dat die 'sê iets' op die eerste terminaal verskyn. Walah! Dit werk.

Die '#' kan gebruik word om na enige onderwerp te luister, 'yourtopic' deur '#' te vervang

As u nie wil hê dat iemand u MQTT -bediener kan publiseer of inteken nie, moet u 'n wagwoord opstel deur dit te doen:

cd ~

mosquitto_passwrd -c pwfile mqtt_user

mqtt_user kan ander gebruikersname wees waarvan u hou, voer die wagwoord twee keer in en werk die.conf -lêer op deur:

sudo nano /etc/mosquitto/mosquitto.conf

voeg hierdie twee reëls by:

allow_anonymous vals

password_file/home/pi/pwfile

herbegin dan die muskiet deur:

sudo systemctl herbegin die muskiet

maak 'n toets deur die naam met 'n wagwoord in te sluit, soos:

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

mosquitto_pub -h localhost -t "yourtopic" -u "mqtt_user" -P "123456" -m "is dit beveilig?"

As die MQTT die verbinding weier, probeer dan om die MQTT -diens op die agtergrond van Linux -stelsel te plaas deur:

muskiet -d

Ek het gevind dat hierdie verwysings goed is om na te kyk. Ek het vandag iets van hierdie twee geleer.

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

Stap 5: Berei 'n uitgewer voor

Berei 'n uitgewer voor
Berei 'n uitgewer voor
Berei 'n uitgewer voor
Berei 'n uitgewer voor
Berei 'n uitgewer voor
Berei 'n uitgewer voor
Berei 'n uitgewer voor
Berei 'n uitgewer voor

Vir hierdie een maak ek 'n eenvoudige paneelbord om die boodskap na die MQTT -bediener te stuur. In die standmodus wys die LCD die klok.

Dele:

  1. SSD1306 skerm, $ 2,41 elk
  2. EPS8266 WEMOS D1 Mini, $ 2,53 elk
  3. 'N Potensiometer
  4. Een 4 -pins skuifskakelaar.
  5. twee 3 mm LED's,
  6. 'n paar weerstande

Soldeer:

Hier is die skema van hierdie terminale:

Laai die kode op:

Die handelsmerk WEMOS ESP8266 is aangenaam om mee te werk. U benodig slegs 'n mikro -USB, druk die oplaai -knoppie op Arduino IDE en flits die chip. Die kode is hier (GitHub):

Om 'n boodskap te publiseer, druk die skakelaar om die groen LED aan te skakel (en rooi af), skuif dan die pen omhoog en pas aan en druk uiteindelik weer op die knoppie om die boodskap op die MQTT -bediener te druk. Die paneelbord kan 'n JSON -boodskap op 4 kanale publiseer.

Kyk na die hoogtepunt op die kode (skermkiekie). Dit is die onderwerp waarna die paneelbord die boodskap stuur, en ons LED's is baie opgewonde om iets nuuts uit die JSON -boodskap te sien

Dit is omtrent dit. Ek hoop dat die tutoriaal nuttig is.

Aanbeveel: