Obsah:

Sestavte modul svítivosti s AtHome: 7 kroků
Sestavte modul svítivosti s AtHome: 7 kroků

Video: Sestavte modul svítivosti s AtHome: 7 kroků

Video: Sestavte modul svítivosti s AtHome: 7 kroků
Video: FIREBOY WATERGIRL BEST NEW YEARS RESOLUTIONS 2024, Listopad
Anonim
Sestavte modul svítivosti s AtHome
Sestavte modul svítivosti s AtHome

AtHome je studentský projekt plně open source a openhardware vytvořený skupinou AtHome z Epitech, jehož cílem je vyvinout propojené řešení několika jednotlivých senzorových modulů komunikujících s vlastní hostitelskou databází vystavující API používané pro napájení aplikace pro chytré telefony a webové aplikace. Moduly monitorují vnitřní prostředí domu a jsou schopné poskytnout uživateli vizuální zpětnou vazbu od zelené (dobré) po červenou (špatnou) a přenášená data jsou uživatelem viditelná prostřednictvím sériové komunikace modulu nebo naše aplikace, pokud je používáte.

Přestože je tento projekt stále v aktivním vývoji, základní funkce našich modulů jsou nyní připraveny a údajně snadno použitelné pro vývoj vlastních modulů. Proto vám navrhuji, abyste viděli, jak vytvořit vlastní jednoduchý modul s tímto příkladem modulu svítivosti.

Tyto moduly jsou v zásadě postaveny na desce kompatibilní s Arduino (částečné jádro Arduino by mělo stačit, pokud má podporu Stream, Wire a UART stream), LED (červená nebo RGB) v případě problému zčervená čidlo, napájecí zdroj (nástěnný napájecí zdroj nebo baterie) a laserem řezané pouzdro.

Ano, rozhodně to není nic nového, existuje mnoho projektů senzorů, ale doufáme, že vám pomohou další funkce, jako je detekce zdravotních problémů, komunikace a ukládání informací na server s vlastním hostitelem a vizualizační aplikace. Nebo pokud chcete jen sledovat svůj dům, jednoduché projekty nebo neméně zajímavé:)

Krok 1: Shromažďování komponent

Shromažďování komponent
Shromažďování komponent

Pro tento projekt budete potřebovat několik komponent k sestavení modulu AtHome:

  • 1x Deska kompatibilní s Arduino: Zde použiji Arduino UNO (ale funguje i s jinými deskami, jako jsou TI Launchpads a ESP8266)
  • 1x senzor: Použiju senzor světelnosti TSL2561 (seznam podporovaných senzorů je k dispozici v dokumentaci naší knihovny)
  • 1x LED: Zde použiji Grove Chainable RGB LED (ale může to být také jednoduchá červená LED nebo NeoPixel)
  • Dupont Wires

Seznam kompatibilních komponent je k dispozici v dokumentaci našeho projektu.

Krok 2: Instalace naší knihovny

Instalace naší knihovny
Instalace naší knihovny
Instalace naší knihovny
Instalace naší knihovny

Chcete -li nainstalovat naši knihovnu, musíte si ji stáhnout z našeho úložiště (zveřejníme ji později v seznamu Arduino IDE a PlatformIO) pomocí tohoto odkazu:

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

Poté přejděte do IDE Arduino a zvolte „Skica> Zahrnout knihovnu> Přidat knihovnu. ZIP…“. Poté vyberte soubor zip s názvem „artifacts.zip“a klikněte na „OK“.

Krok 3: Instalace požadovaných knihoven

Instalace požadovaných knihoven
Instalace požadovaných knihoven
Instalace požadovaných knihoven
Instalace požadovaných knihoven
Instalace požadovaných knihoven
Instalace požadovaných knihoven

Aby naše knihovna fungovala, musí být na vašem počítači nainstalovány další knihovny:

  • Knihovna Arkhipenko TaskScheduler
  • Knihovna digitálního světelného senzoru SEEED Studio Grove
  • Řetězitelná RGB LED knihovna SEEED Studio Grove
  • Knihovna Adafruit NeoPixel

Můžete je nainstalovat pomocí správce knihoven Arduino IDE tak, že přejdete na „Sketch“> „Include Library“> „Manage libraries…“.

V novém okně, které se otevře, napište do bílého vyhledávacího pole název knihovny, kterou chcete nainstalovat, a poté klikněte na její blok. Zobrazí se tlačítko „Instalovat“, stačí na něj kliknout a IDE jej stáhne a nainstaluje za vás.

Krok 4: Sestavení modulu

Sestavení modulu
Sestavení modulu

Začneme senzorem. Připojte pomocí kabelu VCC pin TSL2561 k 5V pinu Arduina, GND pin senzoru k jednomu GND pinu Arduina a SDA a SCL piny senzoru k SDA a SCL pinům Arduino. Nyní jste hotovi!

Nyní připojte VCC pin Grove Chainable RGB LED k 5V pinu Arduina a GND pin LED k druhému GND Arduina. Pokud jste Arduino pouze jako jeden 5V pin, můžete použít prkénko pro připojení 5v Arduina k + řadě prkénka a připojit na něj všechny 5V piny svých komponentů, nebo je pájet dohromady na kousek stripboardu nebo použijte konektory wago nebo cokoli, co dáváte přednost. Nyní připojte pin CI vaší LED ke kolíku 7 vašeho Arduina a DI pin vaší LED k pinu 8 vašeho Arduina. Pokud takovou LED nemáte, nebojte se, je možné použít vestavěnou LED vaší desky Arduino nebo klasickou jen s malou změnou kódu.

Krok 5: Psaní náčrtu modulu Luminosity

Psaní skici modulu Luminosity
Psaní skici modulu Luminosity

Vytvoříme nový náčrt a napíšeme kód pro náš modul.

Pokud vás vysvětlení náčrtu nezajímá, můžete jej jednoduše zkopírovat a vložit do IDE Arduino:

#zahrnout

pomocí LightModule = AtHomeModule; Stream *streams = {& Serial, nullptr}; GroveChainableLED:: Piny grovePins = {7, 8}; LED GroveChainableLED (& grovePins); LightModule *module = LightModule:: getInstance (); void setup () {// sem vložte svůj instalační kód, aby se spustil jednou: Serial.begin (9600); modul-> setStreams (streamy); GroveDigitalLightSensor *lightSensor = nový GroveDigitalLightSensor (); modul-> setSensor (lightSensor); modul-> setDisplay (& led); modul-> nastavení (); } void loop () {// sem vložte svůj hlavní kód, aby se spustil opakovaně: module-> run (); }

Pokud chcete porozumět všemu, co tento kód dělá, můžete si přečíst následující, nebo pokud vás to nezajímá, můžete přejít přímo k dalšímu kroku.

Nejprve musíme do skici zahrnout naši knihovnu napsáním tohoto řádku v horní části skici:

#zahrnout

Nyní musíme vytvořit alias pro objekt modulu, který použijeme. Můžete to vidět jako pole s několika tlačítky používanými ke změně komponent, spuštění, zastavení atd. Protože je to krabice vytvořená podle šablony (jako obvyklou šablonu, kterou používáme pro projekty jako lidé, má startovací základnu a kompilátor Arduina sestavuje konečný kód na základě parametrů, které mu dáme) definující typ představující hodnotu senzoru a počet hodnot senzorů, které chceme uchovat v paměti, je to uvedeno v názvu a normálně by se to mělo opakovat pokaždé, když to chceme použít. Což je trochu otravné, a proto k úplnému názvu tohoto pole přiřadíme nový název, alias.

Řekněme například, že chci, aby se tento box jmenoval „LightModule“, protože bude použit k implementaci modulu monitorování svítivosti a chci ponechat pouze 1 hodnotu najednou. Svítivost je vyjádřena v luxech jako integrální typ naším snímačem TSL2561, který je počítačem reprezentován jako uint16_t. Náš alias bude vypadat takto:

pomocí LightModule = AtHomeModule;

klíčové slovo „using“znamená, že vytváříme alias a název, který mu dáme hned za ním, odpovídá sekvenci za znakem „=“.

"AtHomeModule" je skutečný název tohoto pole, kterému dáváme nový název, a parametry definující reprezentaci hodnot a počet hodnot uložených v paměti jsou uvedeny mezi "".

Nyní, když později použijeme název „AtHomeModule“, Arduino bude vědět, že odkazuje na plný název „AtHomeModule“.

Pokud chcete, aby si váš box dokázal uchovat v paměti 5 hodnot místo 1, stačí nahradit „1“číslem „5“a Arduino vám vygeneruje jiný typ boxu, který bude schopen dělat, co chcete. Všimněte si však, že pokud je modul naprogramován tak, aby odesílal své hodnoty dříve, než bude mít čas účinně změřit 5 hodnot senzoru, nikdy neuvidíte 5 z nich odesílat, protože od posledního nahrání odesílá pouze nové hodnoty.

Dále musíme vytvořit řadu ukazatelů obsahujících ukazatele na proudech Arduino používaných modulem ke komunikaci, vždy zakončených keyworkd "nullptr". Zde používám pouze „sériový“proud Arduina, který komunikuje s počítačem přes port USB, takže pole vypadá takto:

Stream *streams = {& Serial, nullptr};

Znak „*“znamená, že typ je ukazatel (umístění prvku, nikoli samotný prvek) a závorky „“v Arduinu znamená pole, takže můžeme zadat více hodnot.

Dále musíme vytvořit naši LED. K tomu potřebujeme napsat následující dva řádky;

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

LED GroveChainableLED (& grovePins);

Pokud nemáte Grove RGB LED, ale přesto chcete vizuální zpětnou vazbu, můžete to udělat jednoduchou změnou náčrtu. Nahraďte dva předchozí řádky tímto řádkem:

Monochromatický LED dioda (LED_BUILTIN);

V této konfiguraci se zelená vestavěná LED dioda rozsvítí, pokud je monitorovaná hodnota v pořádku pro zdraví, a zhasne, když je mimo dosah. Pokud dáváte přednost tomu, aby se zapnul, když je mimo vazbu (protože používáte například červenou LED namísto zelené na kolíku 13), můžete místo toho použít tento řádek:

Monochromatická LED dioda (LED_BUILTIN, true);

Dalším krokem je vytvoření samotného modulu. Je to provedeno poprvé, když získáme jeho umístění v paměti voláním metody „getInstance“, například takto:

LightModule *module = LightModule:: getInstance ();

Poté musíme nastavit parametry ve funkci „setup ()“Arduina, počínaje inicializací „sériového“portu jako obvykle v náčrtcích Arduino:

Serial.begin (9600);

Světelný senzor vytvoříme napsáním tohoto řádku:

GroveDigitalLightSensor *lightSensor = nový GroveDigitalLightSensor ();

Potom řekneme našemu modulu, aby používal naši řadu ukazatelů na Arduino Stream ke komunikaci prostřednictvím nich:

modul-> setStreams (streamy);

Také říkáme našemu modulu, aby používal náš světelný senzor ke sledování intenzity světla, kde je modul:

modul-> setSensor (lightSensor);

Říkáme našemu modulu, aby používal naši LED k poskytnutí vizuální zpětné vazby:

modul-> setDisplay (& led);

Nakonec řekneme našemu modulu, že je připraven provést jakoukoli interní konfiguraci, kterou potřebuje, a to tak, že zavoláme jeho vlastní funkci „nastavení“:

modul-> nastavení ();

Naším posledním krokem je nyní zavolat funkci „run ()“našeho modulu, která je navržena tak, aby ji bylo možné volat při každé iteraci funkce „smyčky“Arduina zapsáním tohoto řádku do funkce „smyčky“:

modul-> spustit ();

Nyní je náš náčrtek konečně připraven k nahrání do Arduina a otestování našeho modulu!

Krok 6: Testování našeho modulu AtHome

Testování našeho modulu AtHome
Testování našeho modulu AtHome
Testování našeho modulu AtHome
Testování našeho modulu AtHome

Chcete -li načíst skicu do Arduina, vyberte si desku Arduino UNO v nabídce „Nástroje“> „Port“> „[COMx nebo/dev/x] (Arduino/Genuino UNO)“.

Poslední věc, stačí kliknout na tlačítko „Nahrát“(tlačítko kruhu se šipkou směřující doprava, druhá ikona lišty nástrojů) a načíst skicu na svoji tabuli.

Je to hotovo! Nyní by váš modul měl fungovat a odesílat hodnoty do vašeho počítače viditelné v Serial Monitoru Arduina. Můžete to zkontrolovat otevřením „Sériového monitoru“Arduina v nabídce „Nástroje“a měli byste mít výstup vypadající jako druhý titulní obrázek tohoto kroku:)

Krok 7: Sestavení pouzdra pro modul

Sestavení pouzdra pro modul
Sestavení pouzdra pro modul

Pro svůj modul můžete postavit jednoduché krabicové pouzdro laserovým řezáním do 3mm překližkové desky.

Abychom vyrobili naše krabice, pomocí makercase připravíme šablonu v požadovaných rozměrech, které později přizpůsobíme. K tomuto kroku najdete soubor svg modulu svítivosti.

Pak jen slepte tváře krom jednoho, abyste jej mohli později otevřít, vložte svůj obvod dovnitř a přilepte LED do otvoru v pouzdru (pomocí průhledné pásky zaplníme otvor a rozptýlíme světlo, kromě toho přilepíme LED vpředu z toho).

Nyní stačí přidat baterii k napájení vašeho Arduina, zavřít pouzdro a váš modul je připraven a měl by vypadat dobře:)

Doporučuje: