Mundarija:

Chiroqdan ESP8266 va MQTT bilan harakat sensori: 5 qadam (rasmlar bilan)
Chiroqdan ESP8266 va MQTT bilan harakat sensori: 5 qadam (rasmlar bilan)

Video: Chiroqdan ESP8266 va MQTT bilan harakat sensori: 5 qadam (rasmlar bilan)

Video: Chiroqdan ESP8266 va MQTT bilan harakat sensori: 5 qadam (rasmlar bilan)
Video: sensor gerak pir tanpa ic dan tanpa arduino | sensor anti maling 2024, Noyabr
Anonim
Image
Image
LEDlar cheklangan bo'lishi uchun tok kerak
LEDlar cheklangan bo'lishi uchun tok kerak

Ushbu postda men quyidagi narsalarni taqdim qilmoqchiman:

  • LEDlar cheklangan oqim sxemasiga muhtoj
  • chiroqni qanday qilish kerak
  • portativ batareya bilan ishlaydigan yorug'lik qiling va LEDlarni ESP8266 yordamida MQTT orqali o'chiring.

Video - bu qanday ishlashini qisqacha tushuntirish va qisqacha tushuntirish.

Men PIR sensorini o'z ichiga olishni rejalashtirgandim, lekin darslik juda uzoq davom etadi, shuning uchun PIR sensori ushbu mavzuning ikkinchi qismida taqdim etiladi

Shunday qilib, boshlaylik.

1 -qadam: LEDlar cheklangan bo'lishi uchun tok kerak

Yangi boshlanuvchilar uchun, odatda, qanday qilib akkor yoki lyuminestsent lampani yoqish kerakligini ko'rib chiqish g'alati. Xavotir olmang, tokchadagi LED lampalar allaqachon AC-tok quvvat adapteri va cheklovchi tok bilan birga keladi. Lekin noldan nimadir yasash yaxshi bo'lardi.

LEDni yoqish uchun kalitlardan biri bu oqimni cheklash davri. Bu oqim uchun vana vazifasini bajaradi, shuning uchun LEDga qo'llaniladigan kuchlanish uni o'tkazgichga aylantirganda, oqim LEDlar orqali o'tadi, bu kontaktlarning zanglashiga olib keladigan oqimdan kattaroq bo'lolmaydi. LEDlarning ishlamay qolishi odatda qizib ketishdan kelib chiqadi. Bir necha soniya ichida LEDlarni yoqishning ishonchli usuli - bu oqim cheklovchisining yo'qligi. Aytgancha, LED chiplarini alyuminiy ramkaga o'rnatib, sovutgich LED chipini kamaytiradi va odatda tavsiya qilinadi.

Men buni 2015 yilda o'rganganimda boshimni juda ko'p qirib tashlaganman va hali ham boshimni qirib tashlaganman (turli sabablarga ko'ra). Men bu darslikdan o'rgandim va uning aniq izohi meni bir qancha burilishlardan qutqarib qoldi.

Zanjir biriktirilgan. Qalin chiziqlar asosiy yuklanish yo'lini bildiradi, ingichka chiziqlar esa 150 mA ga yaqin bo'lgan asosiy yo'nalish oqimini boshqarish mexanizmini ko'rsatadi. Vikipediyada qisqa maqola va ba'zi havolalar ilova qilingan. Oqim cheklovini MOSFETni BD135, BD139 kabi o'rta oqim yukli tranzistorlar bilan almashtirish orqali tranzistor yordamida qurish mumkin.

2 -qadam: Chiroq qiling

Chiroq yasang
Chiroq yasang
Chiroq yasang
Chiroq yasang
Chiroq yasang
Chiroq yasang
Chiroq yasang
Chiroq yasang

Kerakli qismlar:

  1. N-kanalli MOSFET (IRF540N $ 1.62/10 dona, 30N06, $.1.75/10 dona)
  2. NPN tranzistorlari (masalan, S8085)
  3. 3,9 ohm - 2 Vt qarshilik, oqim 0,6/3,9 = 153 mA atrofida cheklangan
  4. 100kR (1/4 Vt) qarshilik
  5. Bosish-qulflash tugmasi
  6. Bu erda 0,5 Vt 8 mm LED, $ 3,18/100 dona
  7. 18660 yil lityum batareya. Men ulardan bir nechtasini kuch bankidan qutqardim. Laptop batareyasi (4, 6, 8 hujayrali) 18650 yacheykadan yasalgan, lekin bu narsalarga ehtiyot bo'ling.
  8. 12 Vtagacha 1 ta ko'tarish, masalan, $ 0,56
  9. 1 lityum zaryadlovchi, masalan, 0,30 dollar

Yuqoridagi kontaktlarning zanglashiga olib keladigan asosiy farq-bu 5V quvvat adapteri o'rniga mustahkamlovchi lityum batareyadan (18660) foydalanish.

Oxirgi fotosuratda oxirgi chiroq ko'rsatilgan va u har qanday micro USB manbasidan (> 1A) zaryad olayotgan edi.

3 -qadam: bu chiroq bilan narsalar Interneti?

Bu chiroq bilan narsalar Interneti?
Bu chiroq bilan narsalar Interneti?
Bu chiroq bilan narsalar Interneti?
Bu chiroq bilan narsalar Interneti?
Bu chiroq bilan narsalar Interneti?
Bu chiroq bilan narsalar Interneti?

Men bu qismni uch bosqichga ajrataman:

  • Abonent tayyorlang (bu)
  • MQTT serverini sozlash (keyingi qadam)
  • va nashriyotni tayyorlang (keyingi)

Qismlar:

Birinchidan, ha, men bu so'zni ishlatardim, aOT IOT, lekin bu 2 -bosqichdagi sxemani ESP8266 bilan ishlatishning yaxshi kombinatsiyasini yaratishi va keyin yorug'lik intensivligini MQTT usuli bilan boshqarishi mumkin edi.

O'chirish qismlari bir xil, faqat bundan mustasno:

  1. 12V kuchaytirgichni MT3608 kuchaytirgich platasi bilan almashtiring, $ 1.92/5 dona, bu 18650 ta batareyaning kuchlanishini (taxminan 3.7V) 28 V ga oshirishi mumkin, bu 8LED (3 o'rniga).
  2. Kommutatorda bosilmaslik holati PWM signali uchun ESP8266 GPIO 1 yoki 2 ga ulangan.
  3. ESP8266 01, har biri 1,68 dollar. Bu kabi
  4. AMS1117 3.3 V, ESP8266 uchun kuchlanish regulyatori, ba'zi kondansatörler
  5. ESP8266 yonib turadigan USB moduli, shunga o'xshash $ 0,78/dona

Btw. bu havolalar qulaylik uchun.

Lehimlash va yuklash:

  • Lehimlash qismlari va yuqoridagi sxemalardan foydalaning. Oldindan tayyorlangan ba'zi 3,3 kuchlanishli kontaktlarning zanglashiga olib kelishi vaqtni tejashi mumkin ($ 1,38/5 dona shunga o'xshash). Men tenglikni kartasini ag'darish paytida pinni eslay olmay qoldim va AMS1117 kuchlanish regulyatorini qondirdim.
  • Keyingi. Uchinchi fotosuratda bo'lgani kabi kichik o'zgartirishlar kiritib, GPIO 0 ni GND -da ushlab turish uchun EST8266 -ni Flashmode -ga qo'yish uchun RST -pinni GND -pin bilan tezda bosing.
  • GitHub -dan kodni bu erdan yuklab oling va Arduino IDE yordamida kodni ESP 8266 -ga yuklang.

Men obuna obuna bo'lgan mavzuni ko'rsatish uchun qatorni ajratib ko'rsatdim. Bu mavzuga yozilgan har qanday xabar shu mavzudagi boshqa mijozlarga (obunachilarga) yuboriladi. Ushbu sxemadagi EPS8266, mavzuga joylashtirilgan JSON xabarini tinglaydi va agar Uchinchi kanalda o'zgarishlar qilingan bo'lsa, tarqatiladi

* bir paytlar, men ESP8266 taqdim etilmaganida, MOSFET darvozasini erga tushirish uchun qarshilik (100k) qo'yishim mumkin deb o'ylagandim. Bu ESP8266 bo'lmaganda ishlaydi, lekin ESP8266 bilan qarshilik GPIO0 yoki 2 ni GND ga tortadi, bu ularni Flash rejimiga o'tkazadi yoki yuklamaydi (GPIO2 LOW past bo'lsa)). Agar bu sodir bo'lsa, siz yashil rangni ko'rasiz.

4 -qadam: MQTT serverini o'rnating

MQTT serverini o'rnating
MQTT serverini o'rnating
MQTT serverini o'rnating
MQTT serverini o'rnating
MQTT serverini o'rnating
MQTT serverini o'rnating
MQTT serverini o'rnating
MQTT serverini o'rnating

MQTT (Message Queuing Telemetry Transport)-nashr-obuna usuliga asoslangan tartibsizlik protokoli. MQTT xabarini kiruvchi va chiquvchi qurilma broker deb ataladi. Haqiqiy broker kabi, u nashriyotlar (sotuvchilar) va obunachilar (xaridorlar) o'rtasida almashinuv o'tkazadi. Hech kim ularni qo'lini o'zgartirmaydi. Buning uchun ko'plab darsliklar mavjud.

Mana xulosa. Raspberry Pi - bu uchun eng mashhur qurilma. Frist, MQTT ni quyidagicha o'rnating:

sudo apt-get mosquitto mosquitto-mijozlarni o'rnatish

MQTT serveri Raspberry -da ikkita terminal ochilgan holda ishlayotganini tekshiring, biri birinchi qatorni, ikkinchisi keyingisi uchun:

mosquitto_sub -h localhost -t "sizning mavzuingiz"

mosquitto_pub -t "sizning mavzuingiz" -h localost -m "nimadir deyman"

Birinchi terminalda "nimadir deyish" ko'rsatilishini ko'rishingiz kerak. Valah! Ishlamoqda.

"#" Har qanday mavzuni tinglash uchun ishlatilishi mumkin, "mavzu" ni "#" bilan almashtiring.

Endi siz kimdir sizning MQTT serveringizga nashr etishni yoki obuna bo'lishni xohlamaysiz, parolni o'rnatishingiz kerak:

CD ~

mosquitto_passwrd -c pwfile mqtt_user

mqtt_user sizga yoqadigan boshqa foydalanuvchi nomlari bo'lishi mumkin, parolni ikki marta kiriting va.conf faylini yangilang:

sudo nano /etc/mosquitto/mosquitto.conf

bu ikkita qatorni qo'shadi:

ruxsat_anonim yolg'on

password_file/home/pi/pwfile

keyin chivinni qayta ishga tushiring:

sudo systemctl chivinni qayta ishga tushiring

ismni parol bilan kiritish orqali test o'tkazing, masalan:

mosquitto_sub -h localhost -t "sizning mavzuingiz" -u "mqtt_user" -P "123456"

mosquitto_pub -h localhost -t "sizning mavzuingiz" -u "mqtt_user" -P "123456" -m "himoyalanganmi?"

Agar MQTT ulanishni rad etsa, MQTT xizmatini Linux tizimining foniga qo'yib ko'ring:

chivin -d

Men bu havolalarni ko'rib chiqish yaxshi deb topdim. Men bugun bu ikkisidan nimadir o'rgandim.

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

5 -qadam: Nashriyotchi tayyorlang

Nashriyotchi tayyorlang
Nashriyotchi tayyorlang
Nashriyotchi tayyorlang
Nashriyotchi tayyorlang
Nashriyotchi tayyorlang
Nashriyotchi tayyorlang
Nashriyotchi tayyorlang
Nashriyotchi tayyorlang

Buning uchun men xabarni MQTT serveriga yuborish uchun oddiy asboblar paneli yarataman. Kutish rejimida LCD displeyda soat ko'rsatiladi.

Qismlar:

  1. SSD1306 ekranli displey, har biri 2,41 dollar
  2. EPS8266 WEMOS D1 Mini, har biri 2,53 dollar
  3. Potentsiometr
  4. Bitta 4 pinli slaydni almashtirish.
  5. 3 mm diametrli ikkita LED,
  6. ba'zi rezistorlar

Lehimlash:

Mana bu terminalning sxemalari:

Kodni yuklang:

Markali WEMOS ESP8266 bilan ishlash yoqimli. Sizga faqat mikro USB kerak, chipni Arduino IDE flesh -da yuklash tugmasini bosing. Kod bu erda (GitHub):

Xabarni nashr qilish uchun kalitni yashil chiroqni yoqish (va qizil o'chirish) tugmachasini bosing, keyin pinni yuqoriga siljiting va sozlang va nihoyat xabarni MQTT serveriga yuborish uchun tugmani yana bosing. Boshqaruv paneli 4 kanalga JSON xabarini e'lon qilishi mumkin.

Kodning diqqatga sazovor joyiga qarang (skrinshot). Boshqaruv paneli xabarni aynan shu mavzuga qaratadi va bizning LED -larimiz JSON xabaridan har qanday yangilikni ko'rishni juda xohlaydi

Bu haqida. Umid qilamanki, darslik foydali bo'ladi.

Tavsiya: