Sisukord:

Ehitage AtHome'iga heledusmoodul: 7 sammu
Ehitage AtHome'iga heledusmoodul: 7 sammu

Video: Ehitage AtHome'iga heledusmoodul: 7 sammu

Video: Ehitage AtHome'iga heledusmoodul: 7 sammu
Video: Скажите эти слова, если срочно нужны деньги. Сильный ритуал на быстрые деньги 2024, November
Anonim
Ehitage AtHome'iga heledusmoodul
Ehitage AtHome'iga heledusmoodul

AtHome on täielikult avatud lähtekoodiga ja avatud riistvaraga õpilasprojekt, mille on koostanud Epitechi grupp AtHome, mille eesmärk on välja töötada ühendatud lahendus mitmest individuaalsest andurimoodulist, mis suhtlevad ise hostitud andmebaasiga, paljastades nutitelefonirakenduse ja veebirakenduse toitmiseks kasutatava API. Moodulid jälgivad maja sisekeskkonda ja suudavad anda kasutajale visuaalset tagasisidet, alates rohelisest (hea) kuni punase (halb) ja edastatud andmed on kasutaja jaoks nähtavad mooduli jadaühenduse kaudu või meie rakendusi, kui te neid kasutate.

Kuigi see projekt on veel aktiivselt arendamisel, on meie moodulite põhifunktsioonid nüüd valmis ja väidetavalt hõlpsasti kasutatavad kohandatud moodulite väljatöötamiseks. Seetõttu soovitan teil selle heledusmooduli näite abil vaadata, kuidas oma lihtsat moodulit luua.

Need moodulid on põhimõtteliselt ehitatud Arduino-ühilduva plaadiga (osalisest Arduino tuumast peaks piisama, kui sellel on voog, traat ja UART-voo tugi), LED (punane või RGB), mis probleemi korral punaseks muutub, andur, toiteallikas (seina toiteallikas või aku) ja laserlõigatud ümbris.

Jah, see pole kindlasti uus, anduriprojekte on palju, kuid loodame, et teid aitavad ka muud funktsioonid, nagu terviseprobleemide avastamine, suhtlemine ja teabe salvestamine ise hostitud serverisse ja visualiseerimisrakendus. Või kui soovite lihtsalt oma maja jälgida, lihtsaid projekte või mitte vähem huvitavaid:)

Samm: komponentide kogumine

Komponentide kogumine
Komponentide kogumine

Selle projekti jaoks vajate AtHome mooduli loomiseks mõnda komponenti:

  • 1x Arduino-ühilduv plaat: siin kasutan Arduino UNO-d (kuid see töötab ka teiste tahvlitega nagu TI Launchpad ja ESP8266 plaadid)
  • 1x andur: kasutan heledusandurit TSL2561 (toetatud andurite loend on saadaval meie raamatukogu dokumentatsioonis)
  • 1x LED: kasutan siin Grove Chainable RGB LED -i (kuid see võib olla ka lihtne punane LED või NeoPixel)
  • Duponti juhtmed

Ühilduvate komponentide loend on saadaval meie projekti dokumentatsioonis.

2. samm: meie kogu installimine

Meie raamatukogu paigaldamine
Meie raamatukogu paigaldamine
Meie raamatukogu paigaldamine
Meie raamatukogu paigaldamine

Meie kogu installimiseks peate alla laadima meie hoidlast (avaldame selle hiljem Arduino IDE loendis ja PlatformIO -s) selle lingiga:

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

Seejärel minge Arduino IDE -sse ja valige "Sketch> Include Library> Add. ZIP Library…". Seejärel valige ZIP -fail nimega "artifacts.zip" ja klõpsake "OK".

Samm: vajalike raamatukogude installimine

Nõutavate raamatukogude installimine
Nõutavate raamatukogude installimine
Nõutavate raamatukogude installimine
Nõutavate raamatukogude installimine
Nõutavate raamatukogude installimine
Nõutavate raamatukogude installimine

Töötamiseks vajab meie raamatukogu teie arvutisse installimist veel mõnda raamatukogu:

  • Arkhipenko TaskScheduler raamatukogu
  • SEEED Studio Grove digitaalse valgusanduri raamatukogu
  • SEEED Studio Grove Chainable RGB LED raamatukogu
  • Adafruit NeoPixeli raamatukogu

Saate need installida Arduino IDE raamatukoguhalduri kaudu, minnes "Visand"> "Kaasa raamatukogu"> "Halda teeke …".

Avanevas uues aknas kirjutage valgesse otsinguribale selle teegi nimi, mida soovite installida, seejärel klõpsake selle plokki. Ilmub nupp "Install", peate lihtsalt sellel klõpsama ja IDE laadib selle alla ja installib selle teie jaoks.

4. samm: mooduli kokkupanek

Mooduli kokkupanek
Mooduli kokkupanek

Alustame anduriga. Ühendage juhtme kaudu TSL2561 VCC tihvt Arduino 5 V kontaktiga, anduri GND tihvt ühe Arduino GND kontaktiga ja anduri SDA ja SCL tihvtid Arduino SDA ja SCL tihvtidega. Nüüd olete valmis!

Nüüd ühendage Grove Chainable RGB LED VCC tihvt Arduino 5V kontaktiga ja LED GND tihvt Arduino teise GND -ga. Kui olete Arduino ainult ühe 5V pinina, saate leivaplaadi abil ühendada Arduino 5v leivaplaadi + reaga ja ühendada kõik selle komponendid 5V nööpnõelad selle külge või jootma need kokku ribatükil või kasutage wago pistikuid või mida iganes soovite. Nüüd ühendage oma LED -i CI -tihvt Arduino tihvtiga 7 ja LED -i DI -pistik oma Arduino tihvtiga 8. Kui teil sellist LED-i pole, siis ärge muretsege, vaid väikese koodimuudatusega on võimalik kasutada Arduino plaadi sisseehitatud või klassikalist LED-i.

5. samm: heledusmooduli eskiisi kirjutamine

Heleduse mooduli eskiisi kirjutamine
Heleduse mooduli eskiisi kirjutamine

Loome uue visandi ja kirjutame oma mooduli koodi.

Kui teid ei huvita visandi selgitus, saate selle lihtsalt kopeerida ja kleepida oma Arduino IDE -sse:

#kaasake

kasutades LightModule = AtHomeModule; Stream *stream = {& Serial, nullptr}; GroveChainableLED:: Pins grovePins = {7, 8}; GroveChainableLED led (& grovePins); LightModule *moodul = LightModule:: getInstance (); void setup () {// pange oma seadistuskood siia, et seda korra käivitada: Serial.begin (9600); moodul-> setStreams (ojad); GroveDigitalLightSensor *lightSensor = uus GroveDigitalLightSensor (); moodul-> setSensor (lightSensor); moodul-> setDisplay (& led); moodul-> seadistamine (); } void loop () {// pange siia oma põhikood, et seda korduvalt käitada: module-> run (); }

Kui soovite aru saada, mida see kood teeb, võite lugeda järgmist või kui te pole huvitatud, võite hüpata otse järgmisele sammule.

Alustuseks peame oma visandisse kaasama oma raamatukogu, kirjutades visandi ülaossa selle rea:

#kaasake

Nüüd peame looma kasutatava mooduliobjekti varjunime. Näete seda karbina, millel on mitu nuppu selle komponentide muutmiseks, käivitamiseks, peatamiseks jne … Kuna see on malli koostatud kast (nagu tavaline mall, mida kasutame projektidena inimestena, on sellel stardibaas ja Arduino koostaja ehitab lõpliku koodi talle antud parameetrite alusel), mis määratleb anduri väärtust tähistava tüübi ja andurite väärtuste arv, mida soovime mällu hoida, on see nimega määratud ja tavaliselt tuleks seda korrata iga kord, kui seda kasutada soovime. Mis on natuke tüütu, seetõttu seostame selle kasti täisnimega uue nime, varjunime.

Oletame näiteks, et ma tahan, et selle kasti nimi oleks "LightModule", kuna seda kasutatakse heleduse jälgimise mooduli rakendamiseks ja ma tahan hoida ainult 1 väärtust korraga. Heledust esindab luksides lahutamatu tüübina meie TSL2561 andur, mida arvutid tähistavad uint16_t -na. Meie varjunimi näeb välja selline:

kasutades LightModule = AtHomeModule;

märksõna "kasutamine" tähendab, et me loome varjunime ja nimi, mille me sellele vahetult pärast anname, vastab märgile "=" järgnevale järjestusele.

"AtHomeModule" on selle kasti tegelik nimi, millele anname uue nime ning parameetrid, mis määravad väärtuste esituse ja mällu salvestatud väärtuste arvu, on loetletud "" vahel.

Nüüd, kui kasutame hiljem nime "AtHomeModule", teab Arduino, et see viitab täisnimele "AtHomeModule".

Kui soovite, et teie kast hoiaks mällu 5 väärtust, mitte 1, peate lihtsalt asendama "1" väärtusega "5" ja Arduino loob teile teist tüüpi kasti, mis suudab teha seda, mida soovite. Pange aga tähele, et kui moodul on programmeeritud saatma oma väärtused enne, kui on aega anduri 5 väärtust tõhusalt mõõta, ei näe te kunagi 5 neist saadetud, kuna see saadab pärast viimast üleslaadimist ainult uued väärtused.

Järgmisena peame looma kursorite massiivi, mis sisaldavad näpunäiteid Arduino voogudele, mida moodul kasutab suhtlemiseks ja mille lõpetab alati võtmetöötlus "nullptr". Siin kasutan ainult Arduino "jada" voogu, mis suhtleb arvutiga USB -pordi kaudu, nii et massiiv näeb välja selline:

Stream *stream = {& Serial, nullptr};

Märk "*" tähendab, et tüüp on osuti (elemendi asukoht, mitte element ise) ja sulgud "" tähendavad Arduino keeles massiivi, nii et saame panna mitu väärtust.

Järgmisena peame looma oma LED -i. Selleks peame kirjutama järgmised kaks rida;

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

GroveChainableLED led (& grovePins);

Kui teil pole Grove RGB LED -i, kuid soovite siiski visuaalset tagasisidet, saate seda teha eskiisi lihtsa muutmisega. Asendage kaks eelmist rida selle reaga:

Ühevärviline LED -valgusdiood (LED_BUILTIN);

Selles konfiguratsioonis süttib sisseehitatud roheline valgusdiood seni, kuni jälgitav väärtus on tervisele sobiv, ja kustub, kui see ei ole ühendatud. Kui soovite, et see lülituks sisse, kui see pole ühendatud (kuna kasutate näiteks tihvti 13 rohelise asemel punast LED -i), võite selle asemel kasutada järgmist rida:

Ühevärviline LED -valgusdiood (LED_BUILTIN, tõene);

Järgmine samm on luua meie moodul ise. See on tehtud esimest korda, kui saame selle asukoha mällu, helistades meetodile "getInstance".

LightModule *moodul = LightModule:: getInstance ();

Seejärel peame seadistama parameetrid Arduino funktsioonis "setup ()", alustades "Serial" pordi lähtestamisega nagu tavaliselt Arduino visanditel:

Seriaalne algus (9600);

Loome valgusanduri, kirjutades selle rea:

GroveDigitalLightSensor *lightSensor = uus GroveDigitalLightSensor ();

Seejärel käskime oma moodulil kasutada nende kaudu suhtlemiseks meie Arduino Streami näpunäidete massiivi:

moodul-> setStreams (ojad);

Samuti ütleme oma moodulile, et see kasutaks meie valgusandurit valguse intensiivsuse jälgimiseks, kui moodul asub:

moodul-> setSensor (lightSensor);

Me ütleme oma moodulile, et ta kasutaks meie LED -i, et anda meile visuaalset tagasisidet:

moodul-> setDisplay (& led);

Lõpuks ütleme oma moodulile, et see on valmis tegema kõiki sisemisi konfiguratsioone, mida ta vajab, helistades oma seadistusfunktsioonile:

moodul-> seadistamine ();

Meie viimane samm on nüüd helistada meie mooduli funktsioonile "run ()", mis on loodud kutsuma Arduino funktsiooni "loop" igal iteratsioonil, kirjutades selle rea funktsiooni "loop" sisse:

moodul-> run ();

Nüüd on meie visand lõpuks valmis Arduinosse üles laadima ja meie moodulit testima!

6. samm: meie AtHome mooduli testimine

Meie AtHome mooduli testimine
Meie AtHome mooduli testimine
Meie AtHome mooduli testimine
Meie AtHome mooduli testimine

Eskiisi Arduinosse üleslaadimiseks valige oma Arduino UNO plaat, valides "Tööriistad"> "Port"> "[COMx või/dev/x] (Arduino/Genuino UNO)".

Viimase asjana klõpsake eskiisi oma tahvlile üleslaadimiseks lihtsalt nuppu "Laadi üles" (ringinupp, millel on nool paremale, tööriistariba teine ikoon).

See on tehtud! Nüüd peaksite moodul töötama ja saatma väärtused arvutisse, mis on nähtav Arduino jadamonitoris. Saate seda kontrollida, avades menüüs "Tööriistad" Arduino "jadamonitori" ja teil peaks olema väljund, mis näeb välja nagu selle sammu teine tiitlipilt:)

7. samm: mooduli jaoks korpuse ehitamine

Mooduli jaoks korpuse ehitamine
Mooduli jaoks korpuse ehitamine

Saate mooduli jaoks lihtsa karbikarbi ehitada, lõigates selle laseriga 3 mm vineerplaadile.

Karbikarpide valmistamiseks kasutame makercase'i soovitud mõõtmetega malli valmistamiseks, mida hiljem kohandame. Selle sammu juurde on lisatud heledusmooduli svg -fail.

Seejärel liimige näod kokku, välja arvatud üks, et saaksite selle hiljem avada, lülitage oma vooluring sisse ja kleepige LED korpuse auku (me kasutame augu täitmiseks läbipaistvat kleeplinti ja hajutame valgust, et LED -e ees kinni hoida) sellest).

Nüüd lisage Arduino toiteks aku, sulgege ümbris ja moodul on valmis ning peaks hea välja nägema:)

Soovitan: