INHOUDSOPGAWE:
- Stap 1: Wat u nodig het …
- Stap 2: Verbind die stukke
- Stap 3: Die opstel van Arduino IDE
- Stap 4: Tyd om te kodeer
Video: RGB -temperatuuraanwyser (met XinaBox): 5 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Dit is amptelik my eerste Instructables -artikel, so ek gaan erken dat ek hierdie geleentheid nou gebruik om dit te probeer. Kry 'n idee van hoe die platform werk, die hele kant van die gebruikerservaring. Maar terwyl ek dit doen, het ek gedink ek kan ook van die geleentheid gebruik maak om te deel oor 'n eenvoudige projek waaraan ek vandag gewerk het (met behulp van die produkte van XinaBox, wat terloops as "X-in-a- Boks").
In hierdie eenvoudige instruksie van 5 stappe behandel ek die volgende onderwerpe:
- Komponente benodig
- Koppel die verskillende xChips aan mekaar.
- Die opstel van die Arduino IDE -omgewing.
- Skryf die kode
- En ten slotte, toets die idee
Wat ek nie in hierdie instruksies sal deel nie:
- Soveel as wat ek daarvan hou om te verduidelik wat elkeen van die xChips kan doen en hoe u dit kan manipuleer om sekere funksies uit te voer, sou dit nie die doel van hierdie instruksies wees nie. Ek is van plan om in die nabye toekoms ander instruksies te publiseer wat in elk van die verskillende xChips wat deur XinaBox se produkkatalogus beskikbaar is, sal duik.
- Ek gaan nie in op die basiese beginsels van die Arduino -kode nie, aangesien ek aanvaar dat u reeds 'n mate van ervaring het met die gebruik van die Arduino IDE sowel as 'n basiese begrip van C/C ++ programmering.
Stap 1: Wat u nodig het …
Tegnies begin die meeste basiese produkinstruksies gewoonlik met 'n "Hello World!" 'n voorbeeld, of selfs 'n 'Blink' voorbeeld, wat u moontlik reeds baie vertroud is met, aangesien u op 'n stadium met Arduino of Raspberry Pi gewerk het. Maar ek wil nie daarmee begin nie, want almal doen reeds dieselfde, wat dit regtig 'n bietjie vervelig maak.
In plaas daarvan wou ek begin met 'n praktiese projekidee. Iets wat eenvoudig en skaalbaar is in 'n meer komplekse projekidee as u wil.
Hier is die items wat ons benodig (verwys na die foto's wat in hierdie gedeelte van die instruksies verskaf word):
- IP02 - Gevorderde USB -programmeerkoppelvlak
- CC03 - Arm Cortex M0+ Core
- SW02 - VOC en weersensor (wat die BME680 -sensor van BOSCH gebruik)
- xBUS -verbindings - om I2C -kommunikasie tussen die verskillende xChips moontlik te maak (x2)
- xPDI -aansluiting - om programmering en ontfouting moontlik te maak (x1)
Stap 2: Verbind die stukke
Om al die stukke aan mekaar te koppel, begin ons eers met 1 stuk van die xBUS -aansluiting en xPDI -aansluiting.
Let op die rigting van die xChips na die beelde wat ek verskaf het en waarheen die verbindings gaan.
Tussen die IP02 en die CC03 xChips is dit redelik maklik om die verbindingspunte te identifiseer.
Vir CC03 sal dit die suidekant wees. Vir IP02 sal dit die noordekant van die xChip wees.
Sodra dit klaar is, sal ons nog 'n xBUS -aansluiting by die westekant van die CC03 xChip voeg.
Klaar?
Koppel nou net die SW02 xChip aan die westekant van CC03.
Voordat ons IP02 op ons skootrekenaar plaas, moet u seker maak dat die volgende opsies vir die twee skakelaars gekies word:
- B is gekies (skakelaar links)
- DCE is gekies (skakelaar regs)
Uiteindelik is ons nou gereed om die IP02 in ons skootrekenaar te plaas en begin met die opstel van die Arduino IDE.
Stap 3: Die opstel van Arduino IDE
In hierdie instruksies het ek weer aanvaar dat u reeds vertroud is met die Arduino IDE -omgewing en hoe u biblioteke binne die ontwikkelingsomgewing kan bestuur.
Vir die doel van hierdie projek benodig ons twee hoofbiblioteke:
- arduino-CORE-https://github.com/xinabox/arduino-CORE
- SW02 -biblioteek -
Laai albei biblioteke af na 'n plek op u lessenaar.
Begin dan u Arduino IDE.
Kies "Skets"> "Biblioteek insluit"> "Voeg. ZIP -biblioteek by …" in die hoofkieslys
Herhaal dieselfde proses vir beide biblioteeklêers.
Vervolgens moet ons die relevante "bord" sowel as "poort" kies. (Let daarop dat ek ook die nodige keuses met 'n oranje boks uitgelig het.
- Bord: "Arduino/Genuino Zero (oorspronklike USB -poort)"
- Poort: "COMXX" (dit moet volgens die COM -poort wees wat op u masjien weerspieël word. Myne gebruik COM31)
Regso! Ek weet dat u gretig was om in die kodering te spring, so in die volgende stap sal ons daarop fokus.
Stap 4: Tyd om te kodeer
In hierdie afdeling begin ek met die deel van kodebrokkies uit die voltooide projekkode. En aan die einde sal ek die volledige bron publiseer, wat dit vir u maklik maak om die kode in u Arduino IDE -bronlêer te plak en te plak.
Koptekstelêers:
#include /* Dit is die biblioteek vir die belangrikste XinaBox -kernfunksies. */
#include /* Dit is die biblioteek vir die VOC & Weersensor xChip. */
Definieer 'n paar konstantes vir die beheer van die RGB Led -seine:
#definieer rooiLedPin A4
#definieer groenLedPin 8 #definieer blouLedPin 9
Vervolgens moet ons 'n funksie -prototipe verklaar om die RGB -waardes te slaag
void setRGBColor (int redValue, int greenValue, int blueValue);
Verklaring van die SW02 -voorwerp:
xSW02 SW02;
Die setup () metode:
ongeldige opstelling () {
// Begin die I2C Communication Wire.begin (); // Begin die SW02 -sensor SW02.begin (); // Vertraging vir sensor om vertraging te normaliseer (5000); }
Nou vir die hooflus ():
leemte -lus () {
vlot tempC; }
Vervolgens moet ons 'n peiling doen met behulp van die SW02 -voorwerp wat ons vroeër in die program geskep het om ons kommunikasie met die sensorskyf te begin:
// Lees en bereken data van SW02 sensorSW02.poll ();
Nou lees ons om die sensor se temperatuurmeting te kry
tempC = SW02.getTempC ();
Sodra ons die lesing gekry het, is die laaste ding wat ons gaan doen om 'n reeks as … anders … stellings te gebruik om die temperatuurbereik te bepaal, en dan die setRGBColor () funksie te bel
// U kan die temperatuurreeks volgens u klimaat aanpas. Vir my woon ek in Singapoer, // wat die hele jaar deur tropies is en die temperatuurreeks hier redelik smal kan wees. as (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); }
Opmerking: as u belangstel om te weet wat die relevante RGB -waardes vir 'n spesifieke kleur is, beveel ek aan dat u 'RGB -kleurwaardes' soek. Daar is baie webwerwe beskikbaar waar u 'n kleurkeuse kan gebruik om die gewenste kleur te kies
// As u wil, en dit is opsioneel, kan u ook 'n vertraging byvoeg tussen die peiling vir die sensor se metings.
vertraging (DELAY_TIME);
U kan natuurlik die DELAY_TIME konstante aan die begin van die program verklaar; op hierdie manier hoef u slegs die waarde daarvan een keer te verander eerder as op verskeie plekke in u program. Laastens het ons die funksie nodig om ons RGB LED te beheer:
void setRGBColor (int redValue, int greenValue, int blueValue) {
analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }
Finale program
#insluit
#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; ongeldige opstelling () {// Begin die I2C Communication Wire.begin (); // Begin die SW02 -sensor SW02.begin (); // Vertraging vir sensor om vertraging te normaliseer (5000); } void lus () {// Skep 'n veranderlike om die data wat deur SW02 float tempC gelees is, te stoor; tempC = 0; // Lees en bereken data van SW02 sensor SW02.poll (); // Versoek SW02 om die temperatuurmeting te kry en stoor dit in die // temperatuurveranderlike tempC = SW02.getTempC (); as (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); } // Klein vertraging tussen sensor lees vertraging (DELAY_TIME); } void setRGBColor (int redValue, int greenValue, int blueValue) {analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }
Noudat ons program gereed is, laat ons die xChip programmeer! Die oplaai -proses is presies dieselfde as hoe u 'n program na u Arduino -borde sou oplaai.
As u klaar is, moet u die stekker uit die stekker trek en dit vir 'n toets laat gaan.
Aanbeveel:
Temperatuurmeting met behulp van XinaBox en 'n termistor: 8 stappe
Temperatuurmeting met behulp van XinaBox en 'n termistor: Meet die temperatuur van 'n vloeistof met 'n analoog ingang xChip van XinaBox en 'n termistorsonde
Datum, tyd en temperatuur vertoon met behulp van XinaBox: 8 stappe
Datum-, tyd- en temperatuurvertoning met behulp van XinaBox: Cool OLED -skerm wat die datum, tyd en temperatuur in Celsius en Fahrenheit toon met behulp van Xinabox xChips gebaseer op ESP8266
Hoe om 'n weerstasie te bou met behulp van XinaBox en Ubidots via HTTP: 7 stappe
Hoe om 'n weerstasie te bou met behulp van XinaBox en Ubidots via HTTP: Leer hoe u u eie weerstasie op Ubidots kan maak met behulp van XinaBox xChips (IP01, CW01 en SW01) Met die ESP8266 Core- en Wi-Fi-module (xChip CW01) kan gebruikers stuur data van XinaBox se modulêre xChips na die wolk. Hierdie data kan op afstand gemonitor word
Klink 'n piezo -zoemer met Blynk en XinaBox: 9 stappe
Klink 'n piezo -zoemer met Blynk en XinaBox: beheer enige 5V -element met Blynk en xChips. Hierdie projek klink 'n piezo -gonser uit my foon
Hoe om 'n rekenaar met maklike stappe en foto's uitmekaar te haal: 13 stappe (met foto's)
Hoe om 'n rekenaar uitmekaar te haal met eenvoudige stappe en foto's: dit is 'n instruksie oor hoe om 'n rekenaar uitmekaar te haal. Die meeste basiese komponente is modulêr en kan maklik verwyder word. Dit is egter belangrik dat u daaroor georganiseerd is. Dit sal u verhinder om onderdele te verloor, en ook om die montering weer