Indholdsfortegnelse:

RGB -temperaturindikator (med XinaBox): 5 trin (med billeder)
RGB -temperaturindikator (med XinaBox): 5 trin (med billeder)

Video: RGB -temperaturindikator (med XinaBox): 5 trin (med billeder)

Video: RGB -temperaturindikator (med XinaBox): 5 trin (med billeder)
Video: using micro:bit's light sensor to control servo 2024, November
Anonim
RGB -temperaturindikator (med XinaBox)
RGB -temperaturindikator (med XinaBox)

Dette er officielt min første Instructables -artikel, så jeg vil indrømme, at jeg bruger denne mulighed lige nu til at prøve det. Få en fornemmelse af, hvordan platformen fungerer, hele brugeroplevelsessiden af den. Men mens jeg gjorde det, regnede jeg med, at jeg også kunne bruge lejligheden til at dele om et enkelt projekt, som jeg har arbejdet på i dag (ved hjælp af produkterne fra XinaBox, som i øvrigt udtales som "X-in-a- Boks").

I denne enkle instruktion i 5 trin vil jeg dække følgende emner:

  • Komponenter nødvendige
  • Tilslutning af de forskellige xChips sammen.
  • Opsætning af Arduino IDE -miljøet.
  • At skrive koden
  • Og endelig testede ideen ud

Hvad jeg ikke vil dele i denne instruerbare:

  • Så meget som jeg elsker at dykke ned i at forklare, hvad hver af disse xChips kan gøre, og hvordan du kan manipulere dem til at udføre visse funktionaliteter, ville det ikke være målet med denne instruerbare. Jeg planlægger at udgive andre Instructables i den nærmeste fremtid, der vil dykke ned i hvert af de forskellige xChips, der er tilgængelige via XinaBox 'produktkatalog.
  • Jeg vil ikke gå ind på det grundlæggende i Arduino -koden, da jeg antager, at du allerede har en vis erfaring med at bruge Arduino IDE samt en grundlæggende forståelse af C/C ++ programmering.

Trin 1: Hvad du har brug for …

Hvad du har brug for…
Hvad du har brug for…
Hvad du har brug for…
Hvad du har brug for…
Hvad du har brug for…
Hvad du har brug for…

Teknisk set begynder de fleste grundlæggende produkttutorials normalt med et "Hej verden!" eksempel eller endda et "Blink" -eksempel, som du måske allerede er meget bekendt med, da du på et tidspunkt har arbejdet med Arduino eller Raspberry Pi. Men jeg vil ikke starte med det, fordi alle allerede gør det samme, hvilket gør det virkelig lidt kedeligt.

I stedet ville jeg starte med en praktisk projektidé. Noget, der er både enkelt nok og skalerbart til en mere kompleks projektidé, hvis du vil.

Her er de ting, vi får brug for (se billederne til dette afsnit af Instructable):

  1. IP02 - Avanceret USB -programmeringsinterface
  2. CC03 - Arm Cortex M0+ Core
  3. SW02 - VOC og vejrføler (der bruger BME680 -sensoren fra BOSCH)
  4. xBUS -stik - for at aktivere I2C -kommunikation mellem de forskellige xChips (x2)
  5. xPDI -stik - for at aktivere programmering og fejlfinding (x1)

Trin 2: Tilslutning af stykkerne

Tilslutning af stykkerne
Tilslutning af stykkerne
Tilslutning af stykkerne
Tilslutning af stykkerne
Tilslutning af stykkerne
Tilslutning af stykkerne

For at forbinde alle stykkerne sammen starter vi først med 1 stykke xBUS -stik og xPDI -stik.

Læg mærke til orienteringen af xChips efter de billeder, jeg har givet, og hvor konnektorerne går.

Mellem IP02 og CC03 xChips er det ret let at identificere forbindelsespunkterne.

For CC03 vil det være sydsiden. For IP02 vil det være nordsiden af xChip.

Når det er gjort, tilføjer vi endnu et xBUS -stik til vestsiden af CC03 xChip.

Færdig?

Nu skal du bare slutte SW02 xChip til vestsiden af CC03.

Inden vi indsætter IP02 på vores bærbare computer, skal du sikre dig, at følgende muligheder er valgt for de to switches:

  • B er valgt (venstre kontakt)
  • DCE er valgt (højre kontakt)

Endelig er vi nu klar til at indsætte IP02 i vores bærbare computer og begynde at konfigurere Arduino IDE.

Trin 3: Opsætning af Arduino IDE

Opsætning af Arduino IDE
Opsætning af Arduino IDE
Opsætning af Arduino IDE
Opsætning af Arduino IDE

Igen, i denne instruktive, har jeg antaget, at du allerede er bekendt med Arduino IDE -miljøet, samt hvordan du administrerer biblioteker inden for udviklingsmiljøet.

Med henblik på dette projekt har vi brug for to hovedbiblioteker:

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

Download begge biblioteker til et sted på dit skrivebord.

Start derefter din Arduino IDE.

Vælg "Skitse"> "Inkluder bibliotek" i hovedmenuen> "Tilføj. ZIP -bibliotek …"

Gentag den samme proces for begge biblioteksfiler.

Dernæst skal vi vælge det relevante "Board" såvel som "Port". (Bemærk, at jeg også har fremhævet de nødvendige valg ved hjælp af en orange boks.

  • Board: "Arduino/Genuino Zero (indfødt USB -port)"
  • Port: "COMXX" (dette skal være i overensstemmelse med COM -porten, der afspejles på din maskine. Min bruger COM31)

I orden! Jeg ved, at du har været ivrig efter at springe ind i kodningen, så i det næste trin er det det, vi vil fokusere på.

Trin 4: Tid til kode

I dette afsnit vil jeg starte med at dele kodestykker fra den færdige projektkode. Og i slutningen vil jeg offentliggøre den fulde kilde, hvilket gør det let for dig at blot kopiere og indsætte koden i din Arduino IDE -kildefil.

Overskriftsfiler:

#include /* Dette er biblioteket til de vigtigste XinaBox Core -funktioner. */

#include /* Dette er biblioteket til VOC & Weather Sensor xChip. */

Definere nogle konstanter til styring af RGB LED -signalerne:

#define redLedPin A4

#define greenLedPin 8 #define blueLedPin 9

Dernæst skal vi erklære en funktionsprototype til at overføre RGB -værdierne

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

Deklaration af SW02 -objektet:

xSW02 SW02;

Opsætningsmetoden ():

ugyldig opsætning () {

// Start I2C Communication Wire.begin (); // Start SW02 -sensoren SW02.begin (); // Forsinkelse for sensor til normalisering af forsinkelse (5000); }

Nu til hovedsløjfen ():

void loop () {

flyde tempC; }

Dernæst bliver vi nødt til at polle ved hjælp af SW02 -objektet, som vi har oprettet tidligere i programmet for at starte vores kommunikation med sensorchippen:

// Læs og beregne data fra SW02 sensorSW02.poll ();

Nu læser vi for at få sensorens temperaturmåling

tempC = SW02.getTempC ();

Når vi har aflæsningen, er det sidste, vi skal gøre, at bruge en række if … else … -kontroludsagn til at bestemme temperaturområdet, og derefter kalde funktionen setRGBColor ()

// Du kan justere temperaturområdet efter dit klima. For mig bor jeg i Singapore, // som er tropisk året rundt, og temperaturområdet kan være ret snævert her. hvis (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); }

Bemærk: Hvis du er interesseret i at vide, hvad de relevante RGB -værdier er for en bestemt farve, anbefaler jeg, at du foretager en Google -søgning efter "RGB -farveværdier". Der er masser af steder tilgængelige, hvor du kan bruge en farvevælger til at vælge den farve, du ønsker

// Hvis du kan lide det, og det er valgfrit, kan du også tilføje en forsinkelse mellem afstemningen for sensorens aflæsninger.

forsinkelse (DELAY_TIME);

Du kan naturligvis erklære DELAY_TIME konstant i programmets begyndelse, på den måde behøver du kun at ændre dens værdi én gang frem for flere steder i løbet af dit program. Endelig har vi brug for funktionen til at styre vores RGB LED:

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

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

Endeligt program

#omfatte

#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 () {// Start I2C Communication Wire.begin (); // Start SW02 -sensoren SW02.begin (); // Forsinkelse for sensor til normalisering af forsinkelse (5000); } void loop () {// Opret en variabel til lagring af data læst fra SW02 float tempC; tempC = 0; // Læs og beregne data fra SW02 -sensor SW02.poll (); // Anmod SW02 om at få temperaturmåling og gemme i // temperatur -variabel tempC = SW02.getTempC (); hvis (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); } // Lille forsinkelse mellem sensor læser forsinkelse (DELAY_TIME); } void setRGBColor (int redValue, int greenValue, int blueValue) {analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

Nu hvor vores program er klar, lad os programmere xChip! Uploadprocessen er nøjagtig den samme som, hvordan du ville uploade et program til dine Arduino -tavler.

Når du er færdig, hvorfor ikke tage stikket ud og bringe det ud til en testkørsel.

Anbefalede: