Taula de continguts:

Indicador de temperatura RGB (amb XinaBox): 5 passos (amb imatges)
Indicador de temperatura RGB (amb XinaBox): 5 passos (amb imatges)

Vídeo: Indicador de temperatura RGB (amb XinaBox): 5 passos (amb imatges)

Vídeo: Indicador de temperatura RGB (amb XinaBox): 5 passos (amb imatges)
Vídeo: Zigbee выключатель с сенсорным диммером Moes - делаем освещение умным, Tuya Smart, Home Assistant 2024, Juliol
Anonim
Indicador de temperatura RGB (amb XinaBox)
Indicador de temperatura RGB (amb XinaBox)

Aquest és oficialment el meu primer article sobre Instructables, així que admetré que estic aprofitant aquesta oportunitat ara mateix per provar-ho. Feu una idea del funcionament de la plataforma, de tota la seva experiència d’usuari. Però mentre ho faig, vaig pensar que també podia aprofitar l’oportunitat per compartir un projecte senzill en què he estat treballant avui (utilitzant els productes de XinaBox, que per cert, es pronuncia com a “X-in-a- Caixa ).

En aquesta senzilla instrucció en 5 passos, tractaré els temes següents:

  • Components necessaris
  • Connectant els diferents xChips junts.
  • Configuració de l'entorn IDE d'Arduino.
  • Escrivint el codi
  • I, finalment, provar la idea

El que no compartiré en aquest instructiu:

  • Per molt que m'agradi endinsar-me en explicar què poden fer cadascun d'aquests xChips i com podeu manipular-los per realitzar determinades funcionalitats, aquest no seria l'objectiu d'aquest instructiu. Tinc previst publicar altres instruccibles en un futur proper que aprofundiran en cadascun dels diferents xChips disponibles al catàleg de productes de XinaBox.
  • No entraré en els conceptes bàsics del codi Arduino, ja que suposo que ja teniu un cert nivell d’experiència amb l’ús de l’IDE Arduino, així com un coneixement bàsic de la programació C / C ++.

Pas 1: què necessiteu …

Què necessites…
Què necessites…
Què necessites…
Què necessites…
Què necessites…
Què necessites…

Tècnicament, la majoria dels tutorials bàsics sobre productes comencen normalment amb un "Hello World!" per exemple, o fins i tot un exemple "Parpellejar", que potser ja coneixeu molt, ja que heu treballat amb Arduino o Raspberry Pi en algun moment. Però no vull començar amb això perquè tothom ja fa el mateix, cosa que fa que sigui una mica avorrit.

En el seu lloc, volia començar amb una idea de projecte pràctic. Una cosa que sigui prou senzilla i escalable per convertir-la en una idea de projecte més complexa si voleu.

Aquests són els elements que necessitarem (consulteu les fotos proporcionades per a aquesta secció de l’Instruible):

  1. IP02: interfície de programació USB avançada
  2. CC03 - Arm Cortex M0 + Core
  3. SW02 - VOC i sensor meteorològic (que utilitza el sensor BME680 de BOSCH)
  4. Connectors xBUS: per permetre les comunicacions I2C entre els diferents xChips (x2)
  5. Connector xPDI: per habilitar la programació i depuració (x1)

Pas 2: connectar les peces

Connectant les peces
Connectant les peces
Connectant les peces
Connectant les peces
Connectant les peces
Connectant les peces

Per connectar totes les peces juntes, primer començarem per 1 tros del connector xBUS i el connector xPDI.

Seguint les imatges que he proporcionat, observeu l’orientació dels xChips i cap a on aniran els connectors.

Entre l'IP02 i el CC03 xChips, és bastant fàcil identificar els punts de connexió.

Per al CC03, serà el costat sud. Per a IP02, serà el costat nord del xChip.

Un cop fet això, afegirem un altre connector xBUS al costat oest del CC03 xChip.

Fet?

Ara, només cal connectar el SW02 xChip al costat oest de CC03.

Abans d’inserir IP02 al nostre ordinador portàtil, assegureu-vos que estiguin seleccionades les opcions següents per als dos commutadors:

  • B està seleccionat (interruptor esquerre)
  • DCE està seleccionat (interruptor dret)

Finalment, ja estem preparats per inserir l'IP02 al nostre ordinador portàtil i començar a configurar l'IDE Arduino.

Pas 3: Configuració d'Arduino IDE

Configurant Arduino IDE
Configurant Arduino IDE
Configurant Arduino IDE
Configurant Arduino IDE

Una vegada més, en aquest instructiu, he suposat que ja esteu familiaritzat amb l'entorn IDE d'Arduino, així com amb la manera de gestionar les biblioteques dins de l'entorn de desenvolupament.

Als efectes d’aquest projecte, necessitarem dues biblioteques principals:

  • arduino-CORE -
  • Biblioteca SW02:

Baixeu les dues biblioteques a una ubicació del vostre escriptori.

A continuació, inicieu el vostre IDE Arduino.

Al menú principal, seleccioneu "Esbós"> "Inclou biblioteca"> "Afegeix biblioteca. ZIP …"

Repetiu el mateix procés per a tots dos fitxers de biblioteca.

A continuació, haurem de seleccionar la "Junta" corresponent i també "Port". (Tingueu en compte que també he ressaltat les seleccions necessàries mitjançant un quadre taronja.

  • Tauler: "Arduino / Genuino Zero (port USB natiu)"
  • Port: "COMXX" (hauria de ser segons el port COM que es reflecteixi a la vostra màquina. El meu fa servir COM31)

Bé! Sé que heu tingut moltes ganes de saltar a la codificació, així que en el següent pas, en això ens centrarem.

Pas 4: temps per codificar

En aquesta secció, començaré compartint fragments de codi del codi de projecte completat. I al final, publicaré la font completa, cosa que us facilitarà simplement copiar i enganxar el codi al fitxer font Arduino IDE.

Fitxers de capçalera:

#include / * Aquesta és la biblioteca de les principals funcions bàsiques de XinaBox. * /

#include / * Aquesta és la biblioteca del xChip VOC & Weather Sensor. * /

Definició d'algunes constants per controlar els senyals LED RGB:

#define redLedPin A4

#define greenLedPin 8 #define blueLedPin 9

A continuació, hem de declarar un prototip de funció per passar els valors RGB

void setRGBColor (int RedValue, int GreenValue, int BlueValue);

Declaració de l'objecte SW02:

xSW02 SW02;

El mètode setup ():

configuració nul·la () {

// Inicieu el fil de comunicació I2C.begin (); // Inicieu el sensor SW02 SW02.begin (); // Retard perquè el sensor normalitzi el retard (5000); }

Ara per al bucle principal ():

bucle buit () {

floC tempC; }

A continuació, haurem d’interrogar amb l’objecte SW02 que hem creat anteriorment al programa per iniciar la nostra comunicació amb el xip del sensor:

// Llegiu i calculeu dades de SW02 sensorSW02.poll ();

Ara estem llegint per obtenir la lectura del temperatura del sensor

tempC = SW02.getTempC ();

Una vegada que tinguem la lectura, l’últim que farem és utilitzar una sèrie d’instruccions de control if … else … per determinar l’interval de temperatura i, a continuació, cridar a la funció setRGBColor ()

// Podeu ajustar el rang de temperatura segons el vostre clima. Per a mi, visc a Singapur, // que és tropical tot l'any, i el rang de temperatura pot ser bastant reduït aquí. if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); }

Nota: si us interessa saber quins són els valors RGB rellevants per a un color concret, us recomanem que cerqueu a Google "Valors de color RGB". Hi ha molts llocs disponibles on podeu utilitzar un selector de color per escollir el color que vulgueu

// Si voleu, i és opcional, també podeu afegir un retard entre el sondeig per les lectures del sensor.

retard (DELAY_TIME);

Per descomptat, podeu declarar la constant DELAY_TIME al començament del programa, d'aquesta manera, només heu de modificar-ne el valor una vegada en lloc de fer-ho en diversos llocs del programa. Finalment, necessitem la funció per controlar el nostre LED RGB:

void setRGBColor (int RedValue, int GreenValue, int BlueValue) {

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

Programa final

#incloure

#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 () {// Inicieu el fil de comunicació I2C.begin (); // Inicieu el sensor SW02 SW02.begin (); // Retard perquè el sensor normalitzi el retard (5000); } void loop () {// Creeu una variable per emmagatzemar les dades llegides des de la tempC flotant SW02; tempC = 0; // Llegiu i calculeu dades del sensor SW02 SW02.poll (); // Sol·liciteu SW02 per obtenir la mesura de la temperatura i emmagatzemar-la a la // temperatura de temperatura tempC = SW02.getTempC (); if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); } // Petit retard entre el retard de lectura del sensor (DELAY_TIME); } void setRGBColor (int RedValue, int GreenValue, int blueValue) {analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

Ara que el nostre programa està a punt, programem el xChip. El procés de càrrega és exactament el mateix que com penjaríeu un programa a les vostres plaques Arduino.

Quan hàgiu acabat, per què no el desconnecteu i el traieu per provar-lo.

Recomanat: