Mündəricat:

RGB İstilik Göstəricisi (XinaBox ilə): 5 Addım (Şəkillərlə)
RGB İstilik Göstəricisi (XinaBox ilə): 5 Addım (Şəkillərlə)

Video: RGB İstilik Göstəricisi (XinaBox ilə): 5 Addım (Şəkillərlə)

Video: RGB İstilik Göstəricisi (XinaBox ilə): 5 Addım (Şəkillərlə)
Video: Zigbee термоголовка Moes TV 01, часть 2 - практическое использование в Home Assistant 2024, Iyul
Anonim
RGB İstilik Göstəricisi (XinaBox ilə)
RGB İstilik Göstəricisi (XinaBox ilə)

Bu rəsmi olaraq ilk Instructables məqaləmdir, buna görə də sınamaq üçün bu fürsətdən istifadə etdiyimi etiraf edəcəm. Platformanın necə işlədiyini, bütün istifadəçi təcrübəsi tərəfini hiss edin. Ancaq bunu edərkən, bu gün üzərində işlədiyim sadə bir layihəni də paylaşmaq imkanından istifadə edə biləcəyimi düşündüm (bu arada "X-in-a-" Qutu").

Bu sadə 5 addımlı təlimatda aşağıdakı mövzuları əhatə edəcəyəm:

  • Lazım olan komponentlər
  • Fərqli xChipləri bir araya gətirmək.
  • Arduino IDE mühitinin qurulması.
  • Kodu yazmaq
  • Və nəhayət, fikri sınamaq

Bu təlimatda paylaşmayacağım şeylər:

  • Bu xChip -lərin hər birinin nə edə biləcəyini və onları müəyyən funksiyaları yerinə yetirmək üçün necə manipulyasiya edə biləcəyinizi izah etməyə çalışmaq nə qədər çox olsa da, bu təlimatlandırmanın məqsədi olmayacaq. Yaxın gələcəkdə XinaBox -un məhsul kataloqu vasitəsi ilə mövcud olan müxtəlif xChip -lərin hər birinə daxil olacaq digər Təlimat kitablarını nəşr etməyi planlaşdırıram.
  • Arduino kodunun əsaslarını öyrənməyəcəyəm, çünki artıq Arduino IDE -dən istifadə təcrübənizin və C/C ++ proqramlaşdırmasının əsas səviyyəsini başa düşdüyünüzü düşünürəm.

Addım 1: Ehtiyacınız olan…

Ehtiyacınız olan…
Ehtiyacınız olan…
Ehtiyacınız olan…
Ehtiyacınız olan…
Ehtiyacınız olan…
Ehtiyacınız olan…

Texniki cəhətdən ən çox məhsul dərsləri ümumiyyətlə "Hello World!" İlə başlayır. məsələn və ya hətta bir nöqtədə Arduino və ya Raspberry Pi ilə işlədiyiniz üçün çox tanış ola biləcəyiniz bir "Blink" nümunəsi. Ancaq bununla başlamaq istəmirəm, çünki hamı artıq eyni şeyi edir, bu da onu bir az cansıxıcı edir.

Bunun əvəzinə praktik bir layihə ideyası ilə başlamaq istədim. İstəyirsinizsə həm kifayət qədər sadə, həm də daha mürəkkəb bir layihə ideyasına çevrilə bilən bir şey.

Ehtiyac duyduğumuz maddələr budur (Təlimat kitabının bu bölməsi üçün təqdim olunan fotolara baxın):

  1. IP02 - Qabaqcıl USB Proqramlaşdırma İnterfeysi
  2. CC03 - Arm Cortex M0+ Core
  3. SW02 - VOC və Hava Sensoru (BOSCH tərəfindən BME680 sensoru istifadə olunur)
  4. xBUS bağlayıcıları - müxtəlif xChips (x2) arasında I2C əlaqəsini təmin etmək
  5. xPDI konnektoru - proqramlaşdırma və ayıklama imkan verir (x1)

Addım 2: Parçaları birləşdirin

Parçaları birləşdirmək
Parçaları birləşdirmək
Parçaları birləşdirmək
Parçaları birləşdirmək
Parçaları birləşdirmək
Parçaları birləşdirmək

Bütün parçaları birləşdirmək üçün əvvəlcə 1 ədəd xBUS konnektoru və xPDI konnektoru ilə başlayacağıq.

Təqdim etdiyim şəkillərdən sonra, xChiplərin istiqamətini və bağlayıcıların hara gedəcəyini qeyd edin.

IP02 və CC03 xChips arasında əlaqə nöqtələrini müəyyən etmək olduqca asandır.

CC03 üçün cənub tərəfi olacaq. IP02 üçün xChip -in şimal tərəfi olacaq.

Bunu etdikdən sonra CC03 xChip -in qərb tərəfinə başqa bir xBUS konnektoru əlavə edəcəyik.

Bitdi?

İndi SW02 xChip -i CC03 -ün qərb tərəfinə bağlayın.

Laptopumuza IP02 daxil etməzdən əvvəl iki açar üçün aşağıdakı seçimlərin seçildiyinə əmin olun:

  • B seçildi (sol keçid)
  • DCE seçildi (sağ keçid)

Nəhayət, indi IP02 -ni dizüstü kompüterimizə daxil etməyə və Arduino IDE qurmağa başlamağa hazırıq.

Addım 3: Arduino IDE qurmaq

Arduino IDE qurmaq
Arduino IDE qurmaq
Arduino IDE qurmaq
Arduino IDE qurmaq

Yenə də bu təlimatlandırıcı kitabda Arduino IDE mühiti ilə tanış olduğunuzu və inkişaf mühitində kitabxanaları necə idarə edəcəyinizi ehtimal etdim.

Bu layihə üçün iki əsas kitabxanaya ehtiyacımız olacaq:

  • arduino-CORE-https://github.com/xinabox/arduino-CORE
  • SW02 kitabxanası -

Hər iki kitabxananı masaüstünüzdəki bir yerə yükləyin.

Sonra Arduino IDE -ni işə salın.

Əsas menyudan "Eskiz"> "Kitabxanaya daxil et"> ". ZIP Kitabxanası əlavə et …" seçin.

Hər iki kitabxana faylı üçün eyni prosesi təkrarlayın.

Sonra, müvafiq "Board" və "Liman" ı seçməliyik. (Diqqət yetirin ki, narıncı bir qutudan istifadə edərək lazımi seçimləri də vurğuladım.

  • Lövhə: "Arduino/Genuino Zero (Native USB Port)"
  • Port: "COMXX" (bu, maşınınızda əks olunan COM portuna uyğun olmalıdır. Mənimkim COM31 istifadə edir)

Tamam! Bilirəm ki, kodlaşdırmaya keçmək istəyirdiniz, buna görə də növbəti addımda diqqət edəcəyimiz şey budur.

Addım 4: Kodlaşdırma vaxtı

Bu bölmədə, tamamlanmış layihə kodundan kod parçalarını paylaşaraq başlayacağam. Və sonunda, Arduino IDE mənbə sənədinizə kodu kopyalayıb yapışdırmağınızı asanlaşdıraraq tam mənbəni dərc edəcəyəm.

Başlıq faylları:

#include /* Bu, əsas XinaBox Core Functions üçün kitabxanadır. */

#include /* Bu VOC və Hava Sensoru xChip üçün kitabxanadır. */

RGB Led Siqnallarını idarə etmək üçün bəzi sabitlərin təyin edilməsi:

#redLedPin A4 təyin edin

#yaşılLedPin 8 təyin edin #maviLedPin 9

Sonra, RGB dəyərlərini ötürmək üçün bir funksiya prototipini elan etməliyik

boşluq setRGBColor (int redValue, int greenValue, int blueValue);

SW02 obyektinin elan edilməsi:

xSW02 SW02;

Setup () metodu:

boş quraşdırma () {

// I2C Communication Wire -ı işə salın.begin (); // SW02 Sensorunu işə salın SW02.begin (); // Sensorun gecikməni normallaşdırması üçün gecikmə (5000); }

İndi əsas döngə () üçün:

boşluq döngəsi () {

float tempC; }

Bundan sonra, sensor çipi ilə ünsiyyətə başlamaq üçün proqramın əvvəlində yaratdığımız SW02 obyektini istifadə edərək sorğu keçirməliyik:

// SW02 sensorundan məlumatları oxuyun və hesablayınSW02.poll ();

İndi sensorun temperatur göstəricisini əldə etmək üçün oxuyuruq

tempC = SW02.getTempC ();

Oxumanı əldə etdikdən sonra, edəcəyimiz son şey, temperatur aralığını təyin etmək üçün əgər… başqa… nəzarət ifadələrindən istifadə etmək və sonra setRGBColor () funksiyasını çağırmaqdır

// İqliminizə uyğun olaraq temperatur aralığını tənzimləyə bilərsiniz. Mənim üçün Sinqapurda yaşayıram

// bütün il boyu tropikdir və burada temperatur aralığı olduqca dar ola bilər. if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); }

Qeyd: Müvafiq RGB dəyərlərinin müəyyən bir rəng üçün nə olduğunu bilmək istəyirsinizsə, "RGB rəng dəyərləri" üçün google axtarışınızı aparmağı məsləhət görürəm. İstədiyiniz rəngi seçmək üçün rəng seçicidən istifadə edə biləcəyiniz çox sayda sayt var

// İstəsəniz və bu isteğe bağlıdırsa, sensorun oxunması üçün sorğu arasında gecikmə də əlavə edə bilərsiniz.

gecikmə (DELAY_TIME);

Əlbəttə ki, proqramın əvvəlində DELAY_TIME sabitini elan edə bilərsiniz, beləliklə, proqramın bir çox yerində deyil, yalnız bir dəfə dəyərini dəyişdirməlisiniz. Nəhayət, RGB LED -ni idarə etmək funksiyasına ehtiyacımız var:

boşluq setRGBColor (int redValue, int greenValue, int blueValue) {

analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

Final Proqramı

#daxil edin

#daxil edin #define redLedPin A4 #define greenLedPin 8 #define blueLedPin 9 boşluq dəstiRGBColor (int redValue, int greenValue, int blueValue); const int DELAY_TIME = 1000; xSW02 SW02; void setup () {// I2C Communication Wire.begin () başlayın; // SW02 Sensorunu işə salın SW02.begin (); // Sensorun gecikməni normallaşdırması üçün gecikmə (5000); } void loop () {// SW02 float tempC -dən oxunan məlumatları saxlamaq üçün dəyişən yaradın; tempC = 0; // SW02 sensorundan məlumatları oxuyun və hesablayın SW02.poll (); // Temperatur dəyişkən tempC = SW02.getTempC () -də temperaturun ölçülməsi və saxlanılması üçün SW02 tələb edin. if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); } // Sensor arasındakı gecikmə oxuma gecikməsi (DELAY_TIME); } void setRGBColor (int redValue, int greenValue, int blueValue) {analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

Proqramımız hazır olduqdan sonra xChip proqramlaşdıraq! Yükləmə prosesi, bir proqramı Arduino lövhələrinə necə yüklədiyiniz ilə eynidır.

İşiniz bitdikdə, niyə elektrik prizindən çıxarıb sınamaq üçün çıxarmayın.

Tövsiyə: