Kazalo:
- 1. korak: Zbiranje komponent
- 2. korak: Namestitev naše knjižnice
- 3. korak: Namestitev potrebnih knjižnic
- 4. korak: Sestavljanje modula
- 5. korak: Pisanje skice modula svetilnosti
- 6. korak: Preizkusite naš modul AtHome
- 7. korak: Izdelava primera za modul
Video: Zgradite modul svetilnosti z AtHome: 7 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
AtHome je študentski projekt v celoti odprtega izvora in odprte strojne programske opreme, ki ga je izdelala skupina AtHome iz Epitecha in ima za cilj razviti povezano rešitev več posameznih senzorskih modulov, ki komunicirajo z bazo podatkov, ki jo samostojno gosti, in razkrije API, ki se uporablja za krmiljenje aplikacije za pametni telefon in spletne aplikacije. Moduli spremljajo notranje okolje hiše in lahko uporabniku dajo vizualno povratno informacijo, od zelene (dobre) do rdeče (slabe) in prenesene podatke uporabnik vidi skozi serijsko komunikacijo modula ali na naše aplikacije, če jih uporabljate.
Čeprav je ta projekt še v aktivnem razvoju, so osnovne funkcionalnosti naših modulov zdaj pripravljene in domnevno enostavne za uporabo za razvoj modulov po meri. Zato vam predlagam, da s tem primerom modula svetilnosti vidite, kako zgraditi lasten preprost modul.
Ti moduli so v osnovi sestavljeni iz plošče, združljive z Arduino (delno jedro Arduino bi moralo zadostovati, če ima podporo za Stream, Wire in UART stream), LED (rdeča ali RGB) v primeru težave postane rdeča. senzor, napajalnik (stensko napajanje ali baterija) in lasersko izrezan kovček.
Da, zagotovo ni novo, obstaja veliko projektov senzorjev, vendar upamo, da bi vam lahko pomagale druge funkcije, kot so odkrivanje zdravstvenih težav, komunikacija in shranjevanje podatkov na strežniku, ki ga sami gostijo, in aplikacija za vizualizacijo. Ali pa če želite samo spremljati svojo hišo, preproste projekte ali nič manj zanimive:)
1. korak: Zbiranje komponent
Za ta projekt boste potrebovali nekaj komponent za izdelavo svojega modula AtHome:
- 1x Arduino kompatibilna plošča: tukaj bom uporabil Arduino UNO (deluje pa tudi z drugimi ploščami, kot so TI lansirne plošče in plošče ESP8266)
- 1x senzor: Uporabil bom senzor svetilnosti TSL2561 (seznam podprtih senzorjev je na voljo v dokumentaciji naše knjižnice)
- 1x LED: Tu bom uporabil LED Grove Chavable RGB LED (lahko pa je tudi preprosta rdeča LED ali NeoPixel)
- Dupont žice
Seznam združljivih komponent je na voljo v dokumentaciji našega projekta.
2. korak: Namestitev naše knjižnice
Če želite namestiti našo knjižnico, jo morate prenesti iz našega skladišča (objavili jo bomo kasneje na seznamu Arduino IDE in PlatformIO) s to povezavo:
gitlab.com/Woodbox/Framework/-/jobs/artifacts/master/download?job=deploy
Nato pojdite v Arduino IDE in izberite "Sketch> Include Library> Add. ZIP Library …". Nato izberite datoteko zip z imenom "artifacts.zip" in kliknite "V redu".
3. korak: Namestitev potrebnih knjižnic
Za delo naša knjižnica potrebuje nekaj drugih knjižnic, ki so nameščene v vašem računalniku:
- Knjižnica Arkhipenko TaskScheduler
- Knjižnica digitalnih senzorjev svetlobe SEEED Studio Grove
- Zbirna LED knjižnica SEEED Studio Grove
- Knjižnica Adafruit NeoPixel
Namestite jih lahko prek upravitelja knjižnice Arduino IDE, tako da odprete »Sketch«> »Include Library«> »Manage libraries…«.
V novo okno, ki se odpre, v belo iskalno vrstico vnesite ime knjižnice, ki jo želite namestiti, nato kliknite njen blok. Prikazal se bo gumb »Namesti«, samo klikniti morate nanj in IDE ga bo naložil in namestil namesto vas.
4. korak: Sestavljanje modula
Začeli bomo s senzorjem. Priključite preko žice VCC pin TSL2561 na 5V pin Arduino, GND pin senzorja na enega od GND pin Arduino ter SDA in SCL nožice senzorja na SDA in SCL nožice Arduina. Zdaj ste končali!
Zdaj priključite VCC pin LED Groove Chainable RGB LED na 5V pin Arduina in GND pin LED na drugi GND Arduina. Če ste Arduino samo z enim 5V vtičem, lahko z mizo povežete 5v Arduino v + vrstico mize in nanj povežete vse svoje 5 -delne zatiče komponent ali jih spajkate skupaj na kos traku ali uporabite priključke wago ali kar želite. Zdaj priključite CI pin vaše LED na pin 7 vašega Arduina in DI pin vaše LED na pin 8 vašega Arduina. Če nimate takšne LED, ne skrbite, možno je uporabiti vgrajeno LED ploščo Arduino ali klasično le z majhno spremembo kode.
5. korak: Pisanje skice modula svetilnosti
Ustvarimo novo skico in napišemo kodo za naš modul.
Če vas razlaga skice ne zanima, jo lahko preprosto kopirate in prilepite v svoj Arduino IDE:
#vključi
uporaba LightModule = AtHomeModule; Stream *streams = {& Serijski, nullptr}; GroveChainableLED:: Pins grovePins = {7, 8}; GroveChainableLED led (& grovePins); LightModule *module = LightModule:: getInstance (); void setup () {// vnesite svojo nastavitveno kodo sem, da se enkrat zažene: Serial.begin (9600); module-> setStreams (tokovi); GroveDigitalLightSensor *lightSensor = nov GroveDigitalLightSensor (); module-> setSensor (lightSensor); module-> setDisplay (& led); module-> setup (); } void loop () {// vnesite svojo glavno kodo sem, da se zažene večkrat: module-> run (); }
Če želite razumeti, kaj počne ta koda, lahko preberete naslednje ali če vas ne zanima, lahko skočite neposredno na naslednji korak.
Za začetek moramo v svojo skico vključiti našo knjižnico, tako da to vrstico napišemo na vrh skice:
#vključi
Zdaj moramo ustvariti vzdevek za objekt modula, ki ga bomo uporabili. Lahko ga vidite kot polje z več gumbi, s katerimi lahko spremenite njegove komponente, ga zaženete, ustavite… itd. Ker je to škatla, zgrajena s predlogo (kot običajna predloga, ki jo uporabljamo za projekte kot ljudje, ima začetno bazo in prevajalnik Arduina na podlagi parametrov, ki mu jih damo, izdela končno kodo), ki opredeljuje tip, ki predstavlja vrednost senzorja in število vrednosti senzorjev, ki jih želimo hraniti v pomnilniku, je navedeno v imenu in jih je običajno treba ponoviti vsakič, ko jih želimo uporabiti. Kar je nekoliko nadležno, zato bomo s polnim imenom tega polja povezali novo ime, vzdevek.
Recimo, na primer, da želim, da se to polje imenuje "LightModule", saj bo uporabljeno za izvajanje modula za spremljanje svetilnosti, hkrati pa želim obdržati le eno vrednost. Svetilnost je v luksih kot integralni tip prikazana z našim senzorjem TSL2561, ki ga računalniki predstavljajo kot uint16_t. Naš vzdevek bo videti tako:
uporaba LightModule = AtHomeModule;
ključna beseda "using" pomeni, da ustvarjamo vzdevek, ime, ki mu ga damo tik po, pa ustreza zaporedju za znakom "=".
"AtHomeModule" je pravo ime tega polja, ki mu dajemo novo ime, parametri, ki opredeljujejo predstavitev vrednosti in število vrednosti, shranjenih v pomnilniku, pa so navedeni med "".
Ko bomo kasneje uporabili ime "AtHomeModule", bo Arduino vedel, da se nanaša na polno ime "AtHomeModule".
Če želite, da lahko vaša škatla shrani 5 vrednosti v pomnilniku namesto 1, morate le "1" zamenjati s "5" in Arduino bo za vas ustvaril drugo vrsto škatle, ki lahko počne, kar želite. Upoštevajte pa, da če je modul programiran za pošiljanje svojih vrednosti, preden ima čas za učinkovito merjenje 5 vrednosti senzorja, jih ne boste nikoli videli, ker pošilja le nove vrednosti od zadnjega nalaganja.
Nato moramo ustvariti niz kazalcev, ki vsebujejo kazalce na tokovih Arduino, ki jih uporablja modul za komunikacijo, ki jih vedno zaključi keyworkd "nullptr". Tukaj uporabljam samo "serijski" tok Arduina, ki komunicira z računalnikom prek vrat USB, zato je matrika videti tako:
Stream *streams = {& Serijski, nullptr};
Znak "*" pomeni, da je tip kazalec (lokacija elementa, ne element sam), oklepaji "" pa v Arduinu pomenijo matriko, zato lahko postavimo več vrednosti.
Nato moramo ustvariti našo LED. Če želite to narediti, moramo zapisati naslednji dve vrstici;
GroveChainableLED:: Pins grovePins = {7, 8};
GroveChainableLED led (& grovePins);
Če nimate Grove RGB LED, vendar še vedno želite vizualno povratno informacijo, lahko to storite s preprosto spremembo skice. Dve prejšnji vrstici nadomestite s to vrstico:
EnobarvnoLED LED (LED_BUILTIN);
V tej konfiguraciji bo vgrajena zelena LED dioda svetila, dokler je nadzorovana vrednost v redu za zdravje, in ugasnila, ko ne bo več. Če želite, da se vklopi, ko ni več obveznosti (ker uporabljate na primer rdečo LED namesto zelene na pin 13), lahko uporabite to vrstico:
EnobarvnoLED LED (LED_BUILTIN, res);
Naslednji korak je ustvariti sam modul. To se naredi prvič, ko dobimo njegovo lokacijo v pomnilniku s klicem metode "getInstance", na primer:
LightModule *module = LightModule:: getInstance ();
Nato moramo v funkciji "setup ()" Arduina nastaviti parametre, začenši z inicializacijo vrat "Serial", kot običajno v skicah Arduino:
Serial.begin (9600);
Svetlobni senzor ustvarimo tako, da zapišemo to vrstico:
GroveDigitalLightSensor *lightSensor = nov GroveDigitalLightSensor ();
Nato našemu modulu povemo, naj uporabi našo vrsto kazalcev v toku Arduino za komunikacijo prek njih:
module-> setStreams (tokovi);
Našemu modulu pravimo tudi, naj uporablja naš svetlobni senzor za spremljanje jakosti svetlobe, kjer je modul:
module-> setSensor (lightSensor);
Našemu modulu povemo, naj uporablja LED za vizualno povratno informacijo:
module-> setDisplay (& led);
Nazadnje povemo našemu modulu, da je pripravljen narediti vse notranje konfiguracije, ki jih potrebuje, tako da pokliče lastno funkcijo "setup":
module-> setup ();
Naš zadnji korak je, da pokličemo funkcijo "run ()" našega modula, ki je zasnovana tako, da se pokliče pri vsaki iteraciji funkcije "zanke" Arduina tako, da v vrstico vnesemo to vrstico:
module-> run ();
Zdaj je naša skica končno pripravljena za nalaganje v Arduino in preizkus našega modula!
6. korak: Preizkusite naš modul AtHome
Če želite skico naložiti v Arduino, izberite svojo ploščo Arduino UNO tako, da odprete »Orodja«> »Vrata«> »[COMx ali/dev/x] (Arduino/Genuino UNO)«.
Nazadnje, samo kliknite gumb »Naloži« (krožni gumb s puščico, ki kaže na desno, druga ikona orodne vrstice), da naložite skico na svojo ploščo.
Opravljeno je! Zdaj bi moral vaš modul delovati in pošiljati vrednosti v računalnik, vidne v serijskem monitorju Arduina. To lahko preverite tako, da odprete "Serijski monitor" Arduina v meniju "Orodja" in izhod bi moral izgledati kot druga naslovna slika tega koraka:)
7. korak: Izdelava primera za modul
Enostavno ohišje za svoj modul lahko zgradite tako, da ga lasersko razrežete v 3 mm vezano desko.
Za izdelavo škatel uporabljamo makercase za pripravo predloge želenih dimenzij, ki jo kasneje prilagodimo. V tem koraku boste našli datoteko svg modula svetilnosti.
Nato le zlepite obraze, razen enega, da ga lahko pozneje odprete, vstavite vezje v notranjost in LED prilepite v odprtino ohišja (za zapolnitev luknje uporabljamo prozoren trak in svetlobo razpršimo, LED pa spredaj prilepimo) od tega).
Zdaj samo dodajte baterijo za napajanje vašega Arduina, zaprite ohišje in vaš modul je pripravljen in bi moral biti videti dobro:)
Priporočena:
Zgradite Arduino MIDI krmilnik: 5 korakov (s slikami)
Zgradite Arduino MIDI krmilnik: Pozdravljeni vsi! V tem navodilu vam bom pokazal, kako zgraditi lasten MIDI krmilnik, ki ga poganja Arduino. MIDI pomeni digitalni vmesnik za glasbene instrumente in je protokol, ki računalnikom, glasbilom in drugi strojni opremi omogoča komunikacijo
Zgradite zapisovalnik osebnih dejavnosti: 6 korakov
Zgradite zapisovalnik osebnih dejavnosti: Moj prijatelj iz Londona Paul je želel najti način za sledenje njegove hrane, dejavnosti in lokacije na eni sami nadzorni plošči. Takrat je prišel na idejo, da bi ustvaril preprost spletni obrazec, ki bi podatke pošiljal na nadzorno ploščo. Spletni obrazec bi postavil kot
Zgradite preprost smernik za kolo: 11 korakov (s slikami)
Zgradite preprost smernik za kolo: s prihodom jeseni se včasih težko zavedate, da so dnevi postali krajši, čeprav je lahko temperatura enaka. To se je zgodilo vsem- greš na popoldansko kolesarjenje, a preden se vrneš na pol poti, je temno in ti
Senzor svetilnosti: 5 korakov
Senzor svetlosti: Pozdravljeni! V tej vadnici se boste naučili, kako narediti Arduino senzor svetilnosti. Ko uporabljate ta senzor, lahko ugotovite, ali svetlost vaše lokacije ustreza vašim potrebam. Ko v sobi uporabljate izdelke 3C, pogosto ne veste, ali brig
Izboljšava svetilnosti prenosnega računalnika: 13 korakov
Izboljšava svetilnosti prenosnega računalnika: Ste naveličani, da na tem starem prenosnem računalniku ne vidite svojega zaslona, ko ste zunaj? Izboljšava svetilnosti prenosnega računalnika je za VAS