Fənərdən ESP8266 və MQTT ilə Hərəkət Sensoruna: 5 Addım (Şəkillərlə)
Fənərdən ESP8266 və MQTT ilə Hərəkət Sensoruna: 5 Addım (Şəkillərlə)
Anonim
Image
Image
LED -lərin məhdud olması üçün cərəyan lazımdır
LED -lərin məhdud olması üçün cərəyan lazımdır

Bu yazıda aşağıdakı maddələri təqdim edərdim:

  • LED -lərin məhdudlaşdırıcı bir cərəyan dövrəsinə ehtiyacı var
  • bir fənər necə etmək olar
  • portativ batareya ilə işləyən bir işıq düzəldin və LEDləri ESP8266 ilə MQTT vasitəsilə söndürün

Video, bunun necə işlədiyinin qısa bir izahıdır və

PIR sensoru daxil etməyi planlaşdırırdım, amma dərs çox uzun çəkdi ki, PIR sensoru bu mövzunun ikinci hissəsində təqdim olunsun

Beləliklə başlayaq.

Addım 1: LED -lərin məhdud olması üçün cərəyan lazımdır

Yeni başlayanlar üçün, ümumiyyətlə közərmə və ya floresan lampanın necə açılacağını düşünmək qəribədir. Narahat olmayın, rəfdəki LED ampullər artıq AC-DC güc adapteri və məhdudlaşdırıcı bir cərəyanla gəlir. Ancaq sıfırdan bir şey etmək yaxşı olardı.

Bir LED açmaq üçün əsaslardan biri cərəyanı məhdudlaşdıran bir dövrədir. Bu, cərəyan üçün bir vana kimi işləyir, belə ki, LED -ə verilən gərginlik onu keçirici hala gətirdikdə, LED -lərdən keçən cərəyan, dövrə tərəfindən tənzimlənəndən böyük ola bilməz. LED -lərin həddindən artıq istiləşməsi nəticəsində baş verir. Bir neçə saniyə ərzində LEDləri yandırmaq üçün etibarlı bir cərəyan məhdudlaşdırma dövrəsi yoxdur. Yeri gəlmişkən, LED çipləri alüminium çərçivəyə qoyaraq, soyuducuya LED çipini azaldır və ümumiyyətlə tövsiyə olunur.

2015 -ci ildə bunu öyrənərkən başımı çox cızırdım və hələ də başımı cızırdım (müxtəlif səbəblərdən). Bu dərslikdən öyrəndim və onun açıq izahı mənə bəzi ləkələri xilas etdi.

Dövrə bağlıdır. Qalın xətlər əsas yük marşrutunu, daha incə olanlar isə təxminən 150 mA olan əsas marşrutun cərəyanını idarə etmək üçün idarəetmə mexanizmini göstərir. Vikipediyada qısa bir məqalə və bəzi istinadlar əlavə edilmişdir. Cari məhdudiyyət, MOSFET -in BD135, BD139 kimi orta cərəyan yük tranzistorları ilə əvəz edilməsi ilə bir tranzistorla qurula bilər.

Addım 2: Fənər hazırlayın

Fənər hazırlayın
Fənər hazırlayın
Fənər hazırlayın
Fənər hazırlayın
Fənər hazırlayın
Fənər hazırlayın
Fənər hazırlayın
Fənər hazırlayın

Lazım olan hissələr:

  1. bir N-kanallı MOSFET (IRF540N $ 1.62/10 ədəd, 30N06, $.1.75/10 ədəd)
  2. NPN tranzistoru (S8085 kimi)
  3. 3.9 ohm - 2W müqavimət, cərəyan 0.6/3.9 = 153mA ətrafında məhduddur
  4. 100kR (1/4W) müqavimət
  5. Bir basma kilidi açarı
  6. Burada 0.5W 8mm LED, $ 3.18/100 ədəd var
  7. 18660 Lityum batareya. Onlardan bir neçəsini güc bankından xilas etdim. Laptop batareyası (4, 6, 8 hüceyrə) 18650 hücrədən hazırlanmışdır, lakin buna diqqətlə yanaşır.
  8. 12V lövhəyə qədər 1 təkan, bunun kimi 0,56 dollar
  9. Bunun kimi 1 lityum şarj cihazı, 0,30 dollar

Yuxarıdakı dövrə arasındakı əsas fərq, 5V güc adapteri deyil, gücləndirmə lövhəsi olan bir Lityum batareya (18660) istifadə etməkdir.

Son fotoşəkildə son fənər göstərilir və hər hansı bir mikro USB mənbəyindən (> 1A) doldurulur.

Addım 3: Bu Fənərlə Əşyaların İnterneti?

Bu Fənərlə Əşyaların İnterneti?
Bu Fənərlə Əşyaların İnterneti?
Bu Fənərlə Əşyaların İnterneti?
Bu Fənərlə Əşyaların İnterneti?
Bu Fənərlə Əşyaların İnterneti?
Bu Fənərlə Əşyaların İnterneti?

Bu hissəni üç mərhələyə bölürəm:

  • Abunəçi hazırlayın (bu)
  • MQTT serverini qurun (növbəti addım)
  • və bir Nəşriyyat hazırlayın (növbəti)

Parçalar:

Birincisi, bəli, IOT kimi tanınan bir söz istifadə etdim, amma bu, ESP8266 ilə 2 -ci addımdakı dövrəni istifadə edərək yaxşı bir kombinasiya edə bilər və sonra MQTT metodu ilə işığın intensivliyini idarə edə bilər.

Dövrə üçün hissələr eynidır, istisna olmaqla:

  1. 12V gücləndiricini MT3608 gücləndirmə lövhəsi ilə əvəz edin, 1.92/5 ədəd, bu 18650 batareyanın (təxminən 3.7V) gərginliyini 8 LED -ləri (3 əvəzinə) gücləndirmək üçün 28 V -a qədər artıra bilər.
  2. Şalterdəki itələmə mövqeyi, PWM siqnalı üçün ESP8266-dakı GPIO 1 və ya 2-yə bağlıdır.
  3. ESP8266 01, hər biri 1.68 dollar. Bu kimi
  4. AMS1117 3.3 V, ESP8266 üçün gərginlik tənzimləyicisi, bəzi kondansatörlər
  5. ESP8266, 0,78 dollar/ədəd kimi bir USB modulu

Btw. bu bağlantılar rahatlıq üçündür.

Lehimləmə və yükləmə:

  • Parçaları birlikdə lehimləyin və yuxarıdakı sxemləri istifadə edin. Bəzi əvvəlcədən hazırlanmış 3.3 gərginlik dövrəsi bir az vaxtınıza qənaət edə bilər (bunun kimi $ 1.38/5 ədəd). PCB lövhəsini çevirərkən sancağı xatırlamaqda qarışdım və bəzi AMS1117 gərginlik tənzimləyicisini təmin etdim.
  • Sonrakı. Üçüncü fotoşəkildə olduğu kimi kiçik bir dəyişiklik edin, GPIO 0 -ı GND -ə basıb saxlayın, ESP8266 -nı Flashmode -a daxil etmək üçün tezliklə GND pinli RST Pin -ə vurun.
  • Kodu GitHub -dan bura yükləyin və Arduino IDE -dən istifadə edərək kodu ESP 8266 -ya yükləyin.

Abunəçinin abunə olduğu mövzunu göstərmək üçün xətti vurğuladım. Bu mövzuya göndərilən hər hansı bir mesaj bu mövzunun digər müştərilərinə (abunəçilərinə) ötürüləcəkdir. Bu dövrədəki EPS8266, mövzuya göndərilən JSON mesajını dinləyəcək və Üçüncü kanalda dəyişiklik edildiyi təqdirdə yayılacaq

* bir zamanlar, ESP8266 təqdim olunmadıqda, MOSFET Qapısını yerə endirmək üçün aşağıya doğru bir rezistor (100k) qoya biləcəyimi düşünürdüm. Bu ESP8266 olmadıqda işləyir, lakin ESP8266 ilə müqavimətçi GPIO0 və ya 2 -ni GND -ə çəkərək onları Flash rejiminə keçirir və ya açmır (GPIO2 LOW olduqda). Bu baş verərsə, möhkəm bir yaşıl görəcəksiniz.

Addım 4: MQTT Server qurun

MQTT Server qurun
MQTT Server qurun
MQTT Server qurun
MQTT Server qurun
MQTT Server qurun
MQTT Server qurun
MQTT Server qurun
MQTT Server qurun

MQTT (Message Queuing Telemetry Transport), yayım-abunə üsuluna əsaslanan bir qarışıqlıq protokoludur. MQTT mesajının daxil olub -olmaması barındıran cihaz broker adlanır. Əsl broker kimi, nəşriyyatlar (satıcılar) və abunəçilər (alıcılar) arasında mübadilə aparır. Heç bir pul onları dəyişdirmir. Bunun üçün çoxlu dərsliklər var.

İşdə xülasə. Raspberry Pi bunun üçün ən populyar cihazdır. Frist, MQTT -ni quraşdırın:

sudo apt-get mosquitto mosquitto-clients qurun

MQTT serverinin Raspberry -də iki terminal açaraq işlədiyini yoxlayın, biri birinci sətir, digəri isə sonrakı üçün:

mosquitto_sub -h localhost -"sizin mövzunuz"

mosquitto_pub -t "sizin mövzunuz" -h localost -m "bir şey deyin"

İlk terminalda "bir şey söylə" yazısının göründüyünü görməlisiniz. Valah! İşləyir.

"#" Hər hansı bir mövzunu dinləmək, "mövzunuzu" "#" ilə əvəz etmək üçün istifadə edilə bilər.

İndi kiminsə MQTT serverinizə nəşr etməsini və ya abunə olmasını istəmirsiniz, bunu etmək üçün bir parol təyin etməlisiniz:

cd ~

mosquitto_passwrd -c pwfile mqtt_user

mqtt_user, istədiyiniz digər istifadəçi adları ola bilər, şifrəni iki dəfə daxil edin və.conf faylını yeniləyin:

sudo nano /etc/mosquitto/mosquitto.conf

bu iki sətir əlavə edir:

icazə_anonim saxta

password_file/home/pi/pwfile

sonra ağcaqanadları yenidən başladın:

sudo systemctl ağcaqanadları yenidən başladın

kimi bir şifrə ilə adı daxil edərək test edin:

mosquitto_sub -h localhost -t "mövzunuz" -u "mqtt_user" -P "123456"

mosquitto_pub -h localhost -t "sənin mövzun" -u "mqtt_user" -P "123456" -m "bu təhlükəsizdirmi?"

MQTT əlaqəni rədd edərsə, MQTT xidmətini Linux sisteminin arxa planına qoymaq üçün bunu cəhd edin:

ağcaqanad -d

Bu arayışlara baxmaq üçün yaxşı olduğunu gördüm. Bu gün bu ikisindən bir şey öyrəndim.

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

Addım 5: Bir Nəşriyyat hazırlayın

Nəşriyyat hazırlayın
Nəşriyyat hazırlayın
Nəşriyyat hazırlayın
Nəşriyyat hazırlayın
Nəşriyyat hazırlayın
Nəşriyyat hazırlayın
Nəşriyyat hazırlayın
Nəşriyyat hazırlayın

Bunun üçün mesajı MQTT serverinə ötürmək üçün sadə bir tablosuna düzəldirəm. Gözləmə rejimində LCD saatı göstərir.

Parçalar:

  1. SSD1306 Ekran ekranı, hər biri 2.41 dollar
  2. EPS8266 WEMOS D1 Mini, hər biri 2.53 dollar
  3. Potansiyometr
  4. Bir 4 pinli sürüşmə açarı.
  5. iki ədəd 3 mm LED,
  6. bəzi rezistorlar

Lehimləmə:

İşdə bu terminalın sxemləri:

Kodu yükləyin:

Markalı WEMOS ESP8266 ilə işləmək xoşdur. Yalnız bir mikro USB lazımdır, Arduino IDE flash çipindəki yükləmə düyməsini basın. Kod burada (GitHub):

Mesajı dərc etmək üçün düyməni basaraq yaşıl LED -i yandırın (və qırmızı söndürün), sonra pimi yuxarı sürüşdürün və tənzimləyin və nəhayət mesajı MQTT serverinə basmaq üçün düyməni yenidən basın. İdarəetmə paneli 4 kanala JSON mesajı dərc edə bilər.

Kodun üstünlüyünə baxın (ekran görüntüsü). Göstərici panelinin mesajı itələdiyi mövzu budur və LEDlərimiz JSON mesajından hər hansı bir yenilik görmək üçün çox həvəslidir

Bu barədə. Təlimatın faydalı olacağına ümid edirəm.