Tartalomjegyzék:

Fényességi modul építése az AtHome segítségével: 7 lépés
Fényességi modul építése az AtHome segítségével: 7 lépés

Videó: Fényességi modul építése az AtHome segítségével: 7 lépés

Videó: Fényességi modul építése az AtHome segítségével: 7 lépés
Videó: Возведение коробки дома. Заливка перемычек и монолитного пояса. 2024, November
Anonim
Építsen fényességi modult az AtHome segítségével
Építsen fényességi modult az AtHome segítségével

Az AtHome egy teljesen nyílt forráskódú és nyílt hardveres diákprojekt, amelyet az Epitech AtHome csoport készített, és amelynek célja egy egyedi megoldás létrehozása több egyedi érzékelő modulból, amelyek kommunikálnak egy saját üzemeltetésű adatbázissal, feltárva egy okostelefonos alkalmazás és egy webalkalmazás táplálásához használt API-t. A modulok figyelik a ház beltéri környezetét, és vizuális visszajelzést tudnak adni a felhasználónak, a zöldtől (jó) a vörösig (rossz), és a továbbított adatokat a felhasználó látja a modul soros kommunikációján keresztül vagy alkalmazásainkat, ha használja őket.

Annak ellenére, hogy ez a projekt még aktív fejlesztés alatt áll, moduljaink alapvető funkciói már készen állnak, és állítólag könnyen használhatók az egyedi modulok fejlesztéséhez. Ezért javaslom, hogy nézze meg, hogyan lehet felépíteni saját egyszerű modulját a fényesség modul példájával.

Ezek a modulok alapvetően egy Arduino-kompatibilis táblával készülnek (egy részleges Arduino magnak elegendőnek kell lennie, amíg Stream, Wire és UART stream támogatással rendelkezik), egy LED (piros vagy RGB) pirosra vált probléma esetén, érzékelő, tápegység (fali tápegység vagy akkumulátor) és lézerrel vágott tok.

Igen, ez biztosan nem újdonság, sok érzékelőprojekt létezik, de reméljük, hogy más funkciók, például az egészségügyi problémák észlelése, a kommunikáció és az információk tárolása egy saját üzemeltetésű szerveren és a vizualizációs alkalmazásban segíthetnek. Vagy ha csak figyelni szeretné a házát, egyszerű projekteket vagy nem kevésbé érdekeseket:)

1. lépés: Összetevők összegyűjtése

Összetevők összegyűjtése
Összetevők összegyűjtése

Ehhez a projekthez néhány összetevőre lesz szüksége az AtHome modul létrehozásához:

  • 1x Arduino-kompatibilis tábla: Itt egy Arduino UNO-t fogok használni (de más táblákkal is működik, mint például a TI Launchpad és ESP8266 táblák)
  • 1x érzékelő: TSL2561 fényerő -érzékelőt fogok használni (a támogatott érzékelők listája elérhető a könyvtárunk dokumentációjában)
  • 1x led: Grove Chainable RGB LED -et fogok használni itt (de lehet egyszerű piros led vagy NeoPixel is)
  • Dupont vezetékek

A kompatibilis alkatrészek listája megtalálható a projekt dokumentációjában.

2. lépés: Könyvtárunk telepítése

Könyvtárunk telepítése
Könyvtárunk telepítése
Könyvtárunk telepítése
Könyvtárunk telepítése

Könyvtárunk telepítéséhez le kell töltenie a tárhelyünkről (később közzétesszük az Arduino IDE listán és a PlatformIO -n) ezen a linken:

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

Ezután lépjen be az Arduino IDE -be, és válassza a "Vázlat> Könyvtár bevonása>. ZIP -könyvtár hozzáadása …" lehetőséget. Ezután válassza ki az "artifacts.zip" nevű zip fájlt, és kattintson az "OK" gombra.

3. lépés: A szükséges könyvtárak telepítése

Szükséges könyvtárak telepítése
Szükséges könyvtárak telepítése
Szükséges könyvtárak telepítése
Szükséges könyvtárak telepítése
Szükséges könyvtárak telepítése
Szükséges könyvtárak telepítése

A könyvtárunk működéséhez szükség van néhány más könyvtárra a számítógépre:

  • Arkhipenko TaskScheduler könyvtár
  • SEEED Studio Grove digitális fényérzékelő könyvtár
  • SEEED Studio Grove Chainable RGB LED könyvtár
  • Adafruit NeoPixel könyvtár

Telepítheti őket az Arduino IDE könyvtárkezelőjén keresztül a "Vázlat"> "Könyvtár beillesztése"> "Könyvtárak kezelése …" menüpontban.

A megnyíló új ablakban írja be a fehér keresősávba a telepíteni kívánt könyvtár nevét, majd kattintson a blokkjára. Megjelenik a "Telepítés" gomb, csak rá kell kattintania, és az IDE letölti és telepíti az Ön számára.

4. lépés: A modul összeszerelése

A modul összeszerelése
A modul összeszerelése

Kezdjük az érzékelővel. Csatlakoztassa vezetéken keresztül a TSL2561 VCC -tűjét az Arduino 5V -os tűjéhez, az érzékelő GND -tűjét az Arduino egyik GND -tűjéhez, az érzékelő SDA- és SCL -csapjait pedig az Arduino SDA- és SCL -érintkezőihez.. Most kész!

Most csatlakoztassa a Grove Chainable RGB LED VCC csapját az Arduino 5V -os tűjéhez, a LED GND -tűjét pedig az Arduino második GND -hez. Ha csak egy 5 V -os tűként használja az Arduino -t, akkor egy kenyérsütő deszkával csatlakoztathatja az Arduino 5 V -os táblát a + sorhoz, és összekötheti az összes 5 V -os csatlakozót, vagy forraszthatja össze őket egy szalaglapon vagy használjon wago csatlakozókat vagy bármit, amit szeretne. Most csatlakoztassa a LED CI -tűjét az Arduino 7. tűjéhez, a LED DI -tűjét pedig az Arduino 8. tűjéhez. Ha nincs ilyen LED-je, ne aggódjon, lehetőség van az Arduino-kártya beépített LED-jének vagy egy klasszikus LED-jének használatára, csak egy kis változtatással a kódon.

5. lépés: A Fényerő modul vázlatának megírása

A Fényerő modul vázlatának megírása
A Fényerő modul vázlatának megírása

Hozzon létre egy új vázlatot, és írja be a modulunk kódját.

Ha nem érdekli a vázlat magyarázata, egyszerűen másolja és illessze be az Arduino IDE -be:

#befoglalni

a LightModule használatával = AtHomeModule; Patak *folyamok = {& Sorozat, nullptr}; GroveChainableLED:: Pins grovePins = {7, 8}; GroveChainableLED led (& grovePins); LightModule *modul = LightModule:: getInstance (); void setup () {// tegye ide a beállítási kódot, hogy egyszer lefusson: Serial.begin (9600); modul-> setStreams (folyamok); GroveDigitalLightSensor *lightSensor = új GroveDigitalLightSensor (); modul-> setSensor (lightSensor); modul-> setDisplay (& led); modul-> beállítás (); } void loop () {// tegye ide a fő kódot az ismételt futtatáshoz: modul-> run (); }

Ha meg akarja érteni, mit csinál ez a kód, olvassa el a következőket, vagy ha nem érdekli, akkor közvetlenül a következő lépésre ugorhat.

Kezdésként be kell vonnunk a könyvtárunkat a vázlatunkba, írva ezt a sort a vázlat tetejére:

#befoglalni

Most létre kell hoznunk egy álnevet a használni kívánt modulobjektumhoz. Látható dobozként, több gombbal, amelyek segítségével megváltoztathatja az összetevőit, elindíthatja, leállíthatja, stb. Mivel ez egy sablon által épített doboz (mint a szokásos sablon, amelyet emberként használunk a projektekhez, kezdő bázissal rendelkezik, és az Arduino fordítója az általa megadott paraméterek alapján készíti el a végső kódot), amely meghatározza az érzékelő értékét és a a memóriában tárolni kívánt érzékelőértékek száma, ez a nevében van megadva, és általában meg kell ismételni minden alkalommal, amikor használni akarjuk. Ami kissé bosszantó, ezért a doboz teljes nevéhez új nevet, álnevet társítunk.

Tegyük fel például, hogy szeretném, ha ezt a dobozt "LightModule" -nak neveznék, mivel fényerősség -figyelő modul megvalósítására fogják használni, és egyszerre csak 1 értéket szeretnék megtartani. A fényerőt luxban integrált típusként ábrázolja a TSL2561 érzékelőnk, amelyet a számítógépek uint16_t -ként ábrázolnak. Az aliasunk így fog kinézni:

a LightModule használatával = AtHomeModule;

A "használó" kulcsszó azt jelenti, hogy álnevet hozunk létre, és a közvetlenül azután megadott név megfelel a "=" karakter utáni sorozatnak.

Az "AtHomeModule" a doboz valódi neve, új nevet adunk, és az értékmegjelenítést és a memóriában tárolt értékeket meghatározó paraméterek "" között szerepelnek.

Most, amikor később az "AtHomeModule" nevet fogjuk használni, az Arduino tudni fogja, hogy az "AtHomeModule" teljes névre utal.

Ha azt szeretné, hogy a doboza 5 értéket tudjon tárolni a memóriában az 1 helyett, akkor csak le kell cserélnie az "1" -et "5" -re, és az Arduino más típusú dobozt generál Önnek, amely képes arra, amit akar. Ne feledje azonban, hogy ha a modul úgy van programozva, hogy elküldi az értékeit, mielőtt ideje lenne hatékonyan mérni az érzékelő 5 értékét, akkor soha nem fogja látni, hogy 5 közülük elküldésre kerül, mivel az utolsó feltöltés óta csak az új értékeket küldi el.

Ezután létre kell hoznunk egy mutatótömböt, amely mutatókat tartalmaz az Arduino folyamokon, amelyeket a modul a kommunikációhoz használ, és mindig a kulcsmunkával "nullptr" fejezi be. Itt csak az Arduino "Soros" adatfolyamát használom, amely az USB -porton keresztül kommunikál a számítógéppel, így a tömb így néz ki:

Patak *folyamok = {& Sorozat, nullptr};

A "*" karakter azt jelenti, hogy a típus egy mutató (az elem helye, nem maga az elem), a "" zárójel pedig azt jelenti, hogy az Arduino -ban ez egy tömb, így több értéket is megadhatunk.

Ezután létre kell hoznunk a LED -et. Ehhez meg kell írnunk a következő két sort;

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

GroveChainableLED led (& grovePins);

Ha nem rendelkezik Grove RGB LED -del, de mégis vizuális visszajelzést szeretne, akkor a vázlat egyszerű módosításával megteheti. Cserélje ki az előző két sort ezzel a sorral:

Monokromatikus LED led (LED_BUILTIN);

Ebben a konfigurációban a zöld beépített LED addig világít, amíg a megfigyelt érték rendben van az egészséggel, és kialszik, ha nincs kötve. Ha inkább azt szeretné, hogy bekapcsoljon, ha nincs kötve (mert például piros LED -et használ a zöld helyett a 13. tűn), akkor ezt a sort használhatja:

Monokromatikus LED led (LED_BUILTIN, igaz);

A következő lépés a modul létrehozása. Ez az első alkalom, amikor megkapjuk a helyét a memóriában a "getInstance" módszer meghívásával, így:

LightModule *modul = LightModule:: getInstance ();

Ezután be kell állítanunk a paramétereket az Arduino "setup ()" függvényében, kezdve a "Soros" port inicializálásával az Arduino vázlatokban megszokott módon:

Sorozat.kezdet (9600);

Ezt a sort írva hozzuk létre a fényérzékelőt:

GroveDigitalLightSensor *lightSensor = új GroveDigitalLightSensor ();

Ezután azt mondjuk a modulunknak, hogy használja az Arduino Stream mutatósorait, hogy kommunikáljon rajtuk keresztül:

modul-> setStreams (folyamok);

Azt is mondjuk a modulunknak, hogy használja a fényérzékelőnket a fényintenzitás megfigyelésére, ahol a modul található:

modul-> setSensor (lightSensor);

Azt mondjuk a modulunknak, hogy használja a LED -eket, hogy vizuális visszajelzést adjon nekünk:

modul-> setDisplay (& led);

Végül elmondjuk modulunknak, hogy kész bármilyen belső konfigurációt elvégezni a saját "setup" funkciójának meghívásával:

modul-> beállítás ();

Utolsó lépésünk, hogy meghívjuk modulunk "run ()" függvényét, amelyet úgy terveztünk, hogy az Arduino "loop" függvényének minden iterációjánál meghívásra kerüljön, ha ezt a sort a "loop" függvénybe írjuk:

modul-> run ();

Most a vázlatunk végre készen áll az Arduino -ba való feltöltésre és a modul tesztelésére!

6. lépés: Az AtHome modul tesztelése

Az AtHome modul tesztelése
Az AtHome modul tesztelése
Az AtHome modul tesztelése
Az AtHome modul tesztelése

A vázlatnak az Arduino -ba való feltöltéséhez válassza ki az Arduino UNO kártyát az "Eszközök"> "Port"> "[COMx vagy/dev/x] (Arduino/Genuino UNO)" menüpontban.

Végül kattintson a "Feltöltés" gombra (a kör gombja jobbra mutató nyíllal, az eszköztár második ikonja) a vázlat feltöltéséhez a táblára.

Kész! Most a modulnak működnie kell, és értékeket kell küldenie a számítógépére, amelyek láthatók az Arduino soros monitorában. Ellenőrizheti, ha megnyitja az Arduino "Soros monitorját" az "Eszközök" menüben, és olyan kimenettel kell rendelkeznie, mint a lépés második címképe:)

7. lépés: Hozzon létre egy tokot a modulhoz

Egy tok építése a modulhoz
Egy tok építése a modulhoz

Egy egyszerű dobozházat építhet a modulhoz, ha lézerrel vágja le 3 mm -es rétegelt lemezből.

Dobozdobozaink elkészítéséhez a makercase -t használva sablont készítünk a kívánt méretben, amelyet később személyre szabunk. Ehhez a lépéshez csatolja a fényerő modul svg fájlját.

Ezután csak ragassza össze az arcokat, kivéve az egyiket, hogy később kinyissa, helyezze be az áramkört, és ragassza a LED -et a tok lyukába (átlátszó szalagot használunk a lyuk kitöltésére és a fény eloszlatására a LED elülső ragasztása mellett) annak).

Most csak adjon hozzá egy akkumulátort az Arduino táplálásához, zárja le a tokot, és a modul készen áll, és jól kell kinéznie:)

Ajánlott: