Përmbajtje:

Ndërtoni një modul ndriçimi me AtHome: 7 hapa
Ndërtoni një modul ndriçimi me AtHome: 7 hapa

Video: Ndërtoni një modul ndriçimi me AtHome: 7 hapa

Video: Ndërtoni një modul ndriçimi me AtHome: 7 hapa
Video: КАК НАСТРОИТЬ L4D2 2024, Nëntor
Anonim
Ndërtoni një modul ndriçimi me AtHome
Ndërtoni një modul ndriçimi me AtHome

AtHome është një projekt studentor plotësisht me burim të hapur dhe i hapur nga grupi AtHome nga Epitech, që synon të zhvillojë një zgjidhje të lidhur të disa moduleve individuale të sensorëve që komunikojnë me një bazë të dhënash të vetë-pritur që ekspozon një API të përdorur për të ushqyer një aplikacion smartphone dhe një aplikacion në internet. Modulet monitorojnë mjedisin e brendshëm të një shtëpie dhe janë në gjendje t'i japin një reagim vizual përdoruesit, duke shkuar nga jeshile (e mirë) në të kuqe (e keqe) dhe të dhënat e transmetuara janë të dukshme nga përdoruesi përmes komunikimit serik të një moduli ose aplikacionet tona nëse i përdorni ato.

Edhe pse ky projekt është ende nën një zhvillim aktiv, funksionalitetet themelore të moduleve tona tani janë gati dhe gjoja të lehta për t'u përdorur për të zhvilluar module të personalizuara. Pra, kjo është arsyeja pse unë po ju propozoj të shihni se si të ndërtoni modulin tuaj të thjeshtë me këtë shembull të modulit të shkëlqimit.

Këto module janë ndërtuar në thelb me një bord të pajtueshëm me Arduino (një bërthamë e pjesshme Arduino duhet të jetë e mjaftueshme për sa kohë që ka Stream, Wire dhe një mbështetje të rrymës UART), një LED (e kuqe ose RGB) duke u bërë e kuqe në rast lëshimi, sensor, një furnizim me energji elektrike (furnizim me energji muri ose bateri) dhe një kuti të prerë me lazer.

Po, definitivisht nuk është e re, ka shumë projekte sensori, por ne shpresojmë që veçori të tjera të tilla si zbulimi i çështjeve shëndetësore, komunikimi dhe ruajtja e informacionit në një server të vetë-pritur dhe aplikacioni i vizualizimit do t'ju ndihmojnë. Ose nëse thjesht doni të monitoroni shtëpinë tuaj, projekte të thjeshta ose jo më pak interesante:)

Hapi 1: Grumbullimi i përbërësve

Mbledhja e Komponentëve
Mbledhja e Komponentëve

Për këtë projekt, do t'ju duhet disa përbërës për të ndërtuar modulin tuaj AtHome:

  • 1x bord i pajtueshëm me Arduino: Këtu do të përdor një Arduino UNO (por gjithashtu funksionon me borde të tjera të tilla si TI Launchpads dhe bordet ESP8266)
  • Sensori 1x: Unë do të përdor një sensor ndriçimi TSL2561 (lista e sensorëve të mbështetur është në dispozicion në dokumentacionin e bibliotekës sonë)
  • 1x led: Unë do të përdor një LED Grove Chainable RGB këtu (por mund të jetë gjithashtu një led i thjeshtë i kuq ose një NeoPixel)
  • Telat Dupont

Lista e komponentëve të pajtueshëm është në dispozicion në dokumentacionin e projektit tonë.

Hapi 2: Instalimi i Bibliotekës Tonë

Instalimi i Bibliotekës Tonë
Instalimi i Bibliotekës Tonë
Instalimi i Bibliotekës Tonë
Instalimi i Bibliotekës Tonë

Për të instaluar bibliotekën tonë, do t'ju duhet të shkarkoni nga depoja jonë (do ta publikojmë më vonë në listën Arduino IDE dhe PlatformIO) me këtë lidhje:

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

Pastaj, shkoni në Arduino IDE dhe zgjidhni "Skiconi> Përfshini Bibliotekën> Shtoni Bibliotekën. ZIP …". Pastaj zgjidhni skedarin zip të quajtur "artifacts.zip" dhe klikoni në "OK".

Hapi 3: Instalimi i Bibliotekave të Kërkuara

Instalimi i Bibliotekave të Kërkuara
Instalimi i Bibliotekave të Kërkuara
Instalimi i Bibliotekave të Kërkuara
Instalimi i Bibliotekave të Kërkuara
Instalimi i Bibliotekave të Kërkuara
Instalimi i Bibliotekave të Kërkuara

Për të punuar, bibliotekës sonë i duhen disa biblioteka të tjera që të instalohen në kompjuterin tuaj:

  • Biblioteka Arkhipenko TaskScheduler
  • Biblioteka SEEED Studio Grove Digital Sensor Light
  • Biblioteka SEEED Studio Grove Chainable RGB LED
  • Biblioteka Adafruit NeoPixel

Ju mund t'i instaloni ato përmes menaxherit të bibliotekës së Arduino IDE, duke shkuar te "Sketch"> "Include Library"> "Manage bibliotekat …".

Në dritaren e re që do të hapet, shkruani në shiritin e bardhë të kërkimit emrin e bibliotekës që dëshironi të instaloni, pastaj klikoni në bllokun e saj. Do të shfaqet një buton "Instalo", thjesht duhet të klikosh mbi të dhe IDE do ta shkarkojë dhe do ta instalojë për ty.

Hapi 4: Montimi i modulit

Montimi i Modulit
Montimi i Modulit

Ne fillojmë me sensorin. Lidhni përmes një teli kunjin VCC të TSL2561 në kunjin 5V të Arduino, kunjin GND të sensorit në një nga kunjat GND të Arduino dhe kunjat SDA dhe SCL të sensorit në kunjat SDA dhe SCL të Arduino Me Tani keni mbaruar!

Tani, lidhni kunjin VCC të Grove Chainable RGB LED me kunjin 5V të Arduino dhe kunjin GND të LED me GND -në e dytë të Arduino. Nëse jeni Arduino vetëm si një kunj 5V, mund të përdorni një dërrasë buke për të lidhur 5v e Arduino me një rresht + të pjatës së bukës dhe lidhni të gjitha përbërësit tuaj me kunja 5V në të, ose t'i bashkoni ato së bashku në një copë stripboard ose përdorni lidhës wago ose çfarëdo që preferoni. Tani, lidhni pinin CI të LED -it tuaj me pinin 7 të Arduino -t tuaj dhe pinin DI të LED -it tuaj me pinin 8 të Arduino -s tuaj. Nëse nuk keni një LED të tillë, mos u shqetësoni, është e mundur të përdorni LED të integruar të bordit tuaj Arduino ose një klasik me vetëm një ndryshim të vogël në kod.

Hapi 5: Shkrimi i Skicës së Modulit të Ndriçimit

Shkrimi i Skicës së Modulit të Ndriçimit
Shkrimi i Skicës së Modulit të Ndriçimit

Le të krijojmë një skicë të re dhe të shkruajmë kodin për modulin tonë.

Nëse nuk jeni të interesuar për shpjegimin e skicës, thjesht mund ta kopjoni dhe ngjisni atë në ID tuaj Arduino:

#përfshi

duke përdorur LightModule = AtHomeModule; Rrjedha *rrjedhat = {& Serial, nullptr}; GroveChainableLED:: Kunjat grovePins = {7, 8}; GroveChainableLED led (& grovePins); Moduli LightModule *= LightModule:: getInstance (); void setup () {// vendosni kodin tuaj të konfigurimit këtu, për të ekzekutuar një herë: Serial.begin (9600); modul-> setStreams (rrjedhat); GroveDigitalLightSensor *lightSensor = i ri GroveDigitalLightSensor (); modul-> setSensor (lightSensor); modul-> setDisplay (& led); modul-> konfigurim (); } void loop () {// vendos kodin tuaj kryesor këtu, për të ekzekutuar në mënyrë të përsëritur: module-> run (); }

Nëse doni të kuptoni gjithçka që po bën ky kod, mund të lexoni sa vijon ose nëse nuk jeni të interesuar, mund të hidheni drejtpërdrejt në hapin tjetër.

Për të filluar, ne duhet të përfshijmë bibliotekën tonë në skicën tonë duke shkruar këtë rresht në krye të skicës:

#përfshi

Tani, ne duhet të krijojmë një alias për objektin e modulit që do të përdorim. Ju mund ta shihni atë si një kuti me disa butona të përdorur për të ndryshuar përbërësit e tij, për ta nisur, ndaluar, … etj. Meqenëse është një kuti e ndërtuar nga një shabllon (si shablloni i zakonshëm që ne përdorim për projekte si njerëz, ai ka një bazë fillestare dhe përpiluesi i Arduino ndërton kodin përfundimtar bazuar në parametrat që i japim atij) duke përcaktuar llojin që përfaqëson një vlerë të sensorit dhe numri i vlerave të sensorit që duam të mbajmë në kujtesë, është specifikuar në emrin e tij dhe normalisht duhet të përsëritet sa herë që duam ta përdorim. Kjo është pak e bezdisshme, kjo është arsyeja pse ne do të lidhim një emër të ri, një alias, me emrin e plotë të kësaj kutie.

Le të themi për shembull unë dua që kjo kuti të quhet "LightModule", pasi do të përdoret për të zbatuar një modul të monitorimit të shkëlqimit dhe dua të mbaj vetëm 1 vlerë në të njëjtën kohë. Shkëlqimi përfaqësohet në lux si një tip integral nga sensori ynë TSL2561, i cili përfaqësohet si një uint16_t nga kompjuterët. Pseudonimi ynë do të duket kështu:

duke përdorur LightModule = AtHomeModule;

fjala kyçe "përdorimi" do të thotë që ne po krijojmë një pseudonim dhe emri që i japim menjëherë pasi korrespondon me sekuencën pas karakterit "=".

"AtHomeModule" është emri i vërtetë i kësaj kutie që po i japim një emër të ri, dhe parametrat që përcaktojnë përfaqësimin e vlerës dhe numrin e vlerave të mbajtura në memorie janë renditur midis "".

Tani, kur do të përdorim më vonë emrin "AtHomeModule", Arduino do ta dijë se i referohet emrit të plotë "AtHomeModule".

Nëse dëshironi që kutia juaj të jetë në gjendje të mbajë 5 vlera në kujtesë në vend të 1, ju vetëm duhet të zëvendësoni "1" me "5" dhe Arduino do të gjenerojë për ju një lloj kuti të ndryshme në gjendje të bëjë atë që dëshironi. Vini re, megjithatë, se nëse moduli është programuar të dërgojë vlerat e tij para se të ketë kohë për të matur në mënyrë efektive 5 vlera të sensorit, nuk do të shihni kurrë 5 prej tyre të dërgohen pasi ai dërgon vetëm vlerat e reja që nga ngarkimi i fundit.

Tjetra, ne duhet të krijojmë një grup treguesish që përmbajnë tregues në rrjedhat Arduino të përdorura nga moduli për të komunikuar, të përfunduara gjithmonë nga "nullptr" i punës. Këtu, unë jam duke përdorur vetëm rrjedhën "Seriale" të Arduino e cila komunikon me kompjuterin përmes portës USB, kështu që grupi duket kështu:

Rrjedha *rrjedhat = {& Serial, nullptr};

Karakteri "*" do të thotë që lloji është një tregues (vendndodhja e elementit, jo vetë elementi) dhe kllapat "" do të thotë në Arduino është një grup, kështu që ne mund të vendosim vlera të shumta.

Tjetra, ne duhet të krijojmë LED -in tonë. Për ta bërë këtë, ne duhet të shkruajmë dy rreshtat e mëposhtëm;

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

GroveChainableLED led (& grovePins);

Nëse nuk keni një LED Grove RGB por dëshironi akoma një reagim vizual, mund ta bëni me një ndryshim të thjeshtë në skicë. Zëvendësoni dy rreshtat e mëparshëm me këtë rresht:

Llambë njëngjyrëshe LED (LED_BUILTIN);

Në këtë konfigurim LED i gjelbër i integruar do të ndizet për sa kohë që vlera e monitoruar është në rregull për shëndetin dhe fiket kur është jashtë lidhjes. Nëse preferoni ta ndizni kur është jashtë lidhjes (sepse përdorni për shembull një LED të kuq në vend të atij të gjelbër në kunjin 13) mund të përdorni këtë linjë në vend:

Pikturë njëngjyrëshe LED (LED_BUILTIN, e vërtetë);

Hapi tjetër është të krijojmë vetë modulin tonë. Doneshtë bërë hera e parë që marrim vendndodhjen e saj në kujtesë duke thirrur metodën "getInstance", si kjo:

Moduli LightModule *= LightModule:: getInstance ();

Pastaj, ne duhet të vendosim parametrat në funksionin "setup ()" të Arduino, duke filluar me inicimin e portit "Serial" si zakonisht në skicat Arduino:

Serial.filloj (9600);

Ne krijojmë sensorin e dritës duke shkruar këtë rresht:

GroveDigitalLightSensor *lightSensor = i ri GroveDigitalLightSensor ();

Pastaj, ne i themi modulit tonë që të përdorë grupin tonë të treguesve në Arduino Stream për të komunikuar përmes tyre:

modul-> setStreams (rrjedhat);

Ne gjithashtu i themi modulit tonë që të përdorë sensorin tonë të dritës për të monitoruar intensitetin e dritës aty ku është moduli:

modul-> setSensor (lightSensor);

Ne i themi modulit tonë të përdorë LED -in tonë për të na dhënë një reagim vizual:

modul-> setDisplay (& led);

Së fundi, ne i themi modulit tonë se është gati të bëjë çdo konfigurim të brendshëm që duhet të bëjë duke thirrur funksionin e tij të "konfigurimit":

modul-> konfigurim ();

Hapi ynë i fundit është tani të thërrasim funksionin "run ()" të modulit tonë, i cili është krijuar për t'u thirrur në çdo përsëritje të funksionit "loop" të Arduino duke shkruar këtë rresht brenda funksionit "loop":

modul-> ekzekuto ();

Tani, skica jonë është më në fund gati të ngarkohet në Arduino dhe të testojë modulin tonë!

Hapi 6: Testimi i modulit tonë AtHome

Testimi i modulit tonë AtHome
Testimi i modulit tonë AtHome
Testimi i modulit tonë AtHome
Testimi i modulit tonë AtHome

Për të ngarkuar skicën në Arduino, zgjidhni bordin tuaj Arduino UNO duke shkuar te "Tools"> "Port"> "[COMx ose/dev/x] (Arduino/Genuino UNO)".

Gjëja e fundit, thjesht klikoni në butonin "Ngarko" (butoni i rrethit me një shigjetë që tregon në të djathtë, ikona e dytë e shiritit të veglave) për të ngarkuar skicën në tabelën tuaj.

Doneshtë bërë! Tani moduli juaj duhet të jetë duke punuar dhe duke dërguar vlera në kompjuterin tuaj të dukshme në Serial Monitor të Arduino. Mund ta kontrolloni duke hapur "Serial Monitor" të Arduino në menunë "Tools" dhe duhet të keni një dalje që duket si fotografia e titullit të dytë të këtij hapi:)

Hapi 7: Ndërtimi i një rasti për modulin

Ndërtimi i një rasti për modulin
Ndërtimi i një rasti për modulin

Ju mund të ndërtoni një kuti të thjeshtë kutie për modulin tuaj duke e prerë me lazer në një dërrasë kompensatë 3 mm.

Për të bërë kutitë tona të kutisë, ne përdorim makercase për të përgatitur një model në dimensionet e dëshiruara që ne personalizojmë më vonë. Ju do të gjeni skedarin svg të modulit të ndriçimit të bashkangjitur në këtë hap.

Pastaj thjesht ngjitini fytyrat së bashku me përjashtim të njërës, në mënyrë që ta hapni më vonë, vendosni qarkun tuaj brenda dhe ngjitni LED -in në vrimën e kasës (ne përdorim shirit transparent për të mbushur vrimën dhe për të shpërndarë dritën përveç për të ngjitur LED para të saj).

Tani thjesht shtoni një bateri për të fuqizuar Arduino -n tuaj, mbyllni kutinë dhe moduli juaj është gati dhe duhet të duket mirë:)

Recommended: