Съдържание:
- Стъпка 1: Светодиодите се нуждаят от ток, за да бъдат ограничени
- Стъпка 2: Направете фенерче
- Стъпка 3: Интернет на нещата с това фенерче?
- Стъпка 4: Настройте MQTT сървър
- Стъпка 5: Подгответе издател
Видео: От фенерче до сензор за движение с ESP8266 и MQTT: 5 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
В този пост бих представил елементи по -долу:
- Светодиодите се нуждаят от ограничаваща токова верига
- как да направите фенерче
- направете светлина, захранвана от преносимата батерия, и затъмнете светодиодите чрез ESP8266 чрез MQTT
Видеото е обобщение и кратко обяснение как работи това,
Планирах да включа PIR сензор, но урокът става доста дълъг, така че PIR сензорът ще бъде представен във втората част на тази тема
Така че нека започнем.
Стъпка 1: Светодиодите се нуждаят от ток, за да бъдат ограничени
За начинаещите това е странно, като се има предвид как обикновено се включва лампа с нажежаема жичка или флуоресцентна лампа. Не се притеснявайте, тези LED крушки на рафта вече са снабдени с адаптер за променливотоково към постоянен ток и ограничаващ ток. Но би било хубаво да се направи нещо от нулата.
Един ключ за включване на светодиод е верига за ограничаване на тока. Това работи като клапан за тока, така че след като напрежението, приложено към светодиода, което го прави проводимо, токът да тече през светодиодите не може да бъде по -голям от този, регулиран от веригата. Неизправността на светодиодите обикновено е резултат от прегряване. Няма токова ограничителна верига, която е сигурен начин да изгорите светодиодите за няколко секунди. Между другото, фиксирането на LED чиповете, тези идват върху алуминиевата рамка, до радиатор намаляват LED чипа и обикновено се препоръчва.
Чешех много главата си, когато научих това около 2015 г., и все още се чешех по главата (по различни причини). Научих се от този урок и неговото ясно обяснение ми спести някои драскотини.
Веригата е прикрепена. Удебелените линии означават основния маршрут на натоварване, а по -тънките показват механизма за управление за управление на тока на основния маршрут, който е около 150 mA. Уикипедия има кратка статия и прикачени някои препратки. Ограничаването на тока може да бъде изградено с транзистор чрез замяна на MOSFET със средно токови натоварващи транзистори като BD135, BD139.
Стъпка 2: Направете фенерче
Необходими части:
- N-канал MOSFET (IRF540N $ 1.62/10бр, 30N06, $.1.75/10бр)
- транзистор NPN (като S8085)
- 3.9 ома - 2W резистор, токът е ограничен около 0.6/3.9 = 153mA
- 100kR (1/4W) резистор
- Превключвател с заключване
- Има 0.5W 8 мм LED, $ 3.18/100бр
- Литиева батерия 18660. Спасих няколко от тях от банка за захранване. Батерия за лаптоп (4, 6, 8 клетки), изработена от клетка 18650, но внимателно с тези неща.
- 1 усилване до 12V платка, като тази, $ 0,56
- 1 литиево зарядно устройство като това, $ 0,30
Основната разлика от схемата по-горе е използването на литиева батерия (18660) с платка за усилване вместо макет 5V захранващ адаптер.
Последната снимка показва последното фенерче и се зареждаше от всеки микро USB източник (> 1A).
Стъпка 3: Интернет на нещата с това фенерче?
Разделям тази част на три стъпки:
- Подгответе абонат (този)
- Настройка на MQTT сървър (следваща стъпка)
- и подгответе издател (следващият)
Части:
Първо, да, използвах тази модна дума, известна още като IOT, но тази може да направи добра комбинация от използване на веригата в Стъпка 2 с ESP8266 и след това да контролира интензитета на светлината по метода MQTT.
Частите за веригата са идентични, с изключение на:
- Заменете 12V усилване с платка за увеличаване на MT3608, $ 1.92/5бр. Това може да повиши напрежението на батерия 18650 (около 3.7V) до 28 V, достатъчно за захранване на 8 LED (вместо 3).
- Позицията un-push в превключвателя е свързана към GPIO 1 или 2 в ESP8266 за PWM сигнал.
- ESP8266 01, по 1,68 долара всеки. Като този
- AMS1117 3.3 V, регулатор на напрежение за ESP8266, някои кондензатори
- USB модул за флаш ESP8266, $ 0.78/бр като този
Btw. тези връзки са за удобство.
Запояване и качване:
- Запоявайте части заедно и използвайте горните схеми. Някои предварително направени схеми с напрежение 3.3 могат да ви спестят известно време ($ 1.38/5бр като този). Бях объркан да си спомня щифта при обръщане на платката и в крайна сметка удовлетворих някакъв регулатор на напрежението AMS1117.
- Следващия. Направете малка промяна като на третата снимка, за да задържите GPIO 0 до GND, бързо докоснете RST Pin с GND щифт, за да поставите ESP8266 във Flashmode.
- Изтеглете кода тук от моя GitHub и качете кода в ESP 8266 с помощта на Arduino IDE.
Подчертах реда, за да покажа темата, за която абонатът се е абонирал. Всяко съобщение, публикувано в тази тема, ще бъде предадено на други клиенти (абонати) на тази тема. EPS8266 в тази верига ще изслуша съобщението JSON, публикувано по темата, и ще излезе, ако е направена промяна в трети канал
* Някога си мислех, че мога да сложа издърпващ резистор (100k), за да заземя портата на MOSFET, когато ESP8266 не беше представен. Това работи при липса на ESP8266, но с ESP8266, резисторът също изтегля GPIO0 или 2 към GND, превръщайки ги във Flash режим или не стартира (когато GPIO2 е НИСКО)). Ще видите плътно зелено, ако това се случи.
Стъпка 4: Настройте MQTT сървър
MQTT (Message Queuing Telemetry Transport) е объркващ протокол, базиран на метода за публикуване-абониране. Устройството, хостващо и извеждащо MQTT съобщение, се нарича брокер. Подобно на истински брокер, той е домакин на обмена между издатели (продавачи) и абонати (купувачи). Никакви пари не ги сменят. Има много уроци за това.
Ето резюмето. Raspberry Pi е най -популярното устройство за това. Frist, инсталирайте MQTT чрез:
sudo apt-get инсталирайте комари-комари-клиенти
проверете дали сървърът MQTT работи, като отворите два терминала на Raspberry, единият въведете първия ред, а другият за следващия:
mosquitto_sub -h localhost -t "yourtopic"
mosquitto_pub -t "yourtopic" -h localost -m "кажи нещо"
Трябва да видите „кажете нещо“на първия терминал. Уалах! Работи.
"#" Може да се използва за слушане на всяка тема, заменете "yourtopic" с "#"
Сега не искате някой да може да публикува или да се абонира за вашия MQTT сървър, трябва да зададете парола, като направите това чрез:
cd ~
mosquitto_passwrd -c pwfile mqtt_user
mqtt_user могат да бъдат други потребителски имена, които харесвате, въведете паролата два пъти и актуализирайте.conf файла чрез:
sudo nano /etc/mosquitto/mosquitto.conf
добавя тези два реда:
allow_anonymous false
password_file/home/pi/pwfile
след това рестартирайте комара чрез:
sudo systemctl рестартирайте комара
направете тест, като включите името с парола, като например:
mosquitto_sub -h localhost -t "yourtopic" -u "mqtt_user" -P "123456"
mosquitto_pub -h localhost -t "yourtopic" -u "mqtt_user" -P "123456" -m "защитено ли е това?"
Също така, ако MQTT откаже връзката, опитайте това, за да поставите услугата MQTT на фона на системата Linux чрез:
комар -d
Открих, че тези препратки са добри за разглеждане. Днес научих нещо от тези двамата.
- Адафрут:
- Stees-internet-guide.com
Стъпка 5: Подгответе издател
За това направих просто табло за управление, за да изпратя съобщението до сървъра на MQTT. В режим на готовност LCD дисплеят показва часовника.
Части:
- SSD1306 Екранен дисплей, $ 2.41 всеки
- EPS8266 WEMOS D1 Mini, по 2,53 долара всеки
- Потенциометър
- Един 4 -пинов плъзгащ превключвател.
- два 3 мм светодиода,
- някои резистори
Запояване:
Ето схемите на този терминал:
Качете кода:
Марковият WEMOS ESP8266 е приятен за работа. Нуждаете се само от микро USB, натиснете бутона за качване на Arduino IDE флаш чипа. Кодът е тук (GitHub):
За да публикувате съобщение, натиснете превключвателя, за да включите зеления светодиод (и червен изключен), след това плъзнете нагоре щифта и регулирайте и накрая натиснете отново бутона, за да избутате съобщението на MQTT сървъра. Таблото за управление може да публикува JSON съобщение до 4 канала.
Разгледайте открояването на кода (екранна снимка). Това е темата, към която таблото за управление изпраща съобщението, а нашите светодиоди са много нетърпеливи да видят каквото и да е ново от съобщението JSON
Това е всичко. Надявам се, че урокът е полезен.
Препоръчано:
Сензор за движение при осветление на леглото: 16 стъпки (със снимки)
Сензор за движение под осветление на леглото: Някога опитвали ли сте се да ставате тихо от леглото през нощта, само за да препънете нещо и да събудите цялата къща? Нощните светлини с чувствителност към движение, инсталирани дискретно под леглото ви, осигуряват достатъчно ниска светлина, достатъчно ярка, за да ви заобиколи тези заблудени тухли LEGO
Сензор за движение на водата Сензор за движение с помощта на Arduino и соленоиден клапан - Направи си сам: 6 стъпки
Сензор за вода Сензор за движение с помощта на Arduino и соленоиден клапан - Направи си сам: В този проект ще ви покажа как да изградите кран за вода с сензор за движение с помощта на електромагнитен клапан. Този проект може да ви помогне да преобразувате съществуващия си ръчен кран за вода в кран, който може да се контролира въз основа на откриване на движение. Използване на интерфейса на IR сензора
Кой е на вратата ми? Проект на PIR сензор за движение/сензор за обхват: 5 стъпки
Кой е на вратата ми? Проект за PIR сензор за движение/сензор за обхват: Нашият проект има за цел да усети движението чрез PIR и сензори за разстояние. Кодът на Arduino ще извежда визуален и аудио сигнал, за да каже на потребителя, че някой е близо. Кодът MATLAB ще изпрати имейл сигнал, за да предупреди потребителя, че някой е наблизо. Това устройство
Безжичен сензор за температура и движение на IoT: 11 стъпки (със снимки)
Безжичен сензор за температура и движение на IoT: Бях вдъхновен от многото IoT проекти, които са в Instructables, така че в процеса на обучение се опитвам да комбинирам някои полезни приложения, които са от значение. Като разширение на предишните ми инструкции, свързани с IoT температурен сензор, сега
Сензор за движение активирана LED лента с таймер: 6 стъпки (със снимки)
LED лента, активирана от сензор за движение с таймер: Здравейте на всички! Наистина съм щастлив да напиша още една инструкция в момента. Този проект възникна, когато преди няколко месеца се свързах с колега с инструкции (?!) (David @dducic) с молба за помощ при проектирането. И така, тук беше оригиналната спецификация: & q