Sisukord:

RGB temperatuuri indikaator (XinaBoxiga): 5 sammu (piltidega)
RGB temperatuuri indikaator (XinaBoxiga): 5 sammu (piltidega)

Video: RGB temperatuuri indikaator (XinaBoxiga): 5 sammu (piltidega)

Video: RGB temperatuuri indikaator (XinaBoxiga): 5 sammu (piltidega)
Video: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #6 2024, November
Anonim
RGB temperatuuri indikaator (XinaBoxiga)
RGB temperatuuri indikaator (XinaBoxiga)

See on ametlikult minu esimene Instructabeli artikkel, nii et tunnistan, et kasutan seda võimalust praegu selle proovimiseks. Tunnetage, kuidas platvorm töötab, kogu kasutajakogemuse pool. Kuid samal ajal arvasin, et võin kasutada võimalust jagada ka lihtsat projekti, millega olen täna tegelenud (kasutades XinaBoxi tooteid, mida muide hääldatakse kui "X-in-a- Kast ").

Selles lihtsas 5-astmelises juhendis käsitlen järgmisi teemasid:

  • Vajalikud komponendid
  • Erinevate xChipide ühendamine.
  • Arduino IDE keskkonna seadistamine.
  • Koodi kirjutamine
  • Ja lõpuks katsetan ideed

Mida ma selles juhendis ei jaga:

  • Nii palju kui mulle meeldib sukelduda selgitamisse, mida igaüks neist xChipidest saab teha ja kuidas saate nendega teatud funktsioonide täitmiseks manipuleerida, see poleks selle juhendi eesmärk. Kavatsen lähitulevikus avaldada ka muid Instructableid, mis tutvustavad kõiki XinaBoxi tootekataloogi kaudu saadaolevaid xChipe.
  • Ma ei hakka Arduino koodi põhitõdedesse süvenema, kuna eeldan, et teil on juba mõningane kogemus Arduino IDE kasutamisel, samuti on teil algtasemel arusaam C/C ++ programmeerimisest.

Samm: mida vajate…

Mida sa vajad…
Mida sa vajad…
Mida sa vajad…
Mida sa vajad…
Mida sa vajad…
Mida sa vajad…

Tehniliselt algab enamik põhilisi tooteõpetusi tavaliselt sõnaga "Tere maailm!" näide või isegi "Blink" näide, mis võib teile juba väga tuttav olla, kuna olete mingil hetkel Arduino või Raspberry Pi -ga koostööd teinud. Kuid ma ei taha sellega alustada, sest kõik teevad juba sama asja, mis teeb selle tõesti igavaks.

Tahtsin hoopis alustada praktilise projektiideega. Midagi, mis on piisavalt lihtne ja skaleeritav keerulisemaks projektiideeks, kui soovite.

Siin on üksused, mida me vajame (vaadake juhendi selle jaotise jaoks pakutavaid fotosid):

  1. IP02 - täiustatud USB programmeerimisliides
  2. CC03 - Arm Cortex M0+ Core
  3. SW02 - VOC ja ilmastikuandur (mis kasutab BOSCHi BME680 andurit)
  4. xBUS -pistikud - I2C -side võimaldamiseks erinevate xChipide vahel (x2)
  5. xPDI -pistik - programmeerimise ja silumise võimaldamiseks (x1)

2. samm: tükkide ühendamine

Tükkide ühendamine
Tükkide ühendamine
Tükkide ühendamine
Tükkide ühendamine
Tükkide ühendamine
Tükkide ühendamine

Kõigi osade ühendamiseks alustame kõigepealt ühe xBUS -pistiku ja xPDI -pistikuga.

Jälgige minu pakutud pilte, märkige xChipide suund ja pistikute asukoht.

IP02 ja CC03 xChip vahel on ühenduspunkte üsna lihtne tuvastada.

CC03 puhul on see lõunapool. IP02 puhul on see xChipi põhjakülg.

Kui see on tehtud, lisame CC03 xChip lääneküljele veel ühe xBUS -pistiku.

Valmis?

Nüüd ühendage lihtsalt SW02 xChip CC03 lääneküljega.

Enne IP02 sülearvutisse sisestamist veenduge, et kahe lüliti jaoks on valitud järgmised valikud:

  • B on valitud (vasak lüliti)
  • DCE on valitud (parem lüliti)

Lõpuks oleme nüüd valmis sisestama IP02 oma sülearvutisse ja alustama Arduino IDE seadistamist.

Samm: seadistage Arduino IDE

Arduino IDE seadistamine
Arduino IDE seadistamine
Arduino IDE seadistamine
Arduino IDE seadistamine

Jällegi olen selles juhendavas osas eeldanud, et olete juba tuttav nii Arduino IDE keskkonnaga kui ka sellega, kuidas arenduskeskkonnas raamatukogusid hallata.

Selle projekti jaoks vajame kahte peamist raamatukogu:

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

Laadige mõlemad teegid oma töölaual asuvasse kohta alla.

Seejärel käivitage oma Arduino IDE.

Valige peamenüüst "Sketch"> "Include Library"> "Add. ZIP Library…"

Korrake sama protsessi mõlema teegifaili puhul.

Järgmisena peame valima asjakohase "juhatuse" ja "sadama". (Pange tähele, et olen oranži kasti abil esile toonud ka vajalikud valikud.

  • Tahvel: "Arduino/Genuino Zero (natiivne USB -port)"
  • Port: "COMXX" (see peaks vastama teie masinas kajastatud COM -pordile. Minu oma kasutab COM31 -d)

Olgu! Ma tean, et olete innukalt alustanud kodeerimist, nii et järgmisel etapil keskendume sellele.

Samm: aeg kodeerida

Selles jaotises alustan koodijuppide jagamisest valminud projekti koodist. Ja lõpuks avaldan täieliku allika, mis hõlbustab koodi kopeerimist ja kleepimist oma Arduino IDE lähtefaili.

Päisefailid:

#include /* See on XinaBoxi põhifunktsioonide kogu. */

#include /* See on VOC ja ilmastikuanduri xChip raamatukogu. */

Mõne konstandi määramine RGB LED -signaalide juhtimiseks:

#define redLedPin A4

#define greenLedPin 8 #define blueLedPin 9

Järgmisena peame deklareerima funktsiooni prototüübi RGB väärtuste edastamiseks

tühine setRGBColor (int punaväärtus, int rohelineVäärtus, int sinineVäärtus);

SW02 objekti deklareerimine:

xSW02 SW02;

Seadistus () meetod:

tühine seadistus () {

// Käivitage I2C side Wire.begin (); // Käivitage SW02 andur SW02.begin (); // Anduri viivitus viivituse normaliseerimiseks (5000); }

Nüüd põhisilmuse () kohta:

void loop () {

ujuki tempC; }

Järgmisena peame andmekiibiga suhtluse alustamiseks küsitlema, kasutades programmi varem loodud objekti SW02:

// SW02 anduri andmete lugemine ja arvutamineSW02.poll ();

Nüüd loeme, et saada anduri temperatuuri näitu

tempC = SW02.getTempC ();

Kui oleme näidu saanud, siis viimane asi, mida me teeme, on kasutada temperatuurivahemiku määramiseks rida if … else … kontrolllauset ja seejärel kutsuda funktsiooni setRGBColor ()

// Temperatuuri saate reguleerida vastavalt oma kliimale. Minu jaoks elan Singapuris, // mis on aastaringselt troopiline ja temperatuurivahemik võib siin olla üsna kitsas. if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); }

Märkus. Kui soovite teada, millised on konkreetse värvi asjakohased RGB väärtused, soovitan teil otsida Google'is "RGB värviväärtused". Saadaval on palju saite, kus saate soovitud värvi valimiseks kasutada värvivalijat

// Kui soovite ja see on valikuline, saate anduri näitude küsitluse vahele lisada viivituse.

viivitus (DELAY_TIME);

Muidugi saate programmi alguses deklareerida konstantse DELAY_TIME, nii et peate selle väärtust muutma ainult üks kord, mitte kogu programmi jooksul mitmes kohas. Lõpuks vajame funktsiooni meie RGB LED -i juhtimiseks:

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

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

Lõplik programm

#kaasake

#include #define redLedPin A4 #define greenLedPin 8 #define blueLedPin 9 void setRGBColor (int redValue, int greenValue, int blueValue); const int DELAY_TIME = 1000; xSW02 SW02; void setup () {// Käivitage I2C side Wire.begin (); // Käivitage SW02 andur SW02.begin (); // Anduri viivitus viivituse normaliseerimiseks (5000); } void loop () {// Loo muutuja SW02 float tempC -st loetud andmete salvestamiseks; tempC = 0; // SW02 anduri SW02.poll () andmete lugemine ja arvutamine; // Taotlege SW02 temperatuuri mõõtmiseks ja salvestage // muutuja tempC = SW02.getTempC (); if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); } // Väike viivitus anduri lugemise vahel (DELAY_TIME); } void setRGBColor (int redValue, int greenValue, int blueValue) {analogWrite (redLedPin, redValue); analoogkiri (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

Nüüd, kui meie programm on valmis, programmeerime xChipi! Üleslaadimisprotsess on täpselt sama, mis programmi Arduino tahvlitele üleslaadimisel.

Kui olete lõpetanud, siis miks mitte vooluvõrgust lahti ühendada ja proovisõiduks välja tuua.

Soovitan: