Tartalomjegyzék:

Ébressz fel - intelligens ébresztőóra: 6 lépés
Ébressz fel - intelligens ébresztőóra: 6 lépés

Videó: Ébressz fel - intelligens ébresztőóra: 6 lépés

Videó: Ébressz fel - intelligens ébresztőóra: 6 lépés
Videó: Смарт-Часы Maimo Watch - Детальный ОБЗОР + ТЕСТЫ 2024, November
Anonim
Wake Me Up - intelligens ébresztőóra
Wake Me Up - intelligens ébresztőóra

A Wake me up egy intelligens ébresztőóra, amely intelligens fényként is használható.

A beépített ledszalag szimulálja a szobába érkező természetes fényt. Ez lehetővé teszi a nap nyugodt, természetes módját.

Az ébresztőóra 4*7 szegmenses kijelzővel van felszerelve az idő leolvasásához, hangszórókkal a kedvenc zenéjéhez való ébredéshez, érintőgombbal, ldr -vel a ledszalag fényerejének beállításához és egy hőmérséklet -érzékelővel, amellyel megtekintheti az a szoba hőmérséklete.

Kellékek

Az általam kifizetett pontos árak listája itt található:

Mikrokontrollerek és számítógépek:

A Raspberry Pi 4I a raspberry pi 4 4GB -t használta, azonban minden málna pi 3+ modellnek rendben kell lennie

Arduino Uno

Az arduino a 4*7 szegmenses óra kijelző vezérlésére szolgál.

Érzékelők:

  • TMP36: hőmérséklet -érzékelő
  • LDR: Fényfüggő ellenállás

Állítóművek:

  • WS2801: Egyénileg címezhető ledszalag
  • LCD kijelző: 16*2 LCD kijelző.
  • 4*7 szegmenses óra kijelző

IC -k:

  • 74HC595: Shiftregister az LCD kijelzőhöz
  • MCP3008: 8 bites analóg-digitális átalakító
  • Logikai szintváltó: A raspi és az arduino közötti kommunikációra szolgál

Más dolog:

  • Adafruit MAX9744 erősítő a hangszórók táplálására
  • Bármelyik hangszóróhoz Visaton 4Ohm 8Watt teljes tartományú hangszórót használtam (2240. cikk)
  • 9 voltos tápegység az erősítő tápellátásához
  • 5 voltos tápegység a ledszalag és más alkatrészek ellátásához. Ne feledje, hogy a ledszalagban lévő egyes vezetékek 60 mA feszültséget képesek lemeríteni, ezért győződjön meg arról, hogy a tápegység elegendő.
  • Néhány 220 ohmos ellenállás
  • Egy kis kenyérsütő a tokjába.

Eszközök:

  • Forrasztópáka.
  • Valami a tok elkészítéséhez (3D nyomtatót használtam PLA -val és PETG -vel, valamint néhány vinil matricát a fahatás eléréséhez.)

1. lépés: A Raspberry Pi beállítása

A málna pi a fő mikrovezérlőnk.

A málna pi a helyi webszerverünket, adatbázisunkat futtatja, vezérli a ledszalagot, a hangszórókat,…

1. rész: A Raspbian telepítése

Használja ezt az oktatóanyagot a raspbian telepítéséhez:

Győződjön meg arról, hogy az SSH engedélyezve van

2. rész: Kapcsolódás

Az internethez való csatlakozáshoz hozzáférést kell kapnia a málna pi termináljához. Javaslom a gitt használatát. A terminál típusában:

wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

A "YourNetwork" a wifi hálózat neve, a "YourSSID" pedig a hálózat jelszava.

Miután hozzáadta a hálózatot, próbálja újraindítani a Raspberry Pi -t.

Gépelje be a 'ping 8.8.8.8' parancsot, ez csomag küld a Google szervereire, ha választ kap, a hálózat be van állítva és működik!

3. rész: Telepítse a szükséges programokat

Szükségünk lesz néhány extra program telepítésére, hogy elindítsuk ezt a projektet.

Mielőtt elkezdenénk, futtassa ezt a 2 parancsot, hogy megbizonyosodjon arról, hogy minden frissítve van.

sudo apt frissítés

sudo apt frissítés

Ez eltarthat egy ideig.

Apache

sudo apt install apache2 -y

sudo apt install php libapache2-mod-php -y

MariaDB

sudo apt install mariadb-server mariadb-client -y

sudo apt install php -mysql -y

PHPMyAdmin

sudo apt telepítse a phpmyadmin -y

Python pip

Telepítenünk kell a pip -t, hogy engedélyezzük néhány python könyvtárat

pip3 telepítse a mysql-connector-python programot

pip3 telepítse a flask-socketio-t

pip3 telepítse a lombikhüvelyeket

pip3 install gevent

pip3 telepítse a gevent-websocket-et

2. lépés: Az elektronika csatlakoztatása

Az elektronika csatlakoztatása
Az elektronika csatlakoztatása
Az elektronika csatlakoztatása
Az elektronika csatlakoztatása

Hozzáadtam 2 sémát, az egyik egy tesztlap. Azt javaslom, hogy készítse el az első sémát, és próbálja meg működtetni a kódot.

Az alábbiakban hozzáadtam a frizuráló fájlokat.

3. lépés: Adatbázis tervezése

Adatbázis tervezés
Adatbázis tervezés

Ezt az adatbázis sémát készítettem. A szavak hollandul vannak, de minden táblázatot részletesen elmagyarázok.

1. táblázat: tblMuziek

Ez egy elég alapasztal. Mentse az előadó nevét, a dal nevét és a dal fájlnevét.

2. táblázat: tblLedstrip

Ez a táblázat nyomon követi a ledszalag aktuális állapotát, és menti a ledszalag állapotát. Erre szükségünk van az intelligens fényforrás funkcióhoz.

3. táblázat: tblSensoren

Ez a táblázat nyomon követi a riasztónkban lévő érzékelőket. Tároljuk az érzékelő nevét és az MCP3008 csatornáját

4. táblázat: tblMeting

Ez a táblázat tárolja érzékelőink értékeit az idejükkel együtt.

5. táblázat: tblWekker

Ez a táblázat tárolja az ébresztőóra jelszavát és nevét (pl. Hálószoba) Ez a táblázat nem kötelező, de azért adtam hozzá, mert feltételezem, hogy 1 -nél több ébresztőóra lesz a házban.

6. táblázat: tblAlarm

Ez talán a legfontosabb táblázat. Nyomon követi a beállított ébresztőórákat és az óra feladatait (melyik dalt játssza le, melyik sorrendet, mely napokon kell megszólalnia …). Nagyon fontos 2 dátum követése. 1 dátum tárolja, hogy a riasztás melyik órában szóljon. A másik nyomon követi, hogy a riasztó mikor szólalt meg utoljára. Ahhoz, hogy megtudjam, melyik hétköznap kell kikapcsolnia, egy varchar -t használtam, amely 7 számjegyből áll. Az első számjegy a hétfő, a második kedd,… Ha 1, akkor ki kell kapcsolnia, ha 0, akkor nem. Példa: 1111100 ez azt jelenti, hogy a riasztásnak hétfőn, kedden, szerdán, csütörtökön és pénteken kell megszólalnia.

Lépés: Az Arduino beállítása

Ez a lépés nagyon egyszerű. A következő lépésben lesz egy link a github -ra, ahonnan letöltheti az arduino fájlt.

Mit csinál a program?

A program várja, hogy soros adatok érkezzenek a pi -ből.

Amint az adatok megérkeznek, elemzi a karakterláncot, és visszaigazolást küld a pi -nek.

A karakterlánc valami ilyesmi lesz: '1201', ez azt jelenti, hogy 12:01. Egy közös, 7 szegmenses anódos kijelzőt használtam, ami azt jelenti, hogy a számjegyeknek magasnak kell lenniük, és az A, B, C, D, E, F, G és DP alacsonynak kell lenniük a bekapcsoláshoz. Ha közös katódot használ, akkor a HIGH értéket LOW és LOW értékre kell állítani.

Itt található egy link, amely további információkat tartalmaz a 7 szegmenses kijelző működéséről. (könyvtár használatával):

www.instructables.com/id/Using-a-4-digit-7…

Itt egy link a 7 szegmenses megjelenítésről könyvtár használata nélkül:

create.arduino.cc/projecthub/SAnwandter1/p…

5. lépés: Raspberry Pi Backend

Raspberry Pi Backend
Raspberry Pi Backend

A kódomat a Github segítségével töltheti le. (https://github.com/VanHevelNico/WakeMeUp)

A program telepítése:

A háttérprogramot pythonban írjuk lombik használatával. Készíthet olyan szolgáltatást, amely automatikusan elindítja ezt a programot (app.py).

A frontend kódot a korábban letöltött apache szerver html fájljába kell helyeznie. (/var/html)

Hogyan működik a program?

Amikor az ébresztőóra be van kapcsolva, lépjen az óra IP -címére (ez megjelenik az LCD -n)

Amint a böngészőjében arra az IP -címre lép, a számítógépe elküldi a socket.io kérést a háttérprogramnak, mondván, hogy az ügyfél csatlakozott. Amikor a háttérrendszer ezt megkapja, néhány szál elkezdődik, amelyeket az alábbiakban elmagyarázok.

Beállít

Ez minden szükséges objektumot inicializál.

GetTemp

Ez beolvassa az mcp3008 0. csatornát, és a bináris adatokat a tényleges hőmérsékletre konvertálja, és az aktuális dátummal és órával az adatbázisba helyezi.

GetTempGrafiek

Ez megkapja a hőmérséklet -érzékelő elmúlt 20 értékét, és elküldi a kezelőfelületnek.

tijd_sturen

Ez a módszer megkapja az aktuális időt, és ellenőrzi, hogy a perc megváltozott -e. Ha ez megváltozott, a program soros kommunikáció segítségével elküldi az új időt az arduino -nak

checkAlarmen

Ez a legfontosabb módszer. Megkapja az összes bekapcsolt riasztást, és ellenőrzi, hogy a riasztások bármelyikének be kell -e kapcsolnia most és 5 perccel ezelőtt (ez egy puffer annak biztosítására, hogy minden riasztás akkor induljon el, amikor szükséges). Ha a riasztónak ki kell kapcsolnia, elindítjuk a zenét, a ledszalagot,… Folyamatosan olvassuk az erőérzékeny ellenállást, és amikor az érték 1000 alá csökken (olvassa el, hogy megnyomja az fsr -t) Bekapcsoljuk a riasztást, és frissítjük a riasztást a adatbázis. Az aktuális dátumra állítottuk be azt a dátumot, amikor a riasztó utoljára megszólalt.

statusLight

Ez a módszer kibocsátja a ledszalag értékét, és szükség esetén bekapcsolja a ledszalagot.

lichtAanpassen

Ez egy extra módszer annak biztosítására, hogy a ledszalag és a riasztó lámpa ne ütközzenek egymással.

6. lépés: Ügy

Ügy
Ügy
Ügy
Ügy
Ügy
Ügy

A fájljaim linkje itt található:

A burkolat nyomtatásához 3D nyomtatót használtam. 4 különböző részre van nyomtatva:

  1. Az előlap lyukakkal a hangszóróhoz és néhány fal a 7 szegmenses kijelzőhöz
  2. A külső gyűrű az átlátszó PETG ledszalaghoz.
  3. A középső rész
  4. A hátlap lyukkal az LCD és a kábelek számára.

Az eredeti modellben nem volt lyuk a 7 szegmenses kijelzőhöz, de erre szükség van, mert különben a 7 szegmenses kijelző fénye nem világít át.

Amint láthatja, miután az összes összetevőt behelyezte, fából készült vinil matricákat használtam, hogy a végeredmény jobb legyen. Az óra kijelzője ragyog a matricán keresztül, ami nagyon szép megjelenést eredményez.

Ajánlott: