Obsah:

Indikátor teploty RGB (s XinaBoxem): 5 kroků (s obrázky)
Indikátor teploty RGB (s XinaBoxem): 5 kroků (s obrázky)

Video: Indikátor teploty RGB (s XinaBoxem): 5 kroků (s obrázky)

Video: Indikátor teploty RGB (s XinaBoxem): 5 kroků (s obrázky)
Video: Power On: The Story of Xbox | Chapter 5: The Red Ring of Death 2024, Listopad
Anonim
RGB indikátor teploty (s XinaBoxem)
RGB indikátor teploty (s XinaBoxem)

Toto je oficiálně můj první článek Instructables, takže se přiznám, že právě teď tuto příležitost využívám k vyzkoušení. Získejte přehled o tom, jak platforma funguje, o celé její uživatelské zkušenosti. Ale když to dělám, usoudil jsem, že mohu také využít příležitost podělit se o jednoduchý projekt, na kterém jsem dnes pracoval (pomocí produktů od XinaBoxu, který se mimochodem vyslovuje jako „X-in-a- Krabice ).

V tomto jednoduchém pětistupňovém pokynu se budu zabývat následujícími tématy:

  • Potřebné součásti
  • Propojení různých xChipů dohromady.
  • Nastavení prostředí Arduino IDE.
  • Psaní kódu
  • A nakonec testování myšlenky

Co nebudu sdílet v tomto pokynu:

  • I když se rád ponořím do vysvětlování, co každý z těchto xChipů dokáže a jak s nimi můžete manipulovat, aby vykonával určité funkce, nebyl by to cíl tohoto pokynu. V blízké budoucnosti plánuji vydat další Instructables, které se ponoří do každého z různých xChipů, které jsou k dispozici prostřednictvím katalogu produktů XinaBox.
  • Nebudu zacházet do základů kódu Arduino, protože předpokládám, že již máte určitou úroveň zkušeností s používáním Arduino IDE a základní znalosti programování v C/C ++.

Krok 1: Co potřebujete…

Co potřebuješ…
Co potřebuješ…
Co potřebuješ…
Co potřebuješ…
Co potřebuješ…
Co potřebuješ…

Technicky vzato, většina základních návodů k produktům obvykle začíná „Hello World!“příklad, nebo dokonce příklad „Blink“, který už možná velmi dobře znáte, protože jste v určitém okamžiku spolupracovali s Arduino nebo Raspberry Pi. Ale nechci s tím začínat, protože všichni už dělají totéž, což je ve skutečnosti trochu nudné.

Místo toho jsem chtěl začít s praktickou myšlenkou projektu. Něco, co je dostatečně jednoduché a škálovatelné do složitějšího projektu, pokud chcete.

Zde jsou položky, které budeme potřebovat (viz fotografie poskytnuté pro tuto část Instructable):

  1. IP02 - Pokročilé programovací rozhraní USB
  2. CC03 - Arm Cortex M0+ jádro
  3. SW02 - VOC a senzor počasí (který používá snímač BME680 od BOSCH)
  4. Konektory xBUS - umožňují komunikaci I2C mezi různými xChipy (x2)
  5. Konektor xPDI - umožňuje programování a ladění (x1)

Krok 2: Připojení kusů

Spojování dílků
Spojování dílků
Spojování dílků
Spojování dílků
Spojování dílků
Spojování dílků

Abychom spojili všechny kusy dohromady, začneme nejprve s 1 kusem konektoru xBUS a konektoru xPDI.

Podle obrázků, které jsem poskytl, si všimněte orientace xChips a kam půjdou konektory.

Mezi IP02 a CC03 xChips je docela snadné identifikovat spojovací body.

U CC03 to bude jižní strana. Pro IP02 to bude severní strana xChip.

Jakmile to bude hotové, přidáme další konektor xBUS na západní stranu CC03 xChip.

Hotovo?

Nyní stačí připojit SW02 xChip k západní straně CC03.

Před vložením IP02 do našeho notebooku se ujistěte, že jsou pro dva přepínače vybrány následující možnosti:

  • Je vybráno B (levý spínač)
  • Je vybrána DCE (pravý přepínač)

Konečně jsme nyní připraveni vložit IP02 do našeho notebooku a začít nastavovat Arduino IDE.

Krok 3: Nastavení Arduino IDE

Nastavení Arduino IDE
Nastavení Arduino IDE
Nastavení Arduino IDE
Nastavení Arduino IDE

V tomto pokynu jsem opět učinil předpoklad, že jste již obeznámeni s prostředím Arduino IDE a také s tím, jak spravovat knihovny ve vývojovém prostředí.

Pro účely tohoto projektu budeme potřebovat dvě hlavní knihovny:

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

Stáhněte si obě knihovny na místo na ploše.

Dále spusťte Arduino IDE.

V hlavní nabídce vyberte „Skica“> „Zahrnout knihovnu“> „Přidat knihovnu. ZIP…“

Opakujte stejný postup pro oba soubory knihovny.

Dále budeme muset vybrat příslušnou „desku“a také „port“. (Všimněte si, že jsem také zvýraznil potřebné výběry pomocí oranžového rámečku.

  • Deska: „Arduino/Genuino Zero (nativní port USB)“
  • Port: "COMXX" (to by mělo být podle portu COM, který se odráží na vašem počítači. Můj používá COM31)

V pořádku! Vím, že jste toužili skočit do kódování, takže v dalším kroku se na to zaměříme.

Krok 4: Čas na kódování

V této části začnu sdílením fragmentů kódu z dokončeného kódu projektu. A na konci zveřejním celý zdroj, což vám usnadní kopírování a vložení kódu do zdrojového souboru Arduino IDE.

Soubory záhlaví:

#include /* Toto je knihovna hlavních základních funkcí XinaBoxu. */

#include /* Toto je knihovna pro VOC & Weather Sensor xChip. */

Definování některých konstant pro ovládání signálů LED RGB:

#definovat redLedPin A4

#definovat greenLedPin 8 #definovat blueLedPin 9

Dále musíme deklarovat prototyp funkce pro předávání hodnot RGB

neplatné setRGBColor (int redValue, int greenValue, int blueValue);

Deklarace objektu SW02:

xSW02 SW02;

Metoda setup ():

neplatné nastavení () {

// Spusťte I2C Communication Wire.begin (); // Spusťte senzor SW02 SW02.begin (); // Zpoždění pro normalizaci zpoždění senzoru (5000); }

Nyní k hlavní smyčce ():

prázdná smyčka () {

float tempC; }

Dále budeme muset provést hlasování pomocí objektu SW02, který jsme vytvořili dříve v programu, abychom zahájili naši komunikaci se senzorovým čipem:

// Čtení a výpočet dat ze senzoru SW02SW02.poll ();

Nyní čteme, abychom získali teplotu snímače

tempC = SW02.getTempC ();

Jakmile budeme mít odečet, poslední věcí, kterou uděláme, je použít řadu příkazů if… else… k určení teplotního rozsahu a poté zavolat funkci setRGBColor ()

// Teplotní rozsah můžete upravit podle svého klimatu. Pro mě žiji v Singapuru, // což je tropické po celý rok a teplotní rozsah zde může být docela úzký. if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); }

Poznámka: Pokud vás zajímá, jaké jsou příslušné hodnoty RGB pro konkrétní barvu, doporučuji vám vyhledat na Googlu „hodnoty barev RGB“. Existuje spousta stránek, kde můžete pomocí voliče barev vybrat požadovanou barvu

// Pokud chcete a je to volitelné, můžete také přidat zpoždění mezi hlasováním pro čtení ze senzoru.

zpoždění (DELAY_TIME);

Samozřejmě můžete deklarovat konstantu DELAY_TIME na začátku programu, takže pouze musíte upravit její hodnotu jednou, nikoli na více místech v celém programu. Nakonec potřebujeme funkci pro ovládání naší RGB LED:

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

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

Závěrečný program

#zahrnout

#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 () {// Spusťte I2C Communication Wire.begin (); // Spusťte senzor SW02 SW02.begin (); // Zpoždění pro normalizaci zpoždění senzoru (5000); } void loop () {// Vytvořte proměnnou pro ukládání dat načtených ze SW02 float tempC; tempC = 0; // Čtení a výpočet dat ze senzoru SW02 SW02.poll (); // Požádejte SW02 o získání měření teploty a uložte do // proměnné teploty tempC = SW02.getTempC (); if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); } // Malé zpoždění mezi zpožděním čtení snímače (DELAY_TIME); } void setRGBColor (int redValue, int greenValue, int blueValue) {analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

Nyní, když je náš program připraven, pojďme naprogramovat xChip! Proces nahrávání je úplně stejný, jako byste nahráli program na desky Arduino.

Až budete hotovi, proč jej neodpojit a nevyvést na zkušební provoz.

Doporučuje: