Tartalomjegyzék:

RGB hőmérséklet kijelző (XinaBox esetén): 5 lépés (képekkel)
RGB hőmérséklet kijelző (XinaBox esetén): 5 lépés (képekkel)

Videó: RGB hőmérséklet kijelző (XinaBox esetén): 5 lépés (képekkel)

Videó: RGB hőmérséklet kijelző (XinaBox esetén): 5 lépés (képekkel)
Videó: Avide asztali led lámpa naptárral és RGB színes hangulatvilágítással 2024, Július
Anonim
RGB hőmérséklet -jelző (XinaBox -szal)
RGB hőmérséklet -jelző (XinaBox -szal)

Ez hivatalosan az első Instructables cikkem, ezért bevallom, hogy most használom ezt a lehetőséget, hogy kipróbáljam. Érezze át a platform működését, a teljes felhasználói élmény oldalát. De miközben ezt teszem, úgy gondoltam, hogy kihasználom az alkalmat, hogy megosszak egy egyszerű projektet, amelyen ma dolgozom (a XinaBox termékeinek felhasználásával, amelyet egyébként "X-in-a-" Doboz").

Ebben az egyszerű, 5 lépésből álló utasításban a következő témákkal foglalkozom:

  • Szükséges alkatrészek
  • A különböző xChip -ek összekapcsolása.
  • Az Arduino IDE környezet beállítása.
  • A kód írása
  • És végül az ötlet kipróbálása

Amit nem fogok megosztani ebben az oktatóanyagban:

  • Bármennyire is szeretek belemerülni annak elmagyarázásába, hogy az egyes xChip -ek mire képesek, és hogyan lehet manipulálni őket bizonyos funkciók végrehajtása érdekében, ez nem lenne ennek az oktathatónak a célja. Tervezem, hogy a közeljövőben más Instructable -eket is közzéteszek, amelyek a XinaBox termékkatalógusában elérhető különböző xChip -ek mindegyikébe fognak belemerülni.
  • Nem fogok foglalkozni az Arduino kód alapjaival, mivel feltételezem, hogy már rendelkezik bizonyos szintű tapasztalattal az Arduino IDE használatában, valamint rendelkezik alapvető ismeretekkel a C/C ++ programozásról.

1. lépés: Amire szüksége van…

Amire szükséged van…
Amire szükséged van…
Amire szükséged van…
Amire szükséged van…
Amire szükséged van…
Amire szükséged van…

Technikailag a legtöbb alapvető termékismertető általában "Hello World!" példa, vagy akár egy "Blink" példa, amit már nagyon jól ismersz, mivel valamikor együtt dolgoztál az Arduino -val vagy a Raspberry Pi -vel. De nem ezzel akarok kezdeni, mert már mindenki ugyanazt csinálja, ami igazán unalmassá teszi.

Ehelyett egy gyakorlati projektötlettel akartam kezdeni. Valami, ami elég egyszerű, és ha egy bonyolultabb projektötletre méretezhető.

Itt vannak azok az elemek, amelyekre szükségünk lesz (lásd az Instructable ezen szakaszához tartozó fényképeket):

  1. IP02 - Speciális USB programozási interfész
  2. CC03 - Karos Cortex M0+ Core
  3. SW02 - VOC és időjárás -érzékelő (amely a BOSCH BME680 érzékelőjét használja)
  4. xBUS csatlakozók - lehetővé teszik az I2C kommunikációt a különböző xChip -ek között (x2)
  5. xPDI csatlakozó - a programozás és a hibakeresés engedélyezéséhez (x1)

2. lépés: Csatlakoztassa a darabokat

A darabok összekapcsolása
A darabok összekapcsolása
A darabok összekapcsolása
A darabok összekapcsolása
A darabok összekapcsolása
A darabok összekapcsolása

Az összes alkatrész összekapcsolásához először az xBUS és az xPDI csatlakozó 1 darabjával kezdjük.

Az általam nyújtott képek után vegye figyelembe az xChip tájolását és azt, hogy a csatlakozók hová kerülnek.

Az IP02 és a CC03 xChips között meglehetősen könnyű azonosítani a csatlakozási pontokat.

A CC03 esetében ez lesz a déli oldal. IP02 esetén az xChip északi oldala lesz.

Ha ez megtörtént, hozzáadunk egy újabb xBUS csatlakozót a CC03 xChip nyugati oldalához.

Kész?

Most csak csatlakoztassa az SW02 xChip -et a CC03 nyugati oldalához.

Mielőtt IP02 -t helyeznénk laptopunkba, győződjön meg arról, hogy a két kapcsolóhoz az alábbi lehetőségek vannak kiválasztva:

  • B van kiválasztva (bal kapcsoló)
  • DCE van kiválasztva (jobb kapcsoló)

Végül készen állunk az IP02 illesztésére a laptopunkba, és megkezdhetjük az Arduino IDE beállítását.

3. lépés: Az Arduino IDE beállítása

Az Arduino IDE beállítása
Az Arduino IDE beállítása
Az Arduino IDE beállítása
Az Arduino IDE beállítása

Ismételten, ebben a tanulságosban azt a feltételezést tettem, hogy már ismeri az Arduino IDE környezetet, valamint a könyvtárak kezelési módját a fejlesztési környezetben.

A projekt megvalósításához két fő könyvtárra lesz szükségünk:

  • arduino-CORE-https://github.com/xinabox/arduino-CORE
  • SW02 könyvtár -

Töltse le mindkét könyvtárat az asztalon lévő helyre.

Ezután indítsa el az Arduino IDE -t.

A főmenüben válassza a "Sketch"> "Include Library"> ". ZIP Library hozzáadása …" lehetőséget.

Ismételje meg ugyanazt a folyamatot mindkét könyvtári fájlnál.

Ezután ki kell választanunk a megfelelő "Board" -t és a "Port" -t. (Vegye figyelembe, hogy a szükséges kiválasztásokat narancssárga doboz segítségével is kiemeltem.

  • Alaplap: "Arduino/Genuino Zero (natív USB -port)"
  • Port: "COMXX" (ennek a gépen megjelenő COM portnak kell megfelelnie. Az enyém a COM31 -et használja)

Rendben! Tudom, hogy szívesen belevetette magát a kódolásba, ezért a következő lépésben erre fogunk összpontosítani.

4. lépés: Ideje kódolni

Ebben a részben először a befejezett projektkódból származó kódrészletek megosztásával kezdem. És a végén közzéteszem a teljes forrást, megkönnyítve ezzel a kód másolását és beillesztését az Arduino IDE forrásfájljába.

Fejlécfájlok:

#include /* Ez a fő XinaBox alapfunkciók könyvtára. */

#include /* Ez a VOC és időjárás -érzékelő xChip könyvtára. */

Néhány konstans meghatározása az RGB LED -jelek vezérléséhez:

#define redLedPin A4

#define greenLedPin 8 #define blueLedPin 9

Ezután deklarálnunk kell egy funkció prototípust az RGB értékek átadására

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

Az SW02 objektum deklarálása:

xSW02 SW02;

A setup () módszer:

void setup () {

// Indítsa el az I2C kommunikációs vezetéket.begin (); // Indítsa el az SW02 érzékelőt SW02.begin (); // Késleltetés az érzékelő számára a késleltetés normalizálásához (5000); }

Most a fő hurokról ():

void loop () {

lebegési hőmérsékletC; }

Ezután le kell kérdeznünk a programban korábban létrehozott SW02 objektum használatával, hogy megkezdjük a kommunikációt az érzékelőchippel:

// Adatok olvasása és kiszámítása az SW02 szenzorbólSW02.poll ();

Most olvasunk, hogy megkapjuk az érzékelő hőmérsékletét

tempC = SW02.getTempC ();

Miután megvan a leolvasás, az utolsó dolog, amit meg fogunk tenni, az, hogy ha… más… vezérlő utasításokat használunk a hőmérséklet -tartomány meghatározásához, majd hívjuk meg a setRGBColor () függvényt

// A hőmérséklet tartományt az éghajlatnak megfelelően állíthatja be. Számomra Szingapúrban élek, // ami egész évben trópusi, és a hőmérséklet tartomány itt meglehetősen szűk lehet. if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); }

Megjegyzés: Ha érdekli, hogy melyek az adott színre vonatkozó releváns RGB -értékek, javaslom, hogy végezzen Google -keresést az "RGB színértékek" kifejezésre. Rengeteg webhely áll rendelkezésre, ahol a színválasztóval kiválaszthatja a kívánt színt

// Ha szeretné, és ez opcionális, késleltetést is hozzáadhat a lekérdezések között az érzékelő leolvasásához.

késleltetés (DELAY_TIME);

Természetesen deklarálhatja a DELAY_TIME konstansot a program elején, így csak egyszer kell módosítania az értékét, nem pedig több helyen a program során. Végül szükségünk van a funkcióra az RGB LED vezérléséhez:

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

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

Végső program

#befoglalni

#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 () {// Indítsa el az I2C kommunikációs vezetéket.begin (); // Indítsa el az SW02 érzékelőt SW02.begin (); // Késleltetés az érzékelő számára a késleltetés normalizálásához (5000); } void loop () {// Változó létrehozása az SW02 float tempC -ből olvasott adatok tárolására; tempC = 0; // Adatok olvasása és kiszámítása az SW02 érzékelőből SW02.poll (); // Kérje az SW02 -t a hőmérsékletmérés lekérésére és tárolja a // hőmérsékletváltozóban tempC = SW02.getTempC (); if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); } // Kis késés az érzékelő olvasási késleltetése között (DELAY_TIME); } void setRGBColor (int redValue, int greenValue, int blueValue) {analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

Most, hogy a programunk kész, programozzuk be az xChip programot! A feltöltési folyamat pontosan ugyanaz, mint ahogyan egy programot tölt fel az Arduino táblákra.

Ha elkészült, miért ne húzza ki a konnektorból, és vigye ki egy próbaüzemre.

Ajánlott: