Tartalomjegyzék:

A baba hűvös tartása ezen a nyáron - a buta rajongók irányítása okos dolgokkal!: 6 lépés (képekkel)
A baba hűvös tartása ezen a nyáron - a buta rajongók irányítása okos dolgokkal!: 6 lépés (képekkel)

Videó: A baba hűvös tartása ezen a nyáron - a buta rajongók irányítása okos dolgokkal!: 6 lépés (képekkel)

Videó: A baba hűvös tartása ezen a nyáron - a buta rajongók irányítása okos dolgokkal!: 6 lépés (képekkel)
Videó: Часть 06. Аудиокнига «О человеческом рабстве» У. Сомерсета Моэма (гл. 61–73) 2024, Július
Anonim
A baba hűvös tartása ezen a nyáron - a buta rajongók irányítása okos dolgokkal!
A baba hűvös tartása ezen a nyáron - a buta rajongók irányítása okos dolgokkal!
A baba hűvös tartása ezen a nyáron - a buta rajongók irányítása okos dolgokkal!
A baba hűvös tartása ezen a nyáron - a buta rajongók irányítása okos dolgokkal!

Két héttel ezelőtt, amikor ezt írtam, apa lettem egy hihetetlen kisfiúnak!

Az évszakok változásával, a nappalok hosszabbodásával és a hőmérséklet melegedésével úgy gondoltam, jó lenne, ha valamilyen monitor lenne az óvodában, hogy ellenőrizze, milyen meleg van ott!

Az évek során nem sok pythonnal foglalkoztam, de szerettem volna visszatérni az egyetemi első évem óta, közel 5 évvel ezelőtt! Emiatt úgy gondoltam, hogy jobb lenne dokumentálni, amit tettem, hogy később segítsen nekem, és segítsen bárkinek, aki ugyanezt akarja tenni!

A Raspberry pi, az Enviro pHAT és az intelligens TP-link kasa dugó segítségével az IFTTT keretrendszer segítségével vezérelheti a dugókat! ez nagyon egyszerű, és akár módosíthatja is ezt az áttekintést, hogy bármit vezérelhessen különböző érzékelőkön és különböző eszközökön keresztül! Remélem, hasznosnak találja ezt. Ha tetszik ez az oktatható, ne felejtse el szavazni a beküldésemre az érzékelők versenyében!: D (elnézést a kérdésért), most először csinálom ezt, és szeretném, ha minden esélyem lenne arra, hogy nyerjek valamit.

** SZERKESZTÉS ** Az elkövetkező napokban megvizsgálom, hogy ezeket az adatokat egy Grafana táblára továbbítom -e, ha úgy gondolja, hogy ez jó lenne, tudassa velünk!: D

Menjünk rögtön bele…

Kellékek

  1. Bármelyik Raspberry pi megteszi, de én a Zero W -t választottam, mivel ezt kellett leadnom a sorsolásomban, és a legkisebb formatervezési tényező is van, alapértelmezés szerint engedélyezve a WiFi! - Málna PI Zero w
  2. SD kártya, mindenkinek más a preferenciája ezekkel kapcsolatban, de én ezek közül egyet használtam! - Micro-SD kártya
  3. Ha elakad, itt van a hivatalos támogatott dokumentáció az SD -kártyákról -hivatalosan támogatott SD -kártyákról
  4. Átkötő vezetékek (később elmagyarázzuk) - Jumper vezetékek
  5. Enviro pHAT minden dicsőséges érzékelőhöz! - Envrio-pHAT
  6. Egy okos dugó, a TP-Link-et választottam, mivel nincs szüksége divatos hubokra, hogy működjön a doboz! - Okos dugó!
  7. Egy buta ventilátor az irányításhoz, bármilyen ventilátort használhat, most találtam egy ventilátort az amazonon, de minden fali konnektor ventilátor jól fog működni - Dumb ventilátor
  8. Forrasztópáka, de ha nem szeretné használni a forrasztópáka, akkor kattintson a fejlécekre a PI és a pHAT számára-GPIO-kalapácsfej

Ahhoz, hogy a kapcsolat a TP-links kasa és az IFTTT között működjön, az utasítás végrehajtása előtt létre kell hoznia egy TP-link kasa és IFTTT fiókot. Amikor megkapja a TP-link intelligens csatlakozót, az intelligens csatlakozóhoz mellékelt utasítások végigvezetik a beállítási folyamaton, beleértve a dugó elnevezését és annak alapvető funkcióit

Ha megvan az összes bevásárlólista, ideje összeszerelni az összeset!

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

Szerezze be a legújabb és legnagyobb Raspbian-képet, az egyszerűbb verzió jól fog működni, ha nem jobb a nulla w-nál! -

Írja be ezt a képet az SD -kártyára, ehhez olvasóra és képalkotóra lesz szükségem, én etcher -t használok -

Wifi beállítása (opcionális) Ha a PI beépített WIFI -vel rendelkezik, miért nem állítja be most, hogy később elkerülje a konzolokkal kapcsolatos sok zűrzavart!

Miután a pi -t leképezték, a meghajtó kilökődött. Húzza ki és csatlakoztassa az SD -kártyát, hogy a készülék újra felismerje. Meg kell jelennie egy rendszerindító partíciónak.

Hozzon létre egy üres fájlt wpa_supplicant.conf a pi rendszerindító partíciójában, helyezze ide az alábbi fájlt:

hálózat = {

ssid = "YOUR_SSID" psk = "YOUR_WIFI_PASSWORD" key_mgmt = WPA-PSK}

Az SSH engedélyezése a választott PI -n (opcionális)

Alapértelmezés szerint a tiszta Raspbian képen az ssh ki van kapcsolva. Indítania kell a rendszert, csatlakoztatnia kell a billentyűzetet és a kijelzőt a Pi -hez, majd engedélyeznie kell az ssh -t. Ez a lépés engedélyezi az ssh -t az első indításkor. A rendszerindítási partícióban hozzon létre egy új fájlt ssh néven. Egy üres fájl pontosan ezzel a névvel.

Miután elvégezte ezeket a két opcionális lépést, a PI automatikusan csatlakozik a WIFI -hez, és alapértelmezés szerint engedélyezve van az SSH.

Miután elkészítette és konfigurálta a micro-SD kártyát, behelyezheti azt a PI-be vagy a választásba, és bekapcsolhatja!

A PIO frissítése Miután elindította a PI -t, a vezeték nélküli útválasztók beállításai között megtalálhatja az Ön IP -címét. A legtöbb útválasztó eltér egymástól, ezért nehéz lenne ehhez útmutatót írni!

Miután megkapta a PI IP -címét, csatlakozzon SSH -n keresztül, és jelentkezzen be az alábbiak szerint:

Felhasználónév: pi

Jelszó: málna

Miután aktív SSH -munkamenetet hajtott végre a PI -vel, frissíteni szeretné, egyszerűen futtassa az alábbit a megfelelő Y vagy N billentyűvel a frissítés során:

sudo apt-get update

sudo apt-get upgrade

Mindig jó újraindítani a PI -t az új frissítések telepítése után, hogy megbizonyosodjon arról, hogy a legújabb frissítésekkel újra fut, ez elérhető

sudo reboot -n

Most kész a PI, ideje továbblépni a következő lépésre!

2. lépés: Az Enviro PHAT beállítása

Az Enviro PHAT beállítása
Az Enviro PHAT beállítása
Az Enviro PHAT beállítása
Az Enviro PHAT beállítása

Az Enviro pHAT bekötése

Ha már naprakészen van a pi -je, csatlakoztathatja az Enviro pHAT -ot a kívánt PI -hez!

*** Annak érdekében, hogy ne károsítsa a PI -t vagy a pHAT -ot, először kapcsolja ki ***

Itt az áthidaló vezetékeket használtam, mert termikus lemosást kaphat, ha a CPU felmelegszik az Enviro pHAT alatt. Ez az extra hő megváltoztathatja a későbbi hőmérséklet -értékeket. Emiatt 5 jumper vezetéket használtam az alábbi csapokon:

  • 3. tű - GPIO2 (SDA I2C)
  • 5. tű - GPIO3 (SCL I2C)
  • 7. tű - GPIO4
  • 6. csap - Földelés
  • Tű 4 - 5V

Kérjük, ellenőrizze a bekötési rajzot a lépés tetején vizuális hivatkozás céljából, vagy az alábbi linket:

pinout.xyz/pinout/enviro_phat

(elnézést a silány festésért)

A pHAT bekötésekor győződjön meg róla, hogy megfelelően van beállítva, különben károsíthatja azt !!! Ehhez az enyém volt beállítva, így az ANALOG IN fejlécek az SD kártya foglalat felé néznek, ezt később megfordították a képeimen, hogy szorosan illeszkedjen a "hordozóba".

A függőségek telepítése

Kapcsolja vissza a PI -t, és kapcsolja vissza az SSH -t

Miután visszatért a PI -hez, futtassa az alábbiakat az Enviro pHAT számára szükséges csomagok és szoftverek telepítéséhez:

curl https://get.pimoroni.com/envirophat | bash

Ügyeljen arra, hogy szükség esetén nyomja meg az Y vagy az N billentyűt.

A telepítés befejezése után indítsa újra a PI -t …

sudo reboot -n

A pHAT tesztelése

Annak érdekében, hogy a pHAT megfelelően legyen bekötve, bemehet egy python modulba, és futtathat néhány parancsot a PI visszaállításával és a python begépelésével, és írja be egyszer az alábbi parancsot:

a környezeti import időjárástól

nyomtatás (weather.temerpature ())

Ennek az alábbi leolvasást kell mutatnia:

>> a környezeti import időjárástól

>> nyomtatás (időjárás.hőmérséklet ()) 24.0806166987

Hibaelhárítás

Ha valami hibát észlel az alábbiak szerint:

Traceback (a legutóbbi hívás utolsó): "" fájl, 1. sor, a "/usr/lib/python2.7/dist-packages/envirophat/bmp280.py" fájlban, 134. sorban, self.update () File fájlban /usr/lib/python2.7/dist-packages/envirophat/bmp280.py ", 169. sor, frissítésben, ha self._read_byte (REGISTER_CHIPID) == 0x58: # check sensor id 0x58 = BMP280 File"/usr/lib/ python2.7/dist-Packages/envirophat/bmp280.py ", 116. sor, _read_byte visszatérés self.i2c_bus.read_byte_data (self.addr, register) IOError: [121-es hiba] Távoli I/O hiba

Ezután futtathatja:

sudo i2cdetect -y 1

Ez diagnosztikai ellenőrzést végez a kapcsolatokon/vezetékeken, és az alábbiakra vágyik:

pi@raspberrypi: ~ $ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 abcdef 00: - - - - - - - - - - - - - - 10: - - - - - - - - - - - - - - 1d - - 20: - - - - - - - - - - 29 - - - - - - 30: - - - - - - - - - - - - - - - - 40: - - - - - - - - - 49 - - - - - - 50: - - - - - - - - - - - - - - - - - 60: - - - - - - - - - - - - - - - - 70: - - - - - - - 77

Ha nem, akkor vissza kell mennie, és újra ellenőrizni kell a kábelezést, ellenőrizze a kapcsolási rajzot, és próbálja újra!

A pi-baby-cooler.py szkript telepítése

Ha minden rendben van, és sikeres volt a hőmérséklet-leolvasás, akkor folytathatjuk a baby-cooler.py csomag telepítését!

Mivel az utasítások kezelik a hivatkozásokat, a fenti lépés fejlécéhez csatoltam a.py szkriptet … Ennek másolásához a PI -hez javaslom a WinSCP használatát:

winscp.net/eng/download.php

A WinSCP népszerű SFTP- és FTP -ügyfél a Microsoft Windows számára! Fájl másolása helyi számítógép és távoli szerverek között FTP, FTPS, SCP, SFTP, WebDAV vagy S3 fájlátviteli protokollok használatával.

A WinSCP használata egyszerű, egyszerűen csatlakozzon a PI -hez a PI IP -címével, majd húzza át a.py fájlt oda, ahonnan futtatni szeretné, ez a /home /pi.

Most a.py szkript a PI -n van, itt az ideje, hogy továbblépjen az IFTTT -fiók / kapcsolatok beállításához

3. lépés: Az IFTTT -fiók/kapcsolat beállítása

Az IFTTT -fiók/kapcsolat beállítása
Az IFTTT -fiók/kapcsolat beállítása
Az IFTTT -fiók/kapcsolat beállítása
Az IFTTT -fiók/kapcsolat beállítása
Az IFTTT -fiók/kapcsolat beállítása
Az IFTTT -fiók/kapcsolat beállítása

A továbbiakban megvizsgáljuk az IFTTT token beszerzését, amelyet a forró / hideg függvény hívásakor használunk a szkripten belül, hogy csatlakozzunk a kasa csatlakozóhoz, és kapcsoljuk be / ki a ventilátort.

Webhook létrehozása

Lépjen a https://ifttt.com/ oldalra, és hozzon létre egy fiókot, ha még nem rendelkezik ilyennel.

Miután bejelentkezett, a keresősávon belül keressen rá: TP-link kasa

Miután betöltődött, kattintson a szolgáltatások, majd a TP-link kasa elemre. Ezután össze kell kapcsolnia a kasa -fiókját az IFTTT -fiókjával, és a kapcsolat létrehozásához be kell jelentkeznie a kasa -fiókjába az IFTTT -n keresztül.

Fiókja összekapcsolása után kattintson a "Saját kisalkalmazások", majd az új kisalkalmazás, majd a "+ez" gombra, és keresse meg a webhookokat.

Kattintson a "Webes kérés fogadása" lehetőségre a hot eseménytípuson belül hot (ez bármi lehet, de ezt később frissítenie kell a pi-baby-coller.py szkriptben, különben ez nem fog működni, a hot-t használtam kapcsolja be a ventilátort.

Következő lépésként össze kell kapcsolnunk az új aktiválási szabályt a Kasa-fiókjával, kattintson a "+az" gombra, és keressük a kasa-t, kattintsunk a TP-link kasa-ra, majd a "bekapcsolás" -ra, ezután válasszuk ki a bekapcsolni kívánt eszközt, majd kattintsunk a létrehozás gombra. akció. Tekintse át a műveletet, és kattintson a Befejezés gombra, ha helyes.

**********

Ne feledje, ha a "forró" és "hideg" kivételével más eseménynevet választott, ezeket később fel kell jegyeznie, és frissítenie kell a forgatókönyvet! Ellenkező esetben a.py szkript nem fog működni

**********

Miután létrehoztuk az első webes horgot, ismételje meg a folyamatot a "hideg" esetében, de ezúttal a kikapcsolás lehetőséget választja a bekapcsolás helyett a +adott művelet kiválasztásakor.

Miután két esemény webhook van az én kisalkalmazásaim fiókjában, kattintson a szolgáltatásokra, és keresse meg a webhookokat, majd kattintson rá. Itt megjelenik egy dokumentációs gomb (jobb felső sarokban), kattintson rá. Itt találja meg az IFTTT token kulcsát. Míg itt jegyzeteli a kulcsát (később szüksége lesz rá), a képen belül szerkesztettem az enyémet, különben bárki be- vagy kikapcsolhatja az intelligens dugóimat.

A webhook tesztelése

Most létrehoztunk két webhook -ot, amelyek kapcsolódnak a kasa fiókunkhoz, és tesztelhetjük, hogy működnek -e vagy sem!

A PI -n belül a következőket adhatja meg:

curl -X POST

Ahol "forró" felirat van, hozzá kell adni az esemény nevét, ha "forró" -ként hagyta, hagyja ezt. Ahol azt írja /te … ezt le kell cserélned az IFTTT token kulcsoddal. Nyomja meg az Enter billentyűt, és hallani kell az intelligens csatlakozók reléjének kattanását, amikor bekapcsolja a dugót. Ha nem hallja, akkor ellenőrizze a Kasa alkalmazást, és ellenőrizze a dugók állapotát.

Most már telepítve vannak az Enviro pHAT függőségei, és most az IFTTT beállítása, ideje befejezni a kód módosítását.

4. lépés: A szkript szerkesztése

A forgatókönyv szerkesztése
A forgatókönyv szerkesztése

Esemény neve és IFTTT TOKENSVissza a pi-re, léptessen a pi-baby-cooler.py szkript helyére, számomra az /home /pi (saját mappám), és szerkessze a fájlt nano használatával:

nano pi-baba-hűtő.py

A keresőn belül, ahol azt írja, hogy def turn_off ()

def turn_off ():

# Állítsa be a kiváltó szót - pl. "hideg" - és az alábbi IFTTT Webhook token. TRIGGER_WORD = "cold" TOKEN = "YOUR IFTTT TOKEN GOES ITTA" request.post ("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format (trigger_word = TRIGGER_WORD, token = TOKEN)) print ("Fan off!"):

Ez a funkció kikapcsolja a ventilátort. Ezt úgy teszi meg, hogy webhookot küld az IFTTT -nek, ami a tplink HS100 kikapcsolását eredményezi. Ha az IFTTT -fiókjában az aktiválási műveletet ugyanazon a szinten tartotta, mint a „hideg”, akkor hagyja ezt be, és cserélje ki a webhooks dokumentációból korábban kapott jogkivonatot. Ha másik eseménynevet választott, akkor cserélje ki ezt a szót itt.

Az IFTTT jogkivonat beillesztése után lépjen a következő szakaszba, ahol def turn_on () szerepel

def turn_on ():# Állítsa be a kiváltó szót - pl. "hot" - és az alábbi IFTTT Webhook token. TRIGGER_WORD = "hot" TOKEN = "A IFTTT TOKEN IDE KERÜL" request.post ("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format (trigger_word = TRIGGER_WORD, token = TOKEN)) print ("Fan on!")

Ez a funkció a kikapcsolás fordítottja, bekapcsolja a TP-link intelligens csatlakozót!

Ha az aktiválási műveletet az IFTTT -fiókjában ugyanazon a szinten tartotta, mint a „forró”, akkor hagyja ezt be, és cserélje ki a webhooks dokumentációból korábban kapott jogkivonatot. Ha másik eseménynevet választott, akkor cserélje ki ezt a szót itt.

Minden más már be van kódolva, így nem kell változtatnia a kódon, a TRIGGER_WORD, TOKEN és néhány beállításon a következő hőmérsékleten!

A hőmérsékletek megváltoztatása

Ezután keresse meg azt a helyet, ahol ez szerepel: # Helyi változók.

try: # Helyi változók. állapot = 0 # Beállítja a kapcsoló állapotát alacsony = 20 # Alacsony érték a hőmérsékleti szinthez (Celsius). magas = 24 # Magas hőmérsékleti érték (Celsius). periódus = 120 # Késleltetés másodpercben a hívások között.

Az állapotváltozó azt jelenti, hogy a pi tudja, hogy a dugó be van -e kapcsolva, vagy nem, ezt később frissítik, ha túl meleg lesz (24+*c, majd az állapot később 1 -re változik), ez szintén ki fog kapcsolni a webhook számára, és kapcsolja be az okos csatlakozót!

Az alacsony változó az, hogy mennyire hűvös akarok lenni a helyiségben, mielőtt a dugót kikapcsolják. Ha szeretné melegebbé tenni a szobát, egyszerűen állítsa ezt magasabb értékre. Ha hűvösebbre szeretné, csökkentse az értéket.

A magas változó az a maximális hőmérséklet, amelyet a helyiségnek el kell érni, mielőtt a ventilátor bekapcsol, és elkezdi lehűteni a helyiséget. Ha azt szeretné, hogy a ventilátor bekapcsoljon ezt megelőzően, akkor egyszerűen csökkentse az értéket, vagy ha melegebbet szeretne, akkor növelje az értéket.

A periódusváltozó a hőmérséklet -ellenőrzés közötti időtartam másodpercben. Ha azt szeretné, hogy a pi szkript ritkábban ellenőrizze, majd magasabb, ha le szeretné rövidíteni az időt, csökkentse a számot.

Miután elvégezte a módosításokat, mentse és lépjen ki a nano -ból

CTRL + x

5. lépés: A szkript használata

A Script használata
A Script használata

A szkript helyi futtatása

A szkript futtatásának néhány módja van, csatlakozhat SSH -n keresztül, és beírhatja a következőt:

sudo python /pi-baby-cooler.py

Ez a szkriptet igény szerint futtatja, ez csak addig működik, amíg aktív SSH -munkamenet van a PI -hez. A másik módszer a képernyő használata, a képernyő alapértelmezés szerint nincs telepítve, ezért sudo apt telepítési képernyőt kell használni.

Itt van egy nagyszerű bemutató a képernyő megfelelő használatáról:

A képernyő vagy a GNU képernyő egy terminál multiplexer. Más szavakkal, ez azt jelenti, hogy elindíthat egy képernyő -munkamenetet, majd megnyithat tetszőleges számú ablakot (virtuális terminált) az adott munkameneten belül. A képernyőn futó folyamatok akkor is futnak, ha az ablakuk nem látható, még akkor sem, ha lekapcsolódik.

Automatizálás a rendszerindításhoz

A másik módszer az indítófájl szerkesztése az /etc/rc.local mappában, ehhez nano -t kell használni.

sudo nano /etc/rc.local

A fájl szerkesztésével a szkript rendszerindításkor fut. Ez azt jelenti, hogy a PI bekapcsolásakor mindig futni fog, így a szkripteim 90% -át más PI -ken is futtatom.

Ha az rc.local -t használta, akkor futtassa az alábbi parancsot, hogy ellenőrizze, mi fut jelenleg a PI -n. Ez hasznos a későbbi hibaelhárításhoz, hogy lássa, működik -e egyáltalán a szkript vagy sem:

ps -aef | grep python

6. lépés: Kész

Nos … Köszönöm, ha még mindig itt van, és elérte ezt a pontot!

Bocsánat, hogy elég hosszú volt, ez volt az első tanulságos, és nem voltam biztos benne, hogy mit írjak le.

Amint az elején említettem, ennek az utasításnak számos különböző alkalmazása van, amelyek hő segítségével intelligens dugót indítanak el! a ház/lakás/lakás/garázs/fészer bármelyik helyiségét lehűtheti. Az IFTTT-t akár úgy is módosíthatja, hogy bármilyen intelligens eszközt elindítson, amely IFTTT-n keresztül vezérelhető, nem csak TP-link kasa eszközöknek kell lennie.

Szeretném hallani, ha kipróbálta ezt az oktatóanyagot, vagy ha érdekesnek találta, kérjük, hagyjon megjegyzést alább!

Ha bármilyen kérdése van, feltétlenül hagyja alább, és megpróbálok válaszolni rájuk!

Érzékelők versenye
Érzékelők versenye
Érzékelők versenye
Érzékelők versenye

Második hely az érzékelők versenyében

Ajánlott: