Satura rādītājs:

Izveidojiet spožuma moduli, izmantojot AtHome: 7 soļi
Izveidojiet spožuma moduli, izmantojot AtHome: 7 soļi

Video: Izveidojiet spožuma moduli, izmantojot AtHome: 7 soļi

Video: Izveidojiet spožuma moduli, izmantojot AtHome: 7 soļi
Video: 7 новых БЛУЗ и ТУНИК которые сделаны 1 ШВОМ | Мастер-класс от Владанны 2024, Novembris
Anonim
Izveidojiet spožuma moduli, izmantojot AtHome
Izveidojiet spožuma moduli, izmantojot AtHome

AtHome ir pilnībā atvērta avota un atvērtas aparatūras studentu projekts, ko izstrādājusi grupa AtHome no Epitech, un kura mērķis ir izstrādāt vairāku atsevišķu sensoru moduļu savienotu risinājumu, kas sazinās ar pašmītni mitinātu datu bāzi, atklājot API, ko izmanto viedtālruņa lietojumprogrammas un tīmekļa lietojumprogrammas barošanai. Moduļi uzrauga mājas iekštelpu vidi un spēj sniegt lietotājam vizuālu atgriezenisko saiti, pārejot no zaļas (labas) uz sarkanu (sliktu), un lietotājs var redzēt pārsūtītos datus, izmantojot moduļa sērijas sakarus vai mūsu lietojumprogrammas, ja tās izmantojat.

Lai gan šis projekts joprojām tiek aktīvi attīstīts, mūsu moduļu pamatfunkcijas tagad ir gatavas un šķietami viegli lietojamas pielāgotu moduļu izstrādei. Tāpēc es ierosinu jums redzēt, kā izveidot savu vienkāršo moduli, izmantojot šo spilgtuma moduļa piemēru.

Šie moduļi pamatā ir veidoti ar Arduino saderīgu plati (ar daļēju Arduino kodolu vajadzētu pietikt, ja vien tam ir Stream, Wire un UART plūsmas atbalsts), LED (sarkans vai RGB), kas problēmas gadījumā kļūst sarkans, sensors, barošanas avots (sienas barošanas avots vai akumulators) un lāzera griezuma korpuss.

Jā, tas noteikti nav jaunums, ir daudz sensoru projektu, bet mēs ceram, ka jums palīdzēs citas funkcijas, piemēram, veselības problēmu noteikšana, saziņa un informācijas glabāšana paša mitinātā serverī un vizualizācijas lietojumprogramma. Vai arī, ja vēlaties tikai uzraudzīt savu māju, vienkāršus projektus vai ne mazāk interesantus:)

1. darbība: sastāvdaļu savākšana

Komponentu vākšana
Komponentu vākšana

Šim projektam jums būs nepieciešami daži komponenti, lai izveidotu AtHome moduli:

  • 1x ar Arduino saderīga tāfele: šeit es izmantošu Arduino UNO (bet tas darbojas arī ar citiem dēļiem, piemēram, TI Launchpad un ESP8266 dēļiem)
  • 1x sensors: izmantošu spilgtuma sensoru TSL2561 (atbalstīto sensoru saraksts ir pieejams mūsu bibliotēkas dokumentācijā)
  • 1x LED: šeit es izmantošu Grove Chainable RGB LED (bet tas var būt arī vienkāršs sarkans LED vai NeoPixel)
  • Dupont vadi

Saderīgo komponentu saraksts ir pieejams mūsu projekta dokumentācijā.

2. darbība: mūsu bibliotēkas instalēšana

Mūsu bibliotēkas instalēšana
Mūsu bibliotēkas instalēšana
Mūsu bibliotēkas instalēšana
Mūsu bibliotēkas instalēšana

Lai instalētu mūsu bibliotēku, jums ir jālejupielādē no mūsu krātuves (mēs to vēlāk publicēsim Arduino IDE sarakstā un PlatformIO), izmantojot šo saiti:

gitlab.com/Woodbox/Framework/-/jobs/artifacts/master/download?job=deploy

Pēc tam dodieties uz Arduino IDE un izvēlieties "Skice> Iekļaut bibliotēku> Pievienot. ZIP bibliotēku …". Pēc tam atlasiet zip failu ar nosaukumu "artifacts.zip" un noklikšķiniet uz "Labi".

3. darbība. Nepieciešamo bibliotēku instalēšana

Nepieciešamo bibliotēku instalēšana
Nepieciešamo bibliotēku instalēšana
Nepieciešamo bibliotēku instalēšana
Nepieciešamo bibliotēku instalēšana
Nepieciešamo bibliotēku instalēšana
Nepieciešamo bibliotēku instalēšana

Lai mūsu bibliotēka darbotos, datorā ir jāinstalē dažas citas bibliotēkas:

  • Arkhipenko TaskScheduler bibliotēka
  • SEEED Studio Grove digitālā gaismas sensora bibliotēka
  • SEEED Studio Grove Chainable RGB LED bibliotēka
  • Adafruit NeoPixel bibliotēka

Jūs varat tos instalēt, izmantojot Arduino IDE bibliotēkas pārvaldnieku, dodoties uz "Skice"> "Iekļaut bibliotēku"> "Pārvaldīt bibliotēkas …".

Atvērtajā jaunajā logā baltajā meklēšanas joslā ierakstiet tās bibliotēkas nosaukumu, kuru vēlaties instalēt, un pēc tam noklikšķiniet uz tās bloka. Parādīsies poga "Instalēt", jums vienkārši jānoklikšķina uz tās, un IDE to lejupielādēs un instalēs jūsu vietā.

4. solis: moduļa salikšana

Moduļa salikšana
Moduļa salikšana

Mēs sāksim ar sensoru. Savienojiet caur vadu TSL2561 VCC tapu ar Arduino 5V tapu, sensora GND tapu ar vienu no Arduino GND tapām un sensora SDA un SCL tapas ar Arduino SDA un SCL tapām. Tagad esat pabeidzis!

Tagad pievienojiet Grove Chainable RGB LED VCC tapu ar Arduino 5V tapu un LED GND tapu ar Arduino otro GND. Ja jūs esat Arduino kā tikai viena 5V tapa, varat izmantot maizes dēli, lai savienotu Arduino 5V ar + rīvdēļa rindu un savienotu visas savas sastāvdaļas ar 5V tapām vai lodētu tās kopā uz sloksnes plāksnes vai izmantojiet wago savienotājus vai visu, ko vēlaties. Tagad savienojiet sava LED CI tapu ar Arduino 7. tapu un gaismas diodes DI tapu ar Arduino 8. tapu. Ja jums nav šāda gaismas diodes, neuztraucieties, ir iespējams izmantot iebūvēto Arduino plates vai klasisko gaismas diodi, tikai nedaudz mainot kodu.

5. darbība. Spilgtuma moduļa skices rakstīšana

Spilgtuma moduļa skices rakstīšana
Spilgtuma moduļa skices rakstīšana

Izveidosim jaunu skici un uzrakstīsim sava moduļa kodu.

Ja jūs neinteresē skices skaidrojums, varat to vienkārši nokopēt un ielīmēt savā Arduino IDE:

#iekļaut

izmantojot LightModule = AtHomeModule; Straume *straumes = {& Sērijas, nullptr}; GroveChainableLED:: Pins grovePins = {7, 8}; GroveChainableLED LED (& grovePins); LightModule *modulis = LightModule:: getInstance (); void setup () {// ievietojiet šeit savu iestatīšanas kodu, lai palaistu vienu reizi: Serial.begin (9600); modulis-> setStreams (straumes); GroveDigitalLightSensor *lightSensor = jauns GroveDigitalLightSensor (); modulis-> setSensor (lightSensor); modulis-> setDisplay (& led); modulis-> iestatīšana (); } void loop () {// ievietojiet šeit savu galveno kodu, lai palaistu atkārtoti: module-> run (); }

Ja vēlaties saprast visu, ko šis kods dara, varat izlasīt šo informāciju vai, ja jūs tas neinteresē, varat pāriet tieši uz nākamo darbību.

Lai sāktu, mūsu skicē ir jāiekļauj mūsu bibliotēka, uzrakstot šo rindu skices augšdaļā:

#iekļaut

Tagad mums ir jāizveido aizstājvārds izmantotajam moduļa objektam. To var redzēt kā kastīti ar vairākām pogām, ko izmanto, lai mainītu tā komponentus, iedarbinātu, apturētu utt. Tā kā tā ir kastīte, kas veidota pēc veidnes (tāpat kā parastā veidne, ko mēs izmantojam projektos kā cilvēki, tai ir sākuma bāze, un Arduino kompilators izveido galīgo kodu, pamatojoties uz parametriem, kurus mēs viņam piešķiram), kas nosaka veidu, kas attēlo sensora vērtību un sensoru vērtību skaits, ko mēs vēlamies saglabāt atmiņā, tas ir norādīts tā nosaukumā, un tas parasti jāatkārto katru reizi, kad mēs to vēlamies izmantot. Kas ir mazliet kaitinoši, tāpēc šīs kastes pilnajam nosaukumam mēs piesaistīsim jaunu nosaukumu, aizstājvārdu.

Teiksim, piemēram, es vēlos, lai šī lodziņa nosaukums būtu "LightModule", jo tā tiks izmantota, lai ieviestu spožuma uzraudzības moduli, un es vēlos vienlaikus saglabāt tikai 1 vērtību. Spilgtumu luksos kā neatņemamu tipu attēlo mūsu TSL2561 sensors, ko datori attēlo kā uint16_t. Mūsu aizstājvārds izskatīsies šādi:

izmantojot LightModule = AtHomeModule;

atslēgvārds "izmantojot" nozīmē, ka mēs veidojam aizstājvārdu, un nosaukums, ko tam piešķiram, atbilst secībai aiz rakstzīmes "=".

"AtHomeModule" ir šīs kastes īstais nosaukums, un mēs piešķiram jaunu nosaukumu, un parametri, kas nosaka vērtību attēlojumu un atmiņā saglabāto vērtību skaitu, ir norādīti starp "".

Tagad, kad vēlāk izmantosim nosaukumu "AtHomeModule", Arduino zinās, ka tas attiecas uz pilnu nosaukumu "AtHomeModule".

Ja vēlaties, lai kaste atmiņā varētu saglabāt 5 vērtības, nevis 1, jums vienkārši jāaizstāj “1” ar “5”, un Arduino ģenerēs jums cita veida lodziņu, kas spēj darīt to, ko vēlaties. Tomēr ņemiet vērā: ja modulis ir ieprogrammēts nosūtīt savas vērtības, pirms tam ir laiks efektīvi izmērīt 5 sensora vērtības, jūs nekad neredzēsit, ka 5 no tām tiek nosūtītas, jo tas sūta tikai jaunās vērtības kopš pēdējās augšupielādes.

Tālāk mums ir jāizveido rādītāju masīvs, kas satur norādes uz Arduino plūsmām, ko modulis izmanto saziņai, un to vienmēr izbeidz atslēgas darbs "nullptr". Šeit es izmantoju tikai Arduino sērijas straumi, kas sazinās ar datoru, izmantojot USB portu, tāpēc masīvs izskatās šādi:

Straume *straumes = {& Sērijas, nullptr};

Rakstzīme "*" nozīmē, ka tips ir rādītājs (elementa atrašanās vieta, nevis pats elements), un iekavas "" nozīmē, ka Arduino tas ir masīvs, tāpēc mēs varam ievietot vairākas vērtības.

Tālāk mums ir jāizveido mūsu LED. Lai to izdarītu, mums jāraksta šādas divas rindas;

GroveChainableLED:: Pins grovePins = {7, 8};

GroveChainableLED LED (& grovePins);

Ja jums nav Grove RGB LED, bet tomēr vēlaties vizuālu atgriezenisko saiti, varat to izdarīt, vienkārši mainot skici. Aizstājiet divas iepriekšējās rindas ar šo rindu:

Vienkrāsains LED LED (LED_BUILTIN);

Šajā konfigurācijā zaļā iebūvētā gaismas diode iedegsies tik ilgi, kamēr uzraudzīta vērtība būs veselībai piemērota, un izslēgsies, kad tā vairs nebūs savienota. Ja vēlaties, lai tas ieslēgtos, kad tas vairs nav savienots (jo, piemēram, 13. tapā izmantojat sarkano gaismas diodi, nevis zaļo), varat izmantot šo rindu:

Vienkrāsains LED LED (LED_BUILTIN, true);

Nākamais solis ir izveidot mūsu moduli. Tas tiek darīts pirmo reizi, kad iegūstam tās atrašanās vietu atmiņā, izsaucot metodi "getInstance", piemēram:

LightModule *modulis = LightModule:: getInstance ();

Pēc tam mums ir jāiestata parametri Arduino funkcijā "setup ()", vispirms inicializējot "Sērijas" portu, kā parasti Arduino skicēs:

Sērijas sākums (9600);

Mēs izveidojam gaismas sensoru, rakstot šo rindu:

GroveDigitalLightSensor *lightSensor = jauns GroveDigitalLightSensor ();

Pēc tam mēs sakām savam modulim izmantot mūsu rādītāju masīvu Arduino straumē, lai sazinātos caur tiem:

modulis-> setStreams (straumes);

Mēs arī sakām savam modulim izmantot mūsu gaismas sensoru, lai uzraudzītu gaismas intensitāti, kur atrodas modulis:

modulis-> setSensor (lightSensor);

Mēs sakām savam modulim izmantot mūsu LED, lai sniegtu mums vizuālu atgriezenisko saiti:

modulis-> setDisplay (& led);

Visbeidzot, mēs sakām savam modulim, ka tas ir gatavs veikt jebkuru iekšējo konfigurāciju, kas tam ir jāizdara, izsaucot savu "iestatīšanas" funkciju:

modulis-> iestatīšana ();

Mūsu pēdējais solis ir izsaukt mūsu moduļa funkciju "run ()", kas ir paredzēts izsaukšanai katrā Arduino funkcijas "cilpa" atkārtojumā, ierakstot šo rindu funkcijas "cilpa" iekšpusē:

modulis-> palaist ();

Tagad mūsu skice beidzot ir gatava augšupielādēt Arduino un pārbaudīt mūsu moduli!

6. darbība: mūsu AtHome moduļa pārbaude

Mūsu AtHome moduļa pārbaude
Mūsu AtHome moduļa pārbaude
Mūsu AtHome moduļa pārbaude
Mūsu AtHome moduļa pārbaude

Lai augšupielādētu skici Arduino, izvēlieties savu Arduino UNO plati, dodoties uz "Tools"> "Port"> "[COMx or/dev/x] (Arduino/Genuino UNO)".

Visbeidzot, vienkārši noklikšķiniet uz pogas "Augšupielādēt" (apļa poga ar bultiņu, kas vērsta pa labi, rīkjoslas otrā ikona), lai augšupielādētu skici savā dēlī.

Tas ir pabeigts! Tagad jūsu modulim vajadzētu strādāt un nosūtīt vērtības uz datoru, kas redzams Arduino sērijas monitorā. To var pārbaudīt, izvēlnē "Rīki" atverot Arduino "Sērijas monitoru", un jums vajadzētu būt izvadam, kas izskatās kā šī soļa otrais titulbilde:)

7. solis: moduļa korpusa izveide

Korpusa veidošana modulim
Korpusa veidošana modulim

Jūs varat izveidot vienkāršu kārbu savam modulim, sagriežot to ar lāzeru 3 mm saplākšņa dēļā.

Lai izgatavotu kastes, mēs izmantojam makercase, lai sagatavotu veidni vēlamajos izmēros, kurus vēlāk pielāgojam. Šim solim ir pievienots spožuma moduļa svg fails.

Pēc tam vienkārši pielīmējiet sejas kopā, izņemot vienu, lai vēlāk varētu to atvērt, ievietojiet ķēdi iekšpusē un ievietojiet gaismas diodi korpusa caurumā (mēs izmantojam caurspīdīgu lenti, lai aizpildītu caurumu un izkliedētu gaismu, kā arī uzlīmētu gaismas diodi priekšā) no tā).

Tagad vienkārši pievienojiet akumulatoru, lai darbinātu savu Arduino, aizveriet korpusu, un jūsu modulis ir gatavs, un tam vajadzētu izskatīties labi:)

Ieteicams: