Obsah:

Indikátor teploty RGB (s XinaBoxom): 5 krokov (s obrázkami)
Indikátor teploty RGB (s XinaBoxom): 5 krokov (s obrázkami)

Video: Indikátor teploty RGB (s XinaBoxom): 5 krokov (s obrázkami)

Video: Indikátor teploty RGB (s XinaBoxom): 5 krokov (s obrázkami)
Video: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #6 2024, November
Anonim
Indikátor teploty RGB (s XinaBoxom)
Indikátor teploty RGB (s XinaBoxom)

Toto je oficiálne môj prvý článok Instructables, takže sa priznávam, že práve teraz využívam túto príležitosť na vyskúšanie. Získajte prehľad o tom, ako platforma funguje, o celej stránke používateľských skúseností. Ale keď to robím, zistil som, že môžem využiť aj príležitosť podeliť sa o jednoduchom projekte, na ktorom som dnes pracoval (pomocou produktov od XinaBoxu, ktorý sa mimochodom vyslovuje ako „X-in-a- Box “).

V tomto jednoduchom 5-krokovom návode sa budem venovať nasledujúcim témam:

  • Potrebné súčiastky
  • Spojenie rôznych xChipov dohromady.
  • Nastavenie prostredia Arduino IDE.
  • Písanie kódu
  • A nakoniec, testovanie myšlienky

Čo nebudem zdieľať v tomto návode:

  • Aj keď sa rád ponorím do vysvetľovania, čo každý z týchto xChipov dokáže a ako s nimi môžete manipulovať, aby vykonávali určité funkcie, nebol by to cieľ tohto pokynu. V blízkej budúcnosti plánujem publikovať ďalšie pokyny, ktoré sa ponoria do každého z rôznych xChipov, ktoré sú k dispozícii prostredníctvom katalógu produktov XinaBox.
  • Nebudem sa zaoberať základmi kódu Arduino, pretože predpokladám, že už máte určitú úroveň skúseností s používaním Arduino IDE, ako aj základné znalosti programovania v C/C ++.

Krok 1: Čo potrebujete…

Čo potrebuješ…
Čo potrebuješ…
Čo potrebuješ…
Čo potrebuješ…
Čo potrebuješ…
Čo potrebuješ…

Technicky vzaté, väčšina základných návodov k produktom obvykle začína „Hello World!“príklad, alebo dokonca príklad „Blink“, ktorý už možno veľmi dobre poznáte, pretože ste v určitom okamihu spolupracovali s Arduino alebo Raspberry Pi. Ale nechcem s tým začať, pretože všetci už robia to isté, takže je to skutočne trochu nudné.

Namiesto toho som chcel začať s praktickou myšlienkou projektu. Niečo, čo je dostatočne jednoduché a zároveň rozšíriteľné na komplexnejší projektový nápad, ak chcete.

Tu sú položky, ktoré budeme potrebovať (pozrite si fotografie uvedené v tejto časti inštrukcie):

  1. IP02 - Pokročilé programovacie rozhranie USB
  2. CC03 - Arm Cortex M0+ jadro
  3. SW02 - VOC a snímač počasia (ktorý používa snímač BME680 od BOSCH)
  4. Konektory xBUS - umožňujú komunikáciu I2C medzi rôznymi xChips (x2)
  5. Konektor xPDI - umožňuje programovanie a ladenie (x1)

Krok 2: Pripojenie dielov

Pripojenie dielov
Pripojenie dielov
Pripojenie dielov
Pripojenie dielov
Pripojenie dielov
Pripojenie dielov

Aby sme spojili všetky kusy dohromady, začneme najskôr s 1 kusom konektora xBUS a konektora xPDI.

Podľa obrázkov, ktoré som poskytol, si všimnite orientáciu xChips a kam pôjdu konektory.

Medzi IP02 a CC03 xChips je celkom ľahké identifikovať spojovacie body.

V prípade CC03 to bude južná strana. Pre IP02 to bude severná strana xChip.

Akonáhle to bude hotové, pridáme ďalší konektor xBUS na západnú stranu CC03 xChip.

Hotový?

Teraz stačí pripojiť SW02 xChip k západnej strane CC03.

Pred vložením IP02 do prenosného počítača sa uistite, že sú pre tieto dva prepínače vybraté nasledujúce možnosti:

  • Je vybrané B (ľavý prepínač)
  • Je vybratá DCE (pravý prepínač)

Nakoniec sme teraz pripravení vložiť IP02 do nášho prenosného počítača a začať nastavovať Arduino IDE.

Krok 3: Nastavenie Arduino IDE

Nastavenie Arduino IDE
Nastavenie Arduino IDE
Nastavenie Arduino IDE
Nastavenie Arduino IDE

V tomto návode som opäť urobil predpoklad, že ste už oboznámení s prostredím Arduino IDE a s tým, ako spravovať knižnice v rámci vývojového prostredia.

Na účely tohto projektu budeme potrebovať dve hlavné knižnice:

  • arduino-CORE-https://github.com/xinabox/arduino-CORE
  • Knižnica SW02 -

Stiahnite si obe knižnice na miesto na ploche.

Potom spustite svoje Arduino IDE.

V hlavnej ponuke vyberte „Skica“> „Zahrnúť knižnicu“> „Pridať knižnicu. ZIP …“

Opakujte rovnaký postup pre oba súbory knižnice.

Ďalej budeme musieť vybrať príslušnú „dosku“a „prístav“. (Všimnite si, že som tiež zvýraznil potrebné výbery pomocou oranžového rámčeka.

  • Doska: „Arduino/Genuino Zero (natívny port USB)“
  • Port: „COMXX“(malo by to byť podľa portu COM, ktorý sa odráža na vašom počítači. Môj používa COM31)

V poriadku! Viem, že ste túžili skočiť do kódovania, takže v nasledujúcom kroku sa na to zameriame.

Krok 4: Čas na kódovanie

V tejto časti začnem zdieľaním útržkov kódu z dokončeného kódu projektu. A na konci zverejním úplný zdroj, čo vám zjednoduší kopírovanie a vloženie kódu do zdrojového súboru Arduino IDE.

Súbory hlavičky:

#include /* Toto je knižnica hlavných základných funkcií XinaBoxu. */

#include /* Toto je knižnica pre VOC a snímač počasia xChip. */

Definovanie niektorých konštánt pre ovládanie RGB LED signálov:

#define redLedPin A4

#define greenLedPin 8 #define blueLedPin 9

Ďalej musíme deklarovať funkčný prototyp na odovzdávanie hodnôt RGB

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

Deklarovanie objektu SW02:

xSW02 SW02;

Metóda setup ():

neplatné nastavenie () {

// Spustite komunikačný drôt I2C.begin (); // Spustite snímač SW02 SW02.begin (); // Oneskorenie normalizácie oneskorenia senzora (5000); }

Teraz k hlavnej slučke ():

prázdna slučka () {

float tempC; }

Ďalej budeme potrebovať hlasovanie pomocou objektu SW02, ktorý sme vytvorili skôr v programe, aby sme zahájili komunikáciu so senzorovým čipom:

// Prečítajte a vypočítajte údaje zo senzora SW02SW02.poll ();

Teraz čítame, aby sme získali hodnotu teploty senzora

tempC = SW02.getTempC ();

Akonáhle budeme mať čítanie, posledná vec, ktorú urobíme, je použiť sériu riadiacich príkazov if … else … na určenie teplotného rozsahu a potom zavolať funkciu setRGBColor ()

// Teplotný rozsah môžete prispôsobiť svojmu podnebiu. Pre mňa žijem v Singapure, // čo je tropické po celý rok a teplotný rozsah tu môže byť dosť úzky. if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); }

Poznámka: Ak vás zaujíma, aké sú relevantné hodnoty RGB pre konkrétnu farbu, odporúčam vám vyhľadať na Googli výraz „Hodnoty farieb RGB“. Existuje množstvo webových stránok, kde môžete pomocou voliča farieb vybrať požadovanú farbu

// Ak chcete a je to voliteľné, môžete tiež pridať oneskorenie medzi hlasovaniami pre hodnoty snímača.

meškanie (DELAY_TIME);

Konštantu DELAY_TIME môžete samozrejme deklarovať na začiatku programu. Týmto spôsobom budete musieť hodnotu tohto parametra zmeniť iba raz, a nie na viacerých miestach v celom programe. Nakoniec potrebujeme funkciu na ovládanie našej RGB LED:

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

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

Záverečný program

#zahrnúť

#include #define redLedPin A4 #define greenLedPin 8 #define blueLedPin 9 neplatná sadaRGBColor (int redValue, int greenValue, int blueValue); const int DELAY_TIME = 1000; xSW02 SW02; void setup () {// Spustite I2C Communication Wire.begin (); // Spustite snímač SW02 SW02.begin (); // Oneskorenie normalizácie oneskorenia senzora (5000); } void loop () {// Vytvorte premennú na ukladanie údajov načítaných zo SW02 float tempC; tempC = 0; // Prečítajte a vypočítajte údaje zo senzora SW02 SW02.poll (); // Požiadajte SW02 o meranie teploty a uložte ho do // premennej teploty tempC = SW02.getTempC (); if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); } // Malé oneskorenie medzi oneskorením čítania snímača (DELAY_TIME); } void setRGBColor (int redValue, int greenValue, int blueValue) {analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

Teraz, keď je náš program pripravený, naprogramujme xChip! Proces nahrávania je úplne rovnaký ako spôsob, akým by ste nahrali program na dosky Arduino.

Keď ste hotoví, prečo ho neodpojte od siete a nevyneste ho na testovaciu prevádzku.

Odporúča: