Mündəricat:
- Addım 1: Komponentlərin toplanması
- Addım 2: Kitabxanamızı quraşdırın
- Addım 3: Lazımi kitabxanaların quraşdırılması
- Addım 4: Modulun yığılması
- Addım 5: Parlaqlıq Modulu Eskizinin Yazılması
- Addım 6: AtHome Modulumuzu sınayın
- Addım 7: Modul üçün Dava Yarat
Video: AtHome ilə bir Parlaqlıq Modulu qurun: 7 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
AtHome, Epitech-dən AtHome qrupu tərəfindən hazırlanan, bir smartfon tətbiqini və bir veb tətbiqini qidalandırmaq üçün istifadə olunan bir API-ni ortaya qoyan bir neçə fərdi sensor modulunun əlaqəli bir həllini inkişaf etdirməyi hədəfləyən tam açıq qaynaq və açıq proqram tələbə layihəsidir. Modullar bir evin daxili mühitini izləyir və istifadəçiyə yaşıldan (yaxşıdan) qırmızıya (pisə) qədər vizual rəy verə bilir və ötürülən məlumatlar istifadəçi tərəfindən modulun ardıcıl əlaqəsi və ya istifadə edirsinizsə tətbiqlərimiz.
Bu layihə hələ də aktiv inkişaf mərhələsində olsa da, modullarımızın əsas funksiyaları artıq hazırdır və xüsusi modulların hazırlanması üçün guya istifadəsi asandır. Beləliklə, bu parlaqlıq modulu nümunəsi ilə öz sadə modulunuzu necə quracağınızı görməyi təklif edirəm.
Bu modullar əsasən Arduino ilə uyğun bir lövhə (axın, Wire və UART axını dəstəyi olduğu müddətdə qismən bir Arduino nüvəsi kifayət qədər olmalıdır), bir LED (qırmızı bir və ya RGB) problem olduqda qırmızıya çevrilir. sensor, bir enerji təchizatı (divar enerji təchizatı və ya batareya) və lazerlə kəsilmiş qutu.
Bəli, qətiliklə yeni deyil, bir çox sensör layihəsi var, amma ümid edirik ki, sağlamlıq problemlərinin aşkarlanması, ünsiyyət və məlumatların öz-özünə yerləşdirilən bir serverdə saxlanması və vizualizasiya tətbiqi sizə kömək edəcək. Və ya sadəcə evinizə, sadə layihələrə və ya daha az maraqlı baxmaq istəyirsinizsə:)
Addım 1: Komponentlərin toplanması
Bu layihə üçün AtHome modulunuzu qurmaq üçün bir neçə komponentə ehtiyacınız olacaq:
- 1x Arduino-Uyğun lövhə: Burada bir Arduino UNO istifadə edəcəm (eyni zamanda TI Launchpads və ESP8266 lövhələri kimi digər lövhələrlə də işləyir)
- 1x sensor: TSL2561 parlaqlıq sensoru istifadə edəcəyəm (dəstəklənən sensorların siyahısı kitabxanamızın sənədlərində mövcuddur)
- 1x led: burada bir Grove Zəncirli RGB LEDindən istifadə edəcəyəm (amma eyni zamanda sadə qırmızı led və ya NeoPixel ola bilər)
- Dupont Wires
Uyğun komponentlərin siyahısı layihəmizin sənədlərində mövcuddur.
Addım 2: Kitabxanamızı quraşdırın
Kitabxanamızı qurmaq üçün depomuzdan (daha sonra Arduino IDE siyahısında və PlatformIO -da dərc edəcəyik) bu linklə yükləməlisiniz:
gitlab.com/Woodbox/Framework/-/jobs/artifacts/master/download?job=deploy
Sonra Arduino IDE -ə gedin və "Eskiz> Kitabxanaya Daxil et. ZIP Kitabxanası Əlavə Et …" seçin. Sonra "artifacts.zip" adlı zip faylını seçin və "OK" düyməsini basın.
Addım 3: Lazımi kitabxanaların quraşdırılması
İşləmək üçün kitabxanamızın kompüterinizə başqa kitabxanaların quraşdırılması lazımdır:
- Arkhipenko TaskScheduler kitabxanası
- SEEED Studio Grove Rəqəmsal İşıq Sensor kitabxanası
- SEEED Studio Grove Zəncirli RGB LED kitabxanası
- Adafruit NeoPixel kitabxanası
Onları Arduino IDE kitabxana meneceri vasitəsi ilə "Sketch"> "Kitabxanaya daxil et"> "Kitabxanaları idarə et …" gedərək qura bilərsiniz.
Açılan yeni pəncərədə, ağ axtarış çubuğuna quraşdırmaq istədiyiniz kitabxananın adını yazın, sonra blokunu vurun. "Quraşdır" düyməsi görünəcək, sadəcə üzərinə tıklamalısınız və IDE onu yükləyib sizin üçün quraşdıracaq.
Addım 4: Modulun yığılması
Sensorla başlayaq. TSL2561 -in VCC pinini Arduinonun 5V pininə, sensörün GND pinini Arduinonun GND pinindən birinə və sensorun SDA və SCL sancaqlarına Arduinonun SDA və SCL pinlərinə bir tel vasitəsilə bağlayın.. İndi bitirdiniz!
İndi, Grove Chainable RGB LED -in VCC pinini Arduinonun 5V pininə və LED -in GND pinini Arduinonun ikinci GND -nə bağlayın. Yalnız bir 5V pin olaraq Arduino olsanız, Arduino 5v -ni çörək lövhəsinin + sırasına bağlamaq və bütün komponentlərinizi 5V pinləri bağlamaq və ya bir lent lövhəsi üzərində birləşdirmək üçün bir çörək taxtasından istifadə edə bilərsiniz. wago bağlayıcılarını və ya istədiyiniz hər şeyi istifadə edin. İndi LED -in CI pinini Arduino -nun 7 -ci pininə və LED -inin DI -sini Arduino -nun 8 -ci pininə qoşun. Belə bir LEDiniz yoxdursa, narahat olmayın, Arduino lövhənizin daxili LEDini və ya kodda kiçik bir dəyişikliklə klassik olanı istifadə etmək mümkündür.
Addım 5: Parlaqlıq Modulu Eskizinin Yazılması
Yeni bir eskiz yaradaq və modulumuzun kodunu yazaq.
Eskizin izahı ilə maraqlanmırsınızsa, Arduino IDE -yə kopyalayıb yapışdıra bilərsiniz:
#daxil edin
LightModule istifadə edərək = AtHomeModule; Axın *axınlar = {& Serial, nullptr}; GroveChainableLED:: Sancaqlar grovePins = {7, 8}; GroveChainableLED led (& grovePins); LightModule *modulu = LightModule:: getInstance (); void setup () {// bir dəfə işə salmaq üçün quraşdırma kodunuzu bura qoyun: Serial.begin (9600); modul-> setStreams (axınlar); GroveDigitalLightSensor *lightSensor = yeni GroveDigitalLightSensor (); modul-> setSensor (lightSensor); modul-> setDisplay (& led); modul-> quraşdırma (); } void loop () {// təkrar etmək üçün əsas kodunuzu bura qoyun: module-> run (); }
Bu kodun nə etdiyini başa düşmək istəyirsinizsə, aşağıdakıları oxuya bilərsiniz və ya maraqlanmırsınızsa, birbaşa növbəti addıma keçə bilərsiniz.
Başlamaq üçün eskizin üstünə bu sətir yazaraq kitabxanamızı eskizimizə daxil etməliyik:
#daxil edin
İndi istifadə edəcəyimiz modul obyektinə ləqəb yaratmalıyıq. Bunu komponentlərini dəyişdirmək, işə salmaq, dayandırmaq və s. Şablon tərəfindən hazırlanan bir qutu olduğu üçün (insanlar kimi layihələr üçün istifadə etdiyimiz adi şablon kimi, başlanğıc bazası var və Arduinonun tərtibçisi ona verdiyimiz parametrlərə əsaslanaraq son kodu qurur) bir sensor dəyərini və yaddaşda saxlamaq istədiyimiz sensor dəyərlərinin sayı, adında göstərilmişdir və hər dəfə istifadə etmək istədiyimiz zaman təkrarlanmalıdır. Bir az cansıxıcıdır, buna görə də bu qutunun tam adı ilə yeni bir ad, bir ləqəb əlaqələndirəcəyik.
Məsələn deyək ki, bu qutunun "LightModule" adlandırılmasını istəyirəm, çünki bu işıqlılıq izləmə modulunu tətbiq etmək üçün istifadə ediləcək və eyni anda yalnız 1 dəyər saxlamaq istəyirəm. Parlaqlıq, kompüterlər tərəfindən uint16_t olaraq təmsil olunan TSL2561 sensorumuzla lüksdə ayrılmaz bir növ olaraq təmsil olunur. Ləqəbimiz belə görünəcək:
LightModule istifadə edərək = AtHomeModule;
"istifadə" açar sözü, bir təxəllüs yaratdığımız deməkdir və dərhal sonra verdiyimiz ad "=" simvolundan sonrakı ardıcıllığa uyğundur.
"AtHomeModule", yeni bir ad verdiyimiz bu qutunun əsl adıdır və dəyərin təqdimatını və yaddaşda saxlanılan dəyərlərin sayını təyin edən parametrlər "" arasında qeyd olunur.
İndi, daha sonra "AtHomeModule" adını istifadə edəcəyimiz zaman, Arduino bunun "AtHomeModule" tam adına aid olduğunu biləcək.
Qutunuzun 1 deyil, 5 dəyərini yaddaşda saxlamasını istəyirsinizsə, sadəcə "1" in yerini "5" qoymalısınız və Arduino sizin üçün istədiyiniz şeyi edə biləcək fərqli bir qutu yaradacaq. Ancaq unutmayın ki, modul, sensorun 5 dəyərini təsirli bir şəkildə ölçmək üçün vaxt tapmadan dəyərlərini göndərmək üçün proqramlaşdırılmışsa, son yüklənmədən bəri yalnız yeni dəyərlər göndərdiyi üçün 5 ədədinin göndərildiyini görməyəcəksiniz.
Ardından, ünsiyyət üçün istifadə olunan Arduino axınlarında, həmişə keyworkd "nullptr" ilə sona çatan göstəricilərdən ibarət bir sıra göstərici yaratmalıyıq. Burada, yalnız USB portu ilə kompüterlə əlaqə quran Arduinonun "Serial" axını istifadə edirəm, buna görə də serial belə görünür:
Axın *axınlar = {& Serial, nullptr};
"*" Simvolu, növün bir göstəricidir (elementin özü deyil, elementin yeri) deməkdir və "" mötərizəsi Arduinoda bir sıra olduğunu bildirir, buna görə birdən çox dəyər qoya bilərik.
Sonra LED -lərimizi yaratmalıyıq. Bunun üçün aşağıdakı iki sətri yazmalıyıq;
GroveChainableLED:: Sancaqlar grovePins = {7, 8};
GroveChainableLED led (& grovePins);
Grove RGB LED -iniz yoxdursa, amma yenə də vizual rəy almaq istəyirsinizsə, bunu eskizdə sadə bir dəyişikliklə edə bilərsiniz. Əvvəlki iki sətri bu sətirlə əvəz edin:
Monoxromatik LED led (LED_BUILTIN);
Bu konfiqurasiyada, yaşıl rəngli daxili LED, izlənilən dəyər sağlamlığa uyğun olduğu müddətdə yanacaq və əlaqəsi kəsildikdə sönəcək. Bağlanmadığı zaman açılmasını istəsəniz (məsələn, pin 13 -də yaşıl deyil, qırmızı LED istifadə edirsiniz) bunun əvəzinə bu xətti istifadə edə bilərsiniz:
Monoxromatik LED led (LED_BUILTIN, doğru);
Növbəti addım modulumuzun özünü yaratmaqdır. "GetInstance" metodunu çağıraraq, yaddaşdakı yerini ilk dəfə əldə etdiyimiz zaman belə edilir:
LightModule *modulu = LightModule:: getInstance ();
Arduino eskizlərində hər zamanki kimi "Serial" limanını işə salmaqla başlayaraq Arduinonun "setup ()" funksiyasındakı parametrləri təyin etməliyik:
Serial.begin (9600);
Bu sətri yazaraq işıq sensoru yaradırıq:
GroveDigitalLightSensor *lightSensor = yeni GroveDigitalLightSensor ();
Ardından modulumuza Arduino Stream üzərindəki göstəricilərimizdən istifadə edərək onlarla ünsiyyət qurmasını söyləyirik:
modul-> setStreams (axınlar);
Modulumuza, modulun olduğu yerdəki işıq intensivliyini izləmək üçün işıq sensorumuzdan istifadə etməsini də söyləyirik:
modul-> setSensor (lightSensor);
Modulumuza bizə vizual rəy vermək üçün LED -dən istifadə etmələrini söyləyirik:
modul-> setDisplay (& led);
Nəhayət, modulumuza öz "quraşdırma" funksiyasını çağıraraq etməsi lazım olan hər hansı bir daxili konfiqurasiyanı etməyə hazır olduğunu söyləyirik:
modul-> quraşdırma ();
Son addımımız, bu xətti "loop" funksiyasına yazaraq Arduinonun "loop" funksiyasının hər bir təkrarında çağırılmaq üçün nəzərdə tutulmuş modulumuzun "run ()" funksiyasını çağırmaqdır:
modul-> run ();
İndi eskizimiz nəhayət Arduinoya yükləməyə və modulumuzu sınamağa hazırdır!
Addım 6: AtHome Modulumuzu sınayın
Eskizi Arduinoya yükləmək üçün "Alətlər"> "Liman"> "[COMx və/dev/x] (Arduino/Genuino UNO)" bölməsinə keçərək Arduino UNO lövhənizi seçin.
Son olaraq, eskizi lövhənizə yükləmək üçün "Yüklə" düyməsini (sağa baxan oxu olan dairə düyməsini, alət çubuğunun ikinci simgesini) vurun.
Tamamlandı! İndi modul işləməlidir və Arduinonun Serial Monitorunda görünən dəyərləri kompüterinizə göndərməlidir. "Alətlər" menyusunda Arduinonun "Serial Monitorunu" açaraq yoxlaya bilərsiniz və bu addımın ikinci başlıq şəklinə bənzər bir çıxışınız olmalıdır:)
Addım 7: Modul üçün Dava Yarat
Modulunuz üçün 3 mm kontrplak lövhədə lazerlə kəsərək sadə bir qutu korpusu qura bilərsiniz.
Qutu qutularımızı düzəltmək üçün, sonradan fərdiləşdirdiyimiz ölçülərdə şablon hazırlamaq üçün makercase istifadə edirik. Bu addıma əlavə edilmiş parlaqlıq modulunun svg faylını tapa bilərsiniz.
Sonra üzləri bir -birindən başqa bir -birinə yapışdırın ki, sonra aça biləsiniz, dövrə daxil edəsiniz və LED -i korpusun çuxuruna yapışdırasınız (çuxuru doldurmaq üçün şəffaf lentdən istifadə edirik və LED -in önünə yapışdırırıq. ondan).
İndi Arduino -nu gücləndirmək üçün bir batareya əlavə edin, korpusu bağlayın və modulunuz hazırdır və yaxşı görünməlidir:)
Tövsiyə:
Menyu və Parlaqlıq Nəzarəti ilə M5StickC Sərin Görünən Saat: 8 addım
Menyu və Parlaqlıq İdarəçiliyi ilə M5StickC Sərin Görünüşlü Saat: Bu təlimatda ESP32 M5Stack StickC -ni Arduino IDE və Visuino ilə LCD -də bir vaxt göstərmək üçün necə proqramlaşdırmağı öyrənəcəyik, həmçinin menyudan və StickC düymələrindən istifadə edərək vaxtı və parlaqlığı təyin edəcəyik. Bir nümayiş videosuna baxın
Raspberry Pi -də Shinken Şəbəkə Monitorunu Qurun və Qurun: 14 Addım
Raspberry Pi -də Shinken Şəbəkə Monitorunu Qurun və Qurun: QEYD: shinken sonuncu dəfə MAR2016 -da 2.4.3 sabit bir versiyası olaraq yeniləndi. Beləliklə, bir neçə il əvvəl ev şəbəkəsi monitorinqinin başqa yollarına keçdim. Əlavə olaraq, php5 -in mövcud olmadığı görünür, buna görə də bu təlimatı istifadə etməyin
WiFi ilə DIY Özünü sulayan bir qazan qurun - Avtomatik olaraq bitkiləri sulayır və Su az olduqda xəbərdarlıq göndərir: 19 addım
WiFi ilə DIY Özünü Suvarma Tenceresi qurun - Avtomatik olaraq bitkiləri suya çəkir və Su az olduqda xəbərdarlıq göndərir: Bu təlimat köhnə bir bağ əkinçisindən, zibil qutusundan, bir az yapışqan və özünü istifadə edərək, WiFi ilə əlaqəli öz -özünə suvarma qurğusunun necə qurulacağını göstərir. Adosia -dan Sulama qabı alt montaj dəsti
Parlaqlıq İdarəetmə ilə 24 Vatt LED Grow Light: 8 Addım (Şəkillərlə)
Parlaqlıq İdarəetmə ilə 24 Vatt LED Grow Light: Qida yetişdirmək ən çox sevdiyim hobbilərimdən biridir, çünki üzvi qidaların və sağlam qidalanmanın böyük bir pərəstişkarıyam. Bu Təlimat, artan ehtiyaclarınıza uyğun olaraq qırmızı/mavi parlaqlıq tənzimləyiciləri olan bir LED böyüdücü işığın necə qurulacağını sizə göstərəcək
Xətti Parlaqlıq Əyri ilə Ayrı -ayrı Alternativ Analog LED Fader: 6 Addım (Şəkillərlə)
Xətti Parlaqlıq Əyri ilə Ayrı -ayrı Alternativ Analog LED Fader: Bir LED -in solmasına/sönməsinə səbəb olan sxemlərin əksəriyyəti bir mikro nəzarətçinin PWM çıxışını istifadə edərək rəqəmsal sxemlərdir. LED -in parlaqlığı PWM siqnalının iş dövrünün dəyişdirilməsi ilə idarə olunur. Tezliklə, vəzifə dövrünü xətti olaraq dəyişdirərkən