Mundarija:
- 1 -qadam: Sizga nima kerak …
- 2 -qadam: qismlarni ulash
- 3 -qadam: Arduino IDE -ni sozlash
- 4 -qadam: Kodlash vaqti
Video: RGB harorat ko'rsatkichi (XinaBox bilan): 5 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
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 …
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):
- IP02 - Kengaytirilgan USB dasturlash interfeysi
- CC03 - Arm Cortex M0+ Core
- SW02 - VOC va ob -havo sensori (BOSCH tomonidan BME680 sensori ishlatiladi)
- xBUS ulagichlari - turli xChips (x2) o'rtasida I2C aloqasini yoqish uchun.
- xPDI ulagichi - dasturlash va tuzatishni yoqish uchun (x1)
2 -qadam: qismlarni 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
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:
Raspberry Pi sovutish foniy sovutgichi, harorat ko'rsatkichi bilan: 10 qadam (rasmlar bilan)
Raspberry Pi sovutgichli fanatlar qutisi CPU harorati indikatori bilan: Men oldingi loyihada malinali pi (bundan keyin RPI) protsessorining harorat indikatorini kiritgan edim. O'chirish faqat RPI 4 protsessorining har xil darajasini quyidagicha ko'rsatadi.- Yashil LED yoqilganda CPU harorati 30 ~
Raspberry Pi protsessorining harorat ko'rsatkichi: 11 qadam (rasmlar bilan)
Raspberry Pi protsessorining harorat indikatori: Men ilgari oddiy malina pi (bundan keyin RPI) operatsion holat indikatori sxemasini joriy qilgan edim, bu safar men boshsiz (monitorsiz) ishlaydigan RPI uchun yana bir qancha foydali indikator sxemasini tushuntiraman. CPU harorati
Termokromik harorat va namlik ko'rsatkichi - PCB versiyasi: 6 qadam (rasmlar bilan)
Termokromik harorat va namlik ko'rsatkichi - PCB versiyasi: Bir muncha vaqt oldin termokromik harorat deb nomlangan loyiha & Namlik displeyi, men mis plitalardan 7 qismli displey qurdim, ular peltier elementlari bilan isitiladi/soviydi. Mis plitalar termokromli folga bilan qoplangan, ular
Arduino tomonidan harorat va namlik ko'rsatkichi: 7 qadam (rasmlar bilan)
Arduino -ning harorat va namlik ko'rsatkichi: Ushbu yo'riqnomada Arduino -da harorat va namlikni ko'rsatadigan quti yasash ko'rsatiladi, siz xonangizdagi harorat va namlikni o'lchash uchun stol ustiga qo'yishingiz mumkin MDF qutisining yuqori sifati lazerli kesish orqali hamma narsa. siqilgan f
Termokromik harorat va namlik ko'rsatkichi: 10 qadam (rasmlar bilan)
Termokromik harorat va namlik ko'rsatkichi: Men bu loyihada ancha vaqt ishladim. Asl g'oya menga savdo yarmarkasi uchun ish joyida TEC nazoratchi ko'rsatgichini qurgandan keyin keldi. TEC -larning isitish va sovutish qobiliyatini ko'rsatish uchun biz termokromik bo'yoqlardan foydalanardik