Mündəricat:

Arduino əsaslı səsli idarə olunan IOT Relay Switch (Google Home və Alexa dəstəklənir): 11 addım
Arduino əsaslı səsli idarə olunan IOT Relay Switch (Google Home və Alexa dəstəklənir): 11 addım

Video: Arduino əsaslı səsli idarə olunan IOT Relay Switch (Google Home və Alexa dəstəklənir): 11 addım

Video: Arduino əsaslı səsli idarə olunan IOT Relay Switch (Google Home və Alexa dəstəklənir): 11 addım
Video: Arduino Kodu ilə Batareyanın Doldurulması və Boşaltma Nəzarətçisi 2024, Iyun
Anonim
Arduino əsaslı səsli idarə olunan IOT Relay Switch (Google Home və Alexa dəstəklənir)
Arduino əsaslı səsli idarə olunan IOT Relay Switch (Google Home və Alexa dəstəklənir)

Bu layihə Arduino əsaslı, səslə idarə olunan, IOT rölesinin necə qurulacağını izah edir. Bu, iOS və Android üçün bir tətbiqdən istifadə edərək uzaqdan yandırıb söndürə biləcəyiniz, habelə IFTTT -ə bağlaya biləcəyiniz və Google Home və/və ya Alexa istifadə edərək səsinizlə idarə edə biləcəyiniz bir relaydır. Cihaz yaratmaq, tətbiqi bağlamaq və müxtəlif IOT xidmətlərinə qoşulmaq üçün lazım olan bütün addımları əhatə edəcəyik.

Təchizat

  • Wemos D1 Mini Lite ESP8285 (Amazonda bir neçə dollar)
  • Arduino/Raspberry Pi üçün 5V Relay Modulu
  • 2N2222 NPN tranzistor
  • 47K ohm müqavimət
  • 1K ohm müqavimət

Addım 1: Dövrə qurun

Dövrə qurun
Dövrə qurun
Dövrə qurun
Dövrə qurun
Dövrə qurun
Dövrə qurun

İlk addım dövrə tel bağlamaqdır. İstifadə etdiyinizə görə bir şematik və ənənəvi bir bağlama diaqramı daxil etdim. İlk dövrəmi prototipləşdirmə çörək taxtasında etdim və daha daimi bir quruluş üçün PCB -yə köçürdüm və 3D çaplı bir layihə qutusuna yerləşdirdim.

Röle, opto-təcrid olunmuş H/L 5V rölesidir, yəni tətik dövrəsi rölin aktivləşdirilməsindən optik olaraq təcrid olunur, bu da röledən geri Wemos mikro nəzarətçisinə olan geribildirimlə hər hansı bir potensial problemi aradan qaldırır. Sahib olmaq üçün gözəl bir təhlükəsizlik. İkincisi, yüksək/aşağı keçidlidir, yəni şəkillərdə gördüyünüz sarı tullanan siqnalı yüksək olduqda (+5V) və ya siqnal aşağı olduqda tetikleyerek (0V) hərəkət etdirərək konfiqurasiya edilə bilər.. Wemosun özü rəqəmsal pinlərindən 3.3V göndərir və tetik mənbəyimiz olaraq D1 -dən istifadə edirik, yəni röleyi işə salmaq üçün +5V rəqəmsal siqnalına yaxınlaşmaq üçün onu bir qədər gücləndirməliyik. Alternativ olaraq bir 3.3V rölesi istifadə edə və dövrədəki tranzistor gücləndirici komponentini aradan qaldıra və birbaşa D1 -dən rölin siqnal pininə keçə bilərsiniz. 3.3V röleyim yox idi, buna görə daha çox yayılmış 5V rölesi və gücləndirici dövrə istifadə edirik.

Röleydəki DC+ və DC-, röleyi idarə etmək üçün lazım olan gərginliyi təmin edən Wemosun 5V və GND pinlərinə qoşulur. Röle kiçik gərginliklərdən bütün xətt gərginliyinə qədər qiymətləndirilir, amma bunu aşağı gərginlikli bir kabel tətbiqini idarə etmək üçün istifadə edirəm. Bunu xəttin gərginliyini idarə etmək üçün istifadə edirsinizsə, nə etdiyinizi bildiyinizə, ixtisaslı olduğunuza və müvafiq tədbirləri gördüyünüzə əmin olun. Əks təqdirdə, xətt gərginliyi tətbiqlərini idarə etmək üçün bunu istifadə etməyin.

Wemosdakı Pin D1, NPN tranzistorunun bazasına daxil olan 47K ohm müqavimətinə bağlanır. Emitent yenidən yerə bağlanır. Kollektor, röledəki siqnal girişinə bağlıdır. Röle aşağı tetiklenmeye qurulmuşdur, buna görə D1 siqnal verərkən, 3.3v siqnalı təxminən 5V -ə qədər gücləndirilir və röle açıqdır. D1 aşağı düşdükdə, röle siqnalı azalır və röleyi bağlayır və bir dövrə tamamlayır.

Çörək taxtasının prototipində müvəqqəti dövrəmin şəkillərini çəkməyi unutmuşam, amma faydalıdırsa, yuxarıdakı Fritzing diaqramına bənzəyirdi. İstifadə etdiyim xüsusi komponentlər haqqında bəzi fikirlərə ehtiyacınız və ya görünmə ehtiyacınız olduğu təqdirdə, necə bağlandığını görə biləcəyiniz üçün son daimi dövrə şəkillərini əlavə etdim.

Addım 2: Wemos proqramlaşdırılması - Baxış

Wemos haqqında bəyəndiyim şeylərdən biri də eyni IDE -dən istifadə edərək Arduino kimi proqramlaşdırıla bilməsidir. Burada bir neçə addım olsa da.

  1. Wemos sürücülərini kompüterə quraşdıraraq Wemos ilə danışa bilərsiniz
  2. Wemos lövhəsinin mövcud olması üçün Arduino IDE -ni yeniləyin
  3. Hər şeyin düzgün işlədiyinə əmin olmaq üçün sürətli bir "Göz qırpma" testi edin
  4. Blynk ilə qurun (qarışıq olduğunu bilirəm, amma əslində "göz qırpma testindən" fərqlidir)
  5. Blynk -dən bir tətbiq kodu alın
  6. Wemos/Arduino kodunu Blynk məlumatı ilə yeniləyin
  7. Kodu Wemos qurğunuza yükləyin.

Addım 3: Wemosun Proqramlaşdırılması - Sürücülərin Qurulması

Wemos proqramlaşdırılması - Sürücüləri quraşdırın
Wemos proqramlaşdırılması - Sürücüləri quraşdırın

Bura daxil olun (bu bağlantı vaxtaşırı dəyişir, onu yeniləməyə çalışacağam):

www.wemos.cc/en/latest/ch340_driver.html

Və OS üçün doğru sürücü paketini yükləyin. Sonra zipi bir qovluğa çıxarın və quraşdırmaq üçün "SETUP" tətbiqini işlədin.

Bunu ilk dəfə etdiyim zaman, quraşdırılmaması ilə bağlı qəribə bir səhv aldım. Başqasının bu və onun həlli ilə bağlı qeydini gördüm ki, bu da mənim üçün işləyib. Beləliklə, bir səhv alsanız, "Sil" düyməsini istifadə etməyə çalışın və sonra "Quraşdır" ı yenidən istifadə edin. Ümid edirəm ki, bu mənim üçün olduğu kimi məsələni aydınlaşdıracaq.

Addım 4: Wemos proqramlaşdırılması - Arduino IDE -ni yeniləyin

Wemos proqramlaşdırılması - Arduino IDE -ni yeniləyin
Wemos proqramlaşdırılması - Arduino IDE -ni yeniləyin
Wemos proqramlaşdırılması - Arduino IDE -ni yeniləyin
Wemos proqramlaşdırılması - Arduino IDE -ni yeniləyin
Wemos proqramlaşdırılması - Arduino IDE -ni yeniləyin
Wemos proqramlaşdırılması - Arduino IDE -ni yeniləyin

Arduino IDE -ni yükləməmisinizsə, indi bunu etmək üçün yaxşı vaxtdır. Www.arduino.cc saytından yükləyə bilərsiniz

Burada bu addımda nə edəcəyimizə dair bir istinad var.

wiki.wemos.cc/tutorials:get_started:get_st…

  1. Arduino IDE -də bir seçim olaraq görünməsi üçün yeni lövhəni quraşdıraq. Addım 2 - 4, aşağıdakı github səhifəsindəki quraşdırma bələdçisindən alınmışdır.

    github.com/esp8266/Arduino

  2. Arduino IDE -ni işə salın və Tercihlər pəncərəsini açın.
  3. Əlavə İdarə Heyəti URLləri sahəsinə "https://arduino.esp8266.com/stable/package_esp8266com_index.json" daxil edin. Onları vergüllə ayıraraq birdən çox URL əlavə edə bilərsiniz.
  4. Alətlər> İdarə Heyəti> Kartlar Meneceri (yuxarıda) bölməsindən İdarə Heyətini açın, "esp8266" axtarın və siyahıda göstərilən esp8266 platformasını quraşdırın.
  5. Bu nöqtədə Alətlər → İdarə Heyətində Wemos lövhələrini görəcəksiniz: xxx Wemos D1 Mini seçin. Mənim vəziyyətimdə, şəkildən də gördüyünüz kimi, konkret ad "LOLIN (WEMOS) D1 R2 & mini" idi.
  6. Kompüterlə Wemos arasında bir USB kabeli bağlayın
  7. Alətlər menyusunda "Limanın" indi aktiv olduğunu və düzgün göründüyünü təsdiq edin.

Addım 5: Wemosun Proqramlaşdırılması - Blink Testi

Wemos proqramlaşdırılması - Blink Testi
Wemos proqramlaşdırılması - Blink Testi

Daha irəli getməzdən əvvəl, Wemos lövhəsi ilə əlaqə qura biləcəyimizdən və hər şeyin yaxşı göründüyündən əmin olmalıyıq. Bunun ən asan yolu USB kabelini bağlamaq və sadə bir proqramı Wemos -a itələməkdir. Blink ən asan nümunədir və yeni lövhələrlə işləyərkən məni çox əziyyətdən xilas etdi, bunu həmişə birinci etdim.

  1. Gedin: Fayl> Nümunələr> ESP8266> Wemos cihazı üçün yanıb -sönmək eskizini yükləyin və yükləyin
  2. Eskizi tərtib edin və yükləyin

Mavi LED saniyədə bir dəfə yanıb -sönməyə başlayırsa, növbəti addıma keçmək yaxşıdır! Əks təqdirdə, geri qayıdın və əvvəlki addımları həll edin. Sürücülərdə və idarə heyətində bir problemin olub olmadığını yoxlayın. ESP8266 üçün lövhə paketi ilə bağlı bəzi problemlər yaşadım və baş verən versiyalarla qəribə bir şey olduğuna görə onu tamamilə silmək və yenidən qurmaq məcburiyyətində qaldım. Təslim olmayın və internet axtarışları sizin dostunuz ola bilər!

Hər şeyin yaxşı olduğunu düşünərək növbəti addıma keçin.

Addım 6: Wemos proqramlaşdırılması - Blynk qurulması

Wemos proqramlaşdırılması - Blynk qurulması
Wemos proqramlaşdırılması - Blynk qurulması
Wemos proqramlaşdırılması - Blynk qurulması
Wemos proqramlaşdırılması - Blynk qurulması
Wemos proqramlaşdırılması - Blynk qurulması
Wemos proqramlaşdırılması - Blynk qurulması

Bu növbəti addımlarda, Blynk ilə bir hesab açmalı və yaratdığımız dövrəni idarə etmək üçün istifadə etməyimiz üçün bir işarə almalıyıq.

  1. Tətbiqi yükləyin və hesab yaradın (pulsuzdur)
  2. Yeni bir layihə yaradın
  3. Cihaz Seçin altında Avadanlıq olaraq Wemos D1 seçin
  4. Layihəyə bir ad verin və bağlayıcı növünü WiFi olaraq saxlayın
  5. Layihə Yarat düyməsini basın
  6. Bu zaman Blynk hesabınızı yaratdığınız zaman istifadə etdiyiniz e -poçt ünvanına Auth Token e -poçtla göndəriləcək. Bunu sonraya saxla, növbəti addımda dəyərləri eskizə daxil edəcəyik.
  7. Boş kətan ekranına gəldikdə, sola sürüşdürün və widget menyusunu alacaqsınız. Layihəyə "düymə" əlavə etmək üçün "Düyməni" seçin
  8. Düyməni seçin və sonra Pin düyməsini vuraraq konfiqurasiya edin və "Digital" və "D1" ni pi olaraq seçin və "Ok" düyməsini basın.
  9. Bu zaman hər şey hazır olmalıdır. Bunu aktiv etmək üçün yuxarı sağdakı üçbucaq simgesini seçmək istərdiniz, ancaq eskizi yükləyib konfiqurasiya edənə qədər hələ işləməyəcək, bu da növbəti addımdır!

Addım 7: Wemosun Proqramlaşdırılması - Blynk Kitabxanasının Qurulması

Blynk əsaslı bir eskiz yükləyə bilmək üçün kitabxanalarını quraşdırmalıyıq. Detalları burada tapa bilərsiniz.

github.com/blynkkk/blynk-library/releases

Ayrıca, bəzi məlumat üçün əsas veb saytına buradan baxın (https://blynk.io/en/getting-started)

Əvvəlcə bu mənim üçün qarışıq idi, amma səsləndiyimdən daha asandır. Yalnız Arduino qovluğuna açın. Mənim üçün bu / user / Documents / Arduino -da idi. Orada artıq "kitabxanalar" adlı bir qovluq var idi. Zip faylında "kitabxana" və "alətlər" qovluğu var. Arduino qovluğuna açdığınız zaman, məzmununu kitabxanalara əlavə edir və hələ də mövcud deyilsə alətlər yaradır.

Addım 8: Wemos - Sketch proqramlaşdırılması

Bu nöqtədə demək olar ki, işimiz bitdi. Eskiz olduqca sadədir, birbaşa Blynk -dəndir və əsasən Blynk xidmətini və lövhəni birləşdirir. Onların qurucusundan burada istifadə edə bilərsiniz:

examples.blynk.cc/?board=WeMos%20D1&shield=ESP8266%20WiFi&example=Widgets%2FTerminal

Və ya sizin üçün işləməli olan bu nümunəni istifadə edə bilərsiniz. Doğrulama tokeninin dəyərlərini və wifi şəbəkəniz üçün etimadnamənizi dəyişdirdiyinizə əmin olun.

/*************************************************************

Ən son Blynk kitabxanasını buradan yükləyin: https://github.com/blynkkk/blynk-library/releases/latest Blynk, Arduino, Raspberry Pi və bənzərlərini İnternet üzərindən idarə etmək üçün iOS və Android tətbiqləri olan bir platformadır. Sadəcə widgetları sürükləyərək buraxaraq bütün layihələriniz üçün qrafik interfeyslər qura bilərsiniz. Yükləmələr, sənədlər, dərslər: https://www.blynk.cc Sketch generatoru: https://examples.blynk.cc Blynk icması: https://community.blynk.cc Bizi izləyin: https://www.fb. com/blynkapp Blynk kitabxanası MIT lisenziyası altında lisenziyalıdır Bu nümunə kod ictimai malıdır. ************************************************ *********** WidgetTerminal obyektindən istifadə edərək istənilən məlumatı göndərə/ala bilərsiniz. Tətbiq layihəsinin qurulması: Virtual Pin V1 -ə əlavə edilmiş terminal vidceti ************************************* **********************//*Çapları deaktiv etmək və yerdən qənaət etmək üçün bunu şərh edin*/ #define BLYNK_PRINT Serial #include #include // Doğrulama əldə etməlisiniz Blynk Tətbiqində Token. // Layihə Ayarlarına gedin (qoz işarəsi). char auth = "YourAuthToken"; // WiFi etimadnaməniz. // Açıq şəbəkələr üçün şifrəni "" olaraq təyin edin. char ssid = "Şəbəkə Adınız"; char pass = "Şifrəniz"; // Virtual Pin V1 WidgetTerminal terminalına (V1) virtual serial terminal əlavə edin; // Terminaldan aparatınıza əmrlər göndərə bilərsiniz. Yalnız Terminal Vidjetinizlə eyni Virtual Pin istifadə edin // BLYNK_WRITE (V1) {// Terminal Vidjetinə "Marco" yazsanız cavab verəcək: "Polo:" if (String ("Marco") == param.asStr ()) {terminal.println ("Dedin: 'Marko'"); terminal.println ("Dedim: 'Polo'"); } başqa {// geri göndər terminal.print ("Dedin:"); terminal.write (param.getBuffer (), param.getLength ()); terminal.println (); } // Hər şeyin terminal.flush () göndərildiyindən əmin olun; } void setup () {// Debug console Serial.begin (9600); Blynk.begin (auth, ssid, pass); // Ayrıca server təyin edə bilərsiniz: //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80); //Blynk.begin(auth, ssid, pass, IPAddress (192, 168, 1, 100), 8080); // Bu, Blynk Software versiyasını Terminal Vidjetinə yazdıracaq: // avadanlığınız Blynk Server terminal.println (F ("Blynk v" BLYNK_VERSION ": Cihaz başladı")); terminal.println (F ("-------------")); terminal.println (F ("Marko 'yazın və cavab alın və ya yazın")); terminal.println (F ("başqa bir şey və onu geri çap etmək.")); terminal.flush (); } boşluq döngəsi () {Blynk.run (); }

Addım 9: Wemos proqramlaşdırılması - Son addım

Image
Image

Eskiz yükləndikdən sonra eskizi tərtib edin və yükləyin və quruluşunuzu sınamağa hazır olmalısınız!

Blynk tətbiqini açın, Wemos Layihəniz üçün sağ üst küncdəki üçbucağı basın

Sonra düyməni basın! Röleyi tıkladığınızı eşitməlisiniz və relay lövhəsindəki vəziyyət LEDləri rölin vəziyyətinin dəyişdiyini göstərir.

İndi röleyi sadə bir keçid tələb edən hər hansı bir aşağı gərginlikli tətbiqə qoşa və Blynk tətbiqinizdən idarə edə bilərsiniz. Etməyimiz lazım olan son şey IFTTT bağlamaq və Blynk sistemini idarə etmək üçün Google və ya Alexa istifadə etməkdir, buna görə də bunu Blynk tətbiqimizdən etmək məcburiyyətində deyilik.

Addım 10: IFTTT və Google Home və ya Alexa ilə Blynk -ə nəzarət

IFTTT ilə tanışlığınız olduğunu düşünürəm. Əks təqdirdə, IFTTT -dən necə istifadə etməyi və istifadə etməyi öyrənməyinizə kömək edəcək əla dərslər var. Çox güclüdür və artıq tanış deyilsinizsə öyrənmək istədiyiniz bir şeydir.

  1. IFTTT -də yeni bir tətbiq yaradın
  2. "Əgər bu" olaraq Google köməkçisini seçin və tetikleyici olaraq "sadə bir ifadə" istifadə edin. Mənim üçün, bu şöminəni açacağım və ya söndürəcəyim üçün ifadəm "şömini aç" idi.
  3. "Sonra O" hissəsi üçün Webhooks axtarın və istifadə edin
  4. "Veb sorğusu et" seçin
  5. İstifadə etmək istədiyiniz URL üçün:

    "https://blynk-cloud.com/XXXXYYYZZZZ/update/d5?value=1"

  6. Metodu GET -ə, məzmun növünü urlcoded olaraq təyin edin və BODY -u boş qoyub saxlaya bilərsiniz.

Bir neçə dəqiqə gözləyin və sonra davam edin və ifadənizi Google ev cihazınızla sınayın. Hazır olduğum üçün təxminən iki dəqiqə çəkdiyini gördüm.

DİQQƏT: burada diqqət etməli olduğunuz başqa bir şey. API zəngimdə "d5" istifadə etdiyimə diqqət yetirin, ancaq lövhədə D1 pininə qoşuldum. GPIO pin nömrələnməsinin və lövhədə çap olunmuş ekran nömrələrinin eyni olmadığını başa düşməyim təxminən bir gün çəkdi. Doğrudan URL zəngləri ilə dəyərləri dəyişdirdikdən və volt ölçən ilə fərqli pinlərdə gərginliyi sınadıqdan sonra, API vasitəsilə d1 -ə edilən zəngin gərginliyi dəyişdirdiyini, ancaq lövhədəki D1 -də olmadığını fərq edə bildim. d5/GPIO 5 əslində lövhədə D1 -ə uyğun gəlirdi. Bu tənzimləməni etdikdən sonra hər şey gözəl işləyir!

Alexa -nı bağlamaq Google evinə bənzəyir, bunun əvəzinə IFTTT -də Alexa xidmətindən istifadə edir.

Addım 11: Nəticə

Bu nöqtədə, Wemos D1 mini lite istifadə edərək işləyən səslə idarə olunan IOT rölesiniz olmalıdır. Zövq alın və uğurlar!

Yenə də elektrik təhlükəlidir, buna görə də müvafiq tədbirləri alın və ixtisaslı deyilsinizsə, xahiş etməyin.

Tövsiyə: