Intelligens riasztás: 6 lépés
Intelligens riasztás: 6 lépés
Anonim
Intelligens riasztás
Intelligens riasztás

Az iskolából azt a feladatot kaptam, hogy készítsek egy projektet. Azért választottam az intelligens ébresztőt, mert mindig átalszom az ébresztőt, és akkor hiányzik az iskola. Csak akkor tudja megölni az ébresztőt, ha van fény, hang és mozgás, így nem eshet vissza álomba vagy szundíthat anélkül, hogy kinyitná a szemét. Van egy weboldal is, ahol megtekintheti alvási szokásait, riasztásokat állíthat be és új riasztásokat készíthet.

Kellékek

A projekt felépítéséhez bizonyos anyagok szükségesek. listát találhat alább. az anyagjegyzékben mindent megtalál, beleértve az árat is.

  1. Málna pi 3
  2. T-cobbler kitörő tábla
  3. PIR-érzékelő
  4. Fényérzékelő
  5. Hangérzékelő érzékelő
  6. Berregő
  7. LCD kijelzö
  8. Gomb

1. lépés: Hardver

Hardver
Hardver

Mielőtt elkezdtem mindent építeni, elkészítettem 2 sémát (1 elektromos és 1 a kenyérlapon) a fritzezésen, és ellenőriztem őket, hogy megbizonyosodjak arról, hogy nincsenek hibák. Miután megbizonyosodtam arról, hogy minden rendben van, elkezdtem a projektet. Először is a hangjelzővel és a gombbal kezdtem, mert ezek voltak a legegyszerűbb alkatrészek. Ezután csatlakoztatom a kijelzőmet a málna pi -hez. A végén csatlakoztatom az érzékelőimet. a fényérzékelő és a mozgásérzékelő egyszerű, mert nem kell semmi más, csak a PIR érzékelőnek valami extra. Annak biztosítására, hogy a PIR ne okozzon rövidzárlatot, feszültséghídot kell használnia. Ez azt jelenti, hogy további 1k ohmos és 2k ohmos ellenállást kell használnia, hogy biztosan minden rendben legyen. A csapok pontos használatát és azt, hogyan lehet mindent a pi -hez csatlakoztatni, megtalálhatja a sémákban.

2. lépés: Adatbázis

Adatbázis
Adatbázis

Az adatok tárolásához adatbázisra volt szükségem.

Az adatbázisom 6 táblából áll.

  1. Érzékelő
  2. History_sensors
  3. Személy
  4. Alarm_person
  5. Sleep_patern
  6. Riasztás

2 rész van az adatbázisban. 1 az érzékelőkre és 1 a személyre és minden statisztikájára.

Az érzékelőtábla azonosítót és nevet tartalmaz. Ez a táblázat a History_sensors -hoz kapcsolódik, amelynek azonosítója, értéke, Sensor_id és neve van. a sensor_id szükséges ahhoz, hogy megtudja, melyik érzékelő kapott értéket, és a dátumra van szükség ahhoz, hogy megtudja, mikor mérte az érzékelő.

Az asztali személy azonosítót, nevet és jelszót tartalmaz. A bejelentkezéshez szükség van a jelszóra és a névre, hogy senki más ne tegyen riasztást az Ön számára. Ez a tábla összekapcsolódik a sleep_pattern táblával és az Alarm_person táblával. A Sleep_patern táblázat tartalmaz egy azonosítót, Hours_sleep, Date, Person_id, Bedtime és Wake_up_time. Tehát itt vannak a tárolt adatok, amelyek grafikát készítenek az alvási apáról.

Az Alarm_person táblázat tartalmazza a Person_id, Alarm_id és az időt. Erre a táblázatra azért van szükség, mert különböző emberek használhatnak riasztást egyszerre, és 1 személy több riasztást. Az utolsó táblázat a riasztóasztal. Ez egy azonosítót és egy leírást tartalmaz.

3. lépés: Háttér

Háttér
Háttér
Háttér
Háttér

A háttérben különböző függvényeket kellett írnom.

  1. kérje az asztali érzékelőket
  2. kérje a táblát history_sensors
  3. kérje az alvási mintát
  4. tegyen új riasztót
  5. kérje az asztali ébresztőt
  6. felhasználó regisztrálása
  7. Belépés
  8. tegye az érzékelők értékeit a history_sensors táblázatba

A pycharm -ot használtam, és a kódot pythonba írtam.

minden funkcióhoz a @app.route -t, majd a címet használom. minden alkalommal más címet kell használnia, mert különben nem fog működni. Ezt követően írok egy if függvényt a metódussal, így ha ez igaz, akkor végrehajtja a kódot. az if értékben van egy try fogás és egy sql utasítás az adatok beszerzéséhez vagy az adatok eltüntetéséhez.

Az érzékelőkkel végzett funkciók esetében ez más. Itt nem a @app.route -t használtam, hanem csak egy funkciót készítettem az érzékelőhöz. itt deklarálja a csapokat, és visszahívási funkciót hajt végre. ily módon az érzékelő minden alkalommal észlel valamit, amit a funkció végrehajt. A visszahívási funkcióban an -t használtam, ha az működik, ha az érzékelő valamit észlel. Az if -ben megjelenik az adatok táblába helyezésének kódja sql utasítással. Alvás is van benne, mert különben túl sok értéket helyezne el a táblázatban egyetlen észleléshez.

A githubomban megtalálja a projekt teljes kódját.

4. lépés: Weboldal

Weboldal
Weboldal
Weboldal
Weboldal
Weboldal
Weboldal

A webhelyemhez html -vel és css -sel dolgoztam, a webhelyem 11 html oldalt tartalmaz.

Annyi oldal van, mert minden működik a webhelyen. beállíthat riasztást, hozzáadhat riasztást és törölhet egyet. A beállítások oldalon megváltoztathatja jelszavát és e -mail címét. Van egy oldalad az alvásmintádhoz. Hozzáadhatja azt a pillanatot is, amikor aludni ment, és amikor felébred. A pozitív dolog az, hogy minden oldal ugyanolyan kinézetű, és többnyire ugyanazokat a dolgokat használja, így a css gyakran minden oldalon ugyanaz.

5. lépés: Kezelőfelület

A kezelőfelület javascript-ben van írva.

6. lépés: Ügy

Ügy
Ügy
Ügy
Ügy

Esetemben a fát választottam. Nem olyan nehéz vágni, jól néz ki. Az esetem 26 cm, 14 cm, magassága 7, 5 cm. Ez azért nagy, mert mindent be kell illeszteni. Furatokat készítettem az érzékelők, a gomb és az LCD számára, hogy az idő látható legyen, és az érzékelők érzékeljék a mozgást vagy a fényt. Ezek elkészítéséhez lézervágót használtam. A tok belsejében a kenyértáblám és a málna pi áll.

Ajánlott: