Mundarija:

RGB harorat ko'rsatkichi (XinaBox bilan): 5 qadam (rasmlar bilan)
RGB harorat ko'rsatkichi (XinaBox bilan): 5 qadam (rasmlar bilan)

Video: RGB harorat ko'rsatkichi (XinaBox bilan): 5 qadam (rasmlar bilan)

Video: RGB harorat ko'rsatkichi (XinaBox bilan): 5 qadam (rasmlar bilan)
Video: Простой индикатор уровня температуры 2024, Noyabr
Anonim
RGB harorat ko'rsatkichi (XinaBox bilan)
RGB harorat ko'rsatkichi (XinaBox bilan)

Bu rasman mening "Instructables" maqolasi, shuning uchun men tan olishim kerakki, men hozir bu imkoniyatdan foydalanib, uni sinab ko'raman. Platformaning qanday ishlashini, uning butun foydalanuvchilar tajribasini bilib oling. Ammo men shunday qilayotganimda, men ham hozir ishlayotgan oddiy loyiham ("X-in-a-" deb talaffuz qilingan XinaBox mahsulotlaridan foydalangan holda) bilan bo'lishish imkoniyatidan foydalanishim mumkin deb o'yladim. Quti ").

Bu oddiy 5 bosqichli ko'rsatmali darsda men quyidagi mavzularni qamrab olaman:

  • Kerakli komponentlar
  • Turli xChip -larni bir -biriga ulash.
  • Arduino IDE muhitini sozlash.
  • Kodni yozish
  • Va nihoyat, fikrni sinab ko'rish

Men bu ko'rsatma bilan bo'lishmayman:

  • Men har bir xChips nima qilishi mumkinligi va ularni qanday funktsiyalarni bajarish uchun qanday qilib manipulyatsiya qilish mumkinligini tushuntirishni yaxshi ko'raman, bu maqsadga muvofiq bo'lmaydi. Yaqin kelajakda men XinaBox mahsulot katalogida mavjud bo'lgan har xil xChip -larni o'rganadigan boshqa ko'rsatmalarni nashr qilishni rejalashtirmoqdaman.
  • Men Arduino kodining asoslarini o'rganmayman, chunki sizda Arduino IDE -dan foydalanish tajribasi va C/C ++ dasturlashning boshlang'ich darajasi bor deb o'ylayman.

1 -qadam: Sizga nima kerak …

Sizga nima kerak…
Sizga nima kerak…
Sizga nima kerak…
Sizga nima kerak…
Sizga nima kerak…
Sizga nima kerak…

Texnik jihatdan, mahsulotlarning asosiy darsliklari odatda "Salom dunyo!" Bilan boshlanadi. misol, yoki hatto "Blink" misoli, siz bir paytlar Arduino yoki Raspberry Pi bilan ishlaganingizdan beri sizga tanish bo'lishi mumkin. Lekin men bundan boshlamoqchi emasman, chunki hamma allaqachon bir xil ishni qilmoqda, bu esa uni biroz zerikarli qiladi.

Buning o'rniga, men amaliy loyiha g'oyasidan boshlamoqchi edim. Agar xohlasangiz, etarlicha sodda va yanada murakkab loyiha g'oyasiga aylanadigan narsa.

Bu erda bizga kerak bo'lgan narsalar (ko'rsatmalarning ushbu bo'limi uchun berilgan rasmlarga qarang):

  1. IP02 - Kengaytirilgan USB dasturlash interfeysi
  2. CC03 - Arm Cortex M0+ Core
  3. SW02 - VOC va ob -havo sensori (BOSCH tomonidan BME680 sensori ishlatiladi)
  4. xBUS ulagichlari - turli xChips (x2) o'rtasida I2C aloqasini yoqish uchun.
  5. xPDI ulagichi - dasturlash va tuzatishni yoqish uchun (x1)

2 -qadam: qismlarni ulash

Parchalarni ulash
Parchalarni ulash
Parchalarni ulash
Parchalarni ulash
Parchalarni ulash
Parchalarni ulash

Barcha qismlarni bir -biriga ulash uchun biz avval xBUS ulagichining 1 qismi va xPDI ulagichidan boshlaymiz.

Men taqdim etgan rasmlardan so'ng, xChips yo'nalishi va ulagichlar qayerga ketishiga e'tibor bering.

IP02 va CC03 xChips o'rtasida ulanish nuqtalarini aniqlash juda oson.

CC03 uchun bu janubiy tomon bo'ladi. IP02 uchun bu xChip -ning shimoliy tomoni bo'ladi.

Bu bajarilgandan so'ng, biz CC03 xChip -ning g'arbiy tomoniga boshqa xBUS ulagichini qo'shamiz.

Bajarildi?

Endi SW02 xChip -ni CC03 -ning g'arbiy tomoniga ulang.

IP02 ni noutbukga o'rnatishdan oldin, ikkita kalit uchun quyidagi variantlar tanlanganligiga ishonch hosil qiling:

  • B tanlangan (chap tugma)
  • DCE tanlandi (o'ng tugma)

Nihoyat, biz hozir IP02 -ni noutbukga kiritishga va Arduino IDE -ni o'rnatishga tayyormiz.

3 -qadam: Arduino IDE -ni sozlash

Arduino IDE -ni sozlash
Arduino IDE -ni sozlash
Arduino IDE -ni sozlash
Arduino IDE -ni sozlash

Shunga qaramay, men siz Arduino IDE muhitini, shuningdek, kutubxonalarni ishlab chiqish muhitida qanday boshqarishni bilasiz deb taxmin qildim.

Ushbu loyihani amalga oshirish uchun bizga ikkita asosiy kutubxona kerak bo'ladi:

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

Ikkala kutubxonani ham ish stolidagi joyga yuklab oling.

Keyin Arduino IDE -ni ishga tushiring.

Asosiy menyudan "Chizma"> "Kutubxonani qo'shish"> "ZIP kutubxonasini qo'shish …" -ni tanlang.

Xuddi shu jarayonni ikkala kutubxona fayllari uchun ham takrorlang.

Keyinchalik, biz tegishli "Kengash" va "Port" ni tanlashimiz kerak bo'ladi. (E'tibor bering, men to'q sariq rangli quti yordamida kerakli tanlovlarni ajratib ko'rsatganman.

  • Kengash: "Arduino/Genuino Zero (mahalliy USB port)"
  • Port: "COMXX" (bu sizning mashinangizda aks ettirilgan COM portiga muvofiq bo'lishi kerak. Meniki COM31dan foydalanmoqda)

Yaxshi! Bilaman, siz kodlashga o'tishni juda xohlagansiz, shuning uchun keyingi bosqichda biz bunga e'tibor qaratamiz.

4 -qadam: Kodlash vaqti

Ushbu bo'limda men tugallangan loyiha kodidan kod parchalarini bo'lishishdan boshlayman. Va oxirida men to'liq manbani nashr etaman, bu sizga kodni Arduino IDE manba fayliga nusxalash va joylashtirishni osonlashtiradi.

Sarlavha fayllari:

#include /* Bu asosiy XinaBox Core funktsiyalari uchun kutubxona. */

#include /* Bu VOC va ob -havo sensori xChip uchun kutubxona. */

RGB Led signallarini boshqarish uchun ba'zi doimiylarni aniqlash:

#redLedPin A4 ni aniqlang

#yashilLedPin 8ni aniqlang #ko'kLedPin 9 ni aniqlang

Keyinchalik, biz RGB qiymatlarini uzatish uchun funktsiya prototipini e'lon qilishimiz kerak

void setRGBColor (int redValue, int greenValue, int blueValue);

SW02 ob'ektini e'lon qilish:

xSW02 SW02;

Setup () usuli:

bo'sh o'rnatish () {

// I2C Communication Wire.begin () ni ishga tushiring; // SW02 sensorini ishga tushiring SW02.begin (); // Kechikishni normalizatsiya qilish uchun sensorning kechikishi (5000); }

Endi asosiy loop () uchun:

void loop () {

float tempC; }

Keyinchalik, biz sensorli chip bilan aloqani boshlash uchun dasturda avval yaratgan SW02 obyekti yordamida so'rov o'tkazishimiz kerak bo'ladi:

// SW02 sensoridan ma'lumotlarni o'qing va hisoblangSW02.poll ();

Endi biz sensorning harorat ko'rsatkichini olish uchun o'qiymiz

tempC = SW02.getTempC ();

O'qishni o'qiganimizdan so'ng, biz qilmoqchi bo'lgan oxirgi narsa, harorat oralig'ini aniqlash uchun if… else… control operatorlarini ishlatish va keyin setRGBColor () funktsiyasini chaqirishdir

// Siz harorat oralig'ini iqlimingizga qarab sozlashingiz mumkin. Men uchun men Singapurda yashayman, // butun yil davomida tropik va bu erda harorat oralig'i ancha tor bo'lishi mumkin. if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); }

Eslatma: Agar siz ma'lum bir rang uchun tegishli RGB qiymatlari nima ekanligini bilmoqchi bo'lsangiz, men sizga google orqali "RGB rang qiymatlari" ni qidirishni maslahat beraman. Rang tanlash uchun siz kerakli rangni tanlashingiz mumkin bo'lgan ko'plab saytlar mavjud

// Agar xohlasangiz va bu ixtiyoriy bo'lsa, siz sensor o'qishlari uchun so'rovlar orasidagi kechikishni ham qo'shishingiz mumkin.

kechikish (DELAY_TIME);

Siz, albatta, dasturning boshida DELAY_TIME sobitligini e'lon qilishingiz mumkin, shuning uchun siz uning qiymatini dastur davomida bir nechta joylarga emas, faqat bir marta o'zgartirishingiz kerak bo'ladi. Va nihoyat, biz RGB LEDni boshqarish funktsiyasiga muhtojmiz:

void setRGBColor (int redValue, int greenValue, int blueValue) {

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

Yakuniy dastur

#qo'shing

#qo'shing #define redLedPin A4 #define greenLedPin 8 #delein blueLedPin 9 void setRGBColor (int redValue, int greenValue, int blueValue); const int DELAY_TIME = 1000; xSW02 SW02; void setup () {// I2C Communication Wire.begin () ni ishga tushiring; // SW02 sensorini ishga tushiring SW02.begin (); // Kechikishni normalizatsiya qilish uchun sensorning kechikishi (5000); } void loop () {// SW02 float tempC dan o'qilgan ma'lumotlarni saqlash uchun o'zgaruvchini yarating; tempC = 0; // SW02 sensori SW02.poll () dan ma'lumotlarni o'qing va hisoblang; // SW02 -dan harorat o'lchovini olish va // temperatura o'zgaruvchisida tempC = SW02.getTempC () da saqlashni so'rang; if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); } // Sensor o'qish kechikishi orasidagi kichik kechikish (DELAY_TIME); } void setRGBColor (int redValue, int greenValue, int blueValue) {analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

Endi bizning dasturimiz tayyor, keling xChip -ni dasturlashtiraylik! Yuklash jarayoni xuddi Arduino platalariga dasturni yuklash bilan bir xil.

Ishingiz tugagach, nega uni elektr tarmog'idan uzib, sinovdan o'tkazish uchun olib chiqmaysiz?

Tavsiya: