Turinys:

Šią vasarą palaikykite kūdikį vėsų - kvailų gerbėjų valdymas išmaniais dalykais!: 6 žingsniai (su nuotraukomis)
Šią vasarą palaikykite kūdikį vėsų - kvailų gerbėjų valdymas išmaniais dalykais!: 6 žingsniai (su nuotraukomis)

Video: Šią vasarą palaikykite kūdikį vėsų - kvailų gerbėjų valdymas išmaniais dalykais!: 6 žingsniai (su nuotraukomis)

Video: Šią vasarą palaikykite kūdikį vėsų - kvailų gerbėjų valdymas išmaniais dalykais!: 6 žingsniai (su nuotraukomis)
Video: MANE UŽPUOLĖ PIKTAS ŠUO |VLOG #3 2024, Liepa
Anonim
Šią vasarą palaikykite kūdikį vėsų - kontroliuokite kvailus gerbėjus protingais dalykais!
Šią vasarą palaikykite kūdikį vėsų - kontroliuokite kvailus gerbėjus protingais dalykais!
Šią vasarą palaikykite kūdikį vėsų - kontroliuokite kvailus gerbėjus protingais dalykais!
Šią vasarą palaikykite kūdikį vėsų - kontroliuokite kvailus gerbėjus protingais dalykais!

Prieš dvi savaites, kai rašiau tai, tapau neįtikėtino berniuko tėčiu!

Keičiantis sezonams, ilgėjant dienoms ir šylant temperatūrai, pagalvojau, kad būtų gerai, jei darželyje būtų koks nors monitorius, kuris patikrintų, kaip ten karšta!

Bėgant metams nesidomėjau daug python, bet norėjau į jį sugrįžti nuo pirmojo universiteto kurso beveik prieš 5 metus! Dėl šios priežasties maniau, kad geriau būtų dokumentuoti tai, ką padariau, padėti vėliau, taip pat padėti visiems kitiems, norintiems daryti tą patį!

Naudodami Raspberry pi, Enviro pHAT ir išmanųjį TP-link kasa kištuką, galite valdyti kištukus naudodami IFTTT sistemą! tai padaryti tikrai paprasta ir jūs netgi galite modifikuoti šią apžvalgą, kad galėtumėte ką nors valdyti naudodami skirtingus jutiklius ir skirtingus įrenginius! Tikimės, kad tai jums naudinga. Jei jums patinka tai pamokoma, nepamirškite balsuoti už mano pateikimą jutiklių konkurse!: D (atsiprašau už klausimą), tai darau pirmą kartą ir norėčiau turėti galimybę laimėti ką nors visą tą laiką

** REDAGUOTI ** Per ateinančias kelias dienas ketinu perkelti šiuos duomenis į „Grafana“lentą, jei manote, kad tai būtų gerai, praneškite!: D

Eikime tiesiai į tai…

Prekės

  1. Bet koks „Raspberry pi“tiks, bet aš pasirinkau „Zero W“, nes tai, ką turėjau įteikti, taip pat turi mažiausią formos koeficientą, kai „WiFi“įjungtas pagal numatytuosius nustatymus! - Aviečių PI Zero w
  2. SD kortelė, kiekvienas turi skirtingas nuostatas, bet aš naudoju vieną iš jų! - „Micro-SD“kortelė
  3. Jei įstrigote, čia yra oficiali palaikoma SD kortelių dokumentacija -oficialiai palaikomos SD kortelės
  4. Jumperiniai laidai (paaiškinsime vėliau) - Jumper laidai
  5. Enviro pHAT visiems šlovingiems jutikliams! - Envrio-pHAT
  6. Išmanusis kištukas, aš naudojau „TP-Link“, nes jums nereikia jokių įmantrių šakotuvų, kad jis veiktų dėžutėje! - Išmanusis kištukas!
  7. Kvailas ventiliatorius, kurį galite valdyti, galite naudoti bet kurį ventiliatorių, aš ką tik radau ventiliatorių „Amazon“, tačiau bet koks sieninio lizdo ventiliatorius veiks gerai - kvailas ventiliatorius
  8. Lituoklis, bet jei nenorite naudoti lituoklio, galite spustelėti PI ir pHAT antraštes-GPIO-plaktuko antgalis

Kad ryšys tarp „TP-links kasa“ir „IFTTT“veiktų, prieš pradėdami šią instrukciją, turite turėti TP-link kasa ir IFTTT paskyrą. Kai gausite išmanųjį kištuką „TP-link“, su išmaniuoju kištuku pateiktos instrukcijos padės jums nustatyti sąrankos procesą, įskaitant kištuko pavadinimą ir jo pagrindines funkcijas

Kai turėsite visą pirkinių sąrašą, laikas viską surinkti!

1 žingsnis: „Raspberry Pi“nustatymas

Įsigykite naujausią ir didžiausią „Raspbian“vaizdą, paprasta versija veiks gerai, jei ne geriau nulio w! -

Įrašykite šį vaizdą į SD kortelę, tam jums reikės skaitytuvo ir vaizdo įrašymo įrenginio, aš naudoju etcher -

„Wifi“sąranka (neprivaloma) Jei jūsų PI turi įmontuotą WIFI, kodėl gi nenustatius jo dabar, kad vėliau sutaupytumėte daug netvarkos dėl konsolių!

Kai jūsų pi bus atvaizduotas, diskas buvo išstumtas. Atjunkite ir prijunkite SD kortelę, kad jūsų įrenginys vėl ją aptiktų. Turėtų pasirodyti įkrovos skaidinys.

Sukurkite tuščią failą, pavadintą wpa_supplicant.conf, savo įkrovos skaidinyje, čia įdėkite žemiau esantį failą:

tinklas = {

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

SSH įgalinimas pasirinktame PI (neprivaloma)

Pagal numatytuosius nustatymus švariame „Raspbian“vaizde bus išjungtas ssh. Jums reikės paleisti sistemą, prijungti klaviatūrą ir ekraną prie „Pi“, tada įjungti ssh. Šis veiksmas įgalins ssh pirmą kartą paleidžiant. Įkrovos skaidinyje sukurkite naują failą, pavadintą ssh. Tuščias failas būtent tokiu pavadinimu.

Atlikę du pasirinktinius veiksmus, jūsų PI automatiškai prisijungs prie jūsų WIFI ir pagal numatytuosius nustatymus įjungs SSH.

Nusifotografavę ir sukonfigūravę „micro-SD“kortelę, galite ją įdėti į savo PI arba pasirinkimą ir įjungti!

Atnaujinę savo PIO, kai paleidote savo PI, savo belaidžio maršrutizatoriaus nustatymuose galite rasti savo IP adresą. Dauguma maršrutizatorių skiriasi, todėl, deja, būtų sunku parašyti vadovą!

Kai turėsite savo PI IP, prisijunkite per SSH ir prisijunkite atlikdami šiuos veiksmus:

Vartotojo vardas: pi

Slaptažodis: avietė

Kai turėsite aktyvią SSH sesiją su savo PI, norėsite ją atnaujinti, tiesiog paleiskite žemiau esantį atitinkamą Y arba N, kol ją atnaujinsite:

sudo apt-get atnaujinimas

sudo apt-get atnaujinimas

visada gera iš naujo paleisti PI, kai buvo įdiegti nauji naujinimai, kad įsitikintumėte, jog jis vėl veikia su naujausiais atnaujinimais, tai galima pasiekti naudojant

sudo perkrovimas -n

Dabar PI paruoštas, laikas pereiti prie kito žingsnio!

2 veiksmas: nustatykite „Enviro PHAT“

„Enviro PHAT“nustatymas
„Enviro PHAT“nustatymas
„Enviro PHAT“nustatymas
„Enviro PHAT“nustatymas

„Enviro“pHAT prijungimas

Atnaujinę savo „pi“, galite prijungti „Enviro pHAT“prie pasirinkto PI!

*** Norėdami įsitikinti, kad nepažeidžiate savo PI ar pHAT, pirmiausia jį išjunkite ***

Čia aš naudoju trumpiklius, nes jūs galite gauti šiluminį praplovimą, kai procesorius įkaista pagal „Enviro“pHAT. Ši papildoma šiluma gali pakeisti temperatūros rodmenis, kuriuos gausite vėliau. Dėl šios priežasties aš naudoju 5 trumpiklius ant žemiau esančių kaiščių:

  • 3 kaištis - GPIO2 (SDA I2C)
  • 5 kaištis - GPIO3 (SCL I2C)
  • 7 kaištis - GPIO4
  • 6 kaištis - žemė
  • Kištukas 4 - 5V

Patikrinkite prijungimo schemą šio veiksmo viršuje, kad gautumėte vizualinę nuorodą arba žemiau esančią nuorodą:

pinout.xyz/pinout/enviro_phat

(atsiprašau už nekokybišką dažymą)

Prijungdami savo pHAT, įsitikinkite, kad jis nustatytas teisingai, kitaip galite jį sugadinti !!! Norėdami tai padaryti, turėjau savo sąranką, todėl ANALOG IN antraštės nukreiptos į SD kortelės lizdą, vėliau tai buvo apversta mano nuotraukose, kad ji patogiai tilptų į mano „nešiklį“.

Priklausomybių diegimas

Įjunkite savo PI atsarginę kopiją ir vėl įjunkite SSH

Grįžę į savo PI, atlikite šiuos veiksmus, kad įdiegtumėte reikiamus „Enviro pHAT“paketus ir programinę įrangą:

garbanoti https://get.pimoroni.com/envirophat | mušti

Jei reikia, būtinai paspauskite Y arba N.

Kai diegimas bus baigtas, būtinai iš naujo paleiskite PI …

sudo perkrovimas -n

PHAT testavimas

Norėdami įsitikinti, kad jūsų pHAT prijungtas teisingai, galite pereiti į „python“modulį ir paleisti kelias komandas, grįždami į savo PI ir įvesdami „python“, kai į „python“modulį įveskite toliau nurodytą komandą:

nuo aplinkos importo oro

spausdinti (weather.temerpature ())

Tai turėtų parodyti žemiau pateiktą rodmenį:

>> iš aplinkos importo oro

>> spausdinti (weather.temperature ()) 24.0806166987

Problemų sprendimas

Jei gausite kažką panašaus į toliau pateiktą klaidą:

Atsekimas (paskutinis paskutinis skambutis): failas „“, 1 eilutė, faile „/usr/lib/python2.7/dist-packages/envirophat/bmp280.py“, 134 eilutė, temperatūros self.update () faile /usr/lib/python2.7/dist-packages/envirophat/bmp280.py ", 169 eilutė, atnaujinama, jei self._read_byte (REGISTER_CHIPID) == 0x58: # patikrinti jutiklio ID 0x58 = BMP280 failas"/usr/lib/ python2.7/dist-package/envirophat/bmp280.py ", 116 eilutė, _read_byte grąžinti self.i2c_bus.read_byte_data (self.addr, register) IOError: [121 klaida] Nuotolinio įvesties/išvesties klaida

Tada galite paleisti:

sudo i2cdetect -y 1

Tai atliks jūsų jungčių/laidų diagnostinį patikrinimą ir ieškosite kažko panašaus:

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

Jei ne, tuomet turėsite grįžti ir dar kartą patikrinti laidus, patikrinkite prijungimo schemą ir bandykite dar kartą!

Įdiegus scenarijų pi-baby-cooler.py

Jei viskas gerai ir jums pavyko nuskaityti temperatūrą, galime tęsti ir įdiegti „baby-cooler.py“paketą!

Dėl to, kaip instrukcijos tvarko nuorodas, aukščiau esančioje veiksmų antraštėje pridėjau.py scenarijų … Norėdami nukopijuoti tai į savo PI, rekomenduoju naudoti kažką panašaus į „WinSCP“:

winscp.net/eng/download.php

„WinSCP“yra populiarus „Microsoft Windows“SFTP ir FTP klientas! Nukopijuokite failą iš vietinio kompiuterio į nuotolinius serverius naudodami FTP, FTPS, SCP, SFTP, WebDAV arba S3 failų perdavimo protokolus.

„WinSCP“paprasta naudoti, tiesiog prisijunkite prie savo PI naudodami savo PI IP adresą, tada nuvilkite.py failą ten, kur norite jį paleisti, tai yra iš /home /pi.

Dabar.py scenarijus yra jūsų PI, atėjo laikas pereiti prie IFTTT paskyros / ryšių nustatymo

3 veiksmas: IFTTT paskyros/ryšio nustatymas

IFTTT paskyros/ryšio nustatymas
IFTTT paskyros/ryšio nustatymas
IFTTT paskyros/ryšio nustatymas
IFTTT paskyros/ryšio nustatymas
IFTTT paskyros/ryšio nustatymas
IFTTT paskyros/ryšio nustatymas

Toliau apžvelgsime, kaip gauti IFTTT prieigos raktą, kuris bus naudojamas skambinant karšto / šalto scenarijaus funkcijai, kad prisijungtumėte prie „kasa“kištuko ir įjungtumėte / išjungtumėte ventiliatorių.

„Webhooks“kūrimas

Eikite į https://ifttt.com/ ir sukurkite paskyrą, jei jos dar neturite.

Prisijungę paieškos juostoje ieškokite: TP-link kasa

Įkėlę spustelėkite „Paslaugos“, tada „TP-link kasa“. Tada turėsite prijungti savo „kasa“paskyrą prie savo IFTTT paskyros, prisijungti prie „kasa“paskyros per IFTTT, kad užmegztumėte ryšį.

Susieję paskyrą, spustelėkite „Mano programėlės“, tada naują programėlę, tada spustelėkite „+tai“ir ieškokite žiniatinklio kabliukų.

Spustelėkite „Gauti žiniatinklio užklausą“, įvesdami įvykio pavadinimo tipą „hot“(tai gali būti bet kas, ko norite, bet vėliau turėsite tai atnaujinti naudodami pi-baby-coller.py scenarijų, kitaip tai neveiks, aš naudoju „hot“įjunkite ventiliatorių ir atvėsinkite, kad išjungtumėte ventiliatorių. Tada spustelėkite sukurti trigerį.

Toliau turime susieti naują aktyviklį su „Kasa“paskyra, spustelėti „+tai“ir ieškoti „kasa“, spustelėti „TP-link kasa“, tada-„įjungti“, po to pasirinkite norimą įjungti įrenginį, tada spustelėkite sukurti veiksmas. Peržiūrėkite veiksmą ir spustelėkite „Baigti“, jei teisingai.

**********

Prisiminkite, jei pasirinkote kitą įvykio pavadinimą, išskyrus „karštą“ir „šaltą“, vėliau turėsite tai pažymėti ir atnaujinti scenarijų! Priešingu atveju.py scenarijus neveiks

**********

Sukūrę pirmąjį žiniatinklio kabliuką, pakartokite „šalto“procesą, tačiau šį kartą pasirenkate išjungti, o ne įjungti, kai pasirenkate +tą veiksmą.

Kai jūsų „mano programėlių“paskyros skiltyje turėsime du įvykių žiniatinklio užraktus, spustelėkite paslaugas ir ieškokite žiniatinklio užkalčių, tada spustelėkite tai. Čia pamatysite dokumentacijos mygtuką (viršuje dešinėje), spustelėkite jį. Čia rasite IFTTT raktą. nors čia užsirašykite savo raktą (jums jo prireiks vėliau), aš savo nuotraukoje suredagavau, kitaip bet kas galėtų įjungti arba išjungti mano išmaniuosius kištukus.

Tinklo kabliukų testavimas

Dabar sukūrėme du žiniatinklio kabliukus, kurie yra prijungti prie mūsų „Kasa“paskyros, ir galime patikrinti, ar jie veikia, ar ne!

Savo PI galite įvesti:

curl -X POST

Ten, kur parašyta „karšta“, turite pridėti įvykio pavadinimą, jei palikote jį kaip „karštą“, palikite tai ramybėje. Ten, kur sakoma /jūs … turite tai pakeisti savo IFTTT žetono raktu. Paspauskite „Enter“ir turėtumėte išgirsti išmaniųjų kištukų relės spragtelėjimą, įjungiant kištuką. Jei negirdėjote, galite patikrinti „Kasa“programą ir patikrinti kištukų būseną.

Dabar mes turime įdiegtas „Enviro pHAT“priklausomybes ir dabar turime IFTTT sąranką, laikas baigti modifikuoti kodą.

4 veiksmas: scenarijaus redagavimas

Scenarijaus redagavimas
Scenarijaus redagavimas

Įvykio pavadinimas ir IFTTT TOKENS Grįžkite į savo pi, perkelkite į savo pi-baby-cooler.py scenarijaus vietą, man jis yra /home /pi (mano namų aplankas) ir redaguokite failą naudodami nano:

nano pi-baby-cooler.py

Ieškiklyje, kur rašoma def turn_off ()

def turn_off ():

# Nustatykite trigerį - pvz. „šaltas“- ir IFTTT „Webhook“žetonas žemiau. TRIGGER_WORD = "cold" TOKEN = "YOUR IFTTT TOKEN GOES HERE" request.post ("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format (trigger_word = TRIGGER_WORD, token = TOKEN)) print ("Ventiliatorius išjungtas!"):

Tai funkcija išjungti ventiliatorių. Tai daroma siunčiant interneto užraktą į IFTTT, kuris išjungia „tplink HS100“. Jei savo IFTTT paskyros veikimo režimą išlaikėte tokį patį kaip „šaltą“, galite tai palikti ir tiesiog pakeisti prieigos raktą, kurį gavote iš „webhooks“dokumentacijos. Jei pasirinkote kitą įvykio pavadinimą, pakeiskite šį žodį čia.

Įklijavę IFTTT prieigos raktą, eikite į kitą skyrių, kuriame sakoma def turn_on ()

def turn_on ():# Nustatykite trigerį - pvz. „karšta“- ir IFTTT „Webhook“žetonas žemiau. TRIGGER_WORD = "hot" TOKEN = "YOUR IFTTT TOKEN GOES HERE" request.post ("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format (trigger_word = TRIGGER_WORD, token = TOKEN)) print ("Ventiliatorius įjungtas!")

Ši funkcija yra atvirkštinė, ji įjungia išmanųjį kištuką TP-link!

Jei savo IFTTT paskyros veikimo režimą išlaikėte tokį patį kaip „karštą“, galite tai palikti ir tiesiog pakeisti prieigos raktą, kurį gavote iš „webhooks“dokumentacijos. Jei pasirinkote kitą įvykio pavadinimą, pakeiskite šį žodį čia.

Visa kita jau yra užkoduota, todėl jums nereikės keisti kodo, išskyrus TRIGGER_WORD, TOKEN, ir šiek tiek pakoreguoti kitą temperatūrą!

Temperatūrų keitimas

Toliau raskite, kur parašyta # Vietiniai kintamieji.

pabandykite: # Vietiniai kintamieji. būsena = 0 # Nustato žemo jungiklio būseną = 20 # Maža temperatūros lygio reikšmė (Celsijaus). aukštas = 24 # Aukšta temperatūros lygio (Celsijaus) vertė. laikotarpis = 120 # Delsimas, sekundėmis, tarp skambučių.

Būsenos kintamasis yra tai, kaip pi žino, ar kištukas įjungtas, ar ne, jis bus atnaujintas vėliau, jei bus per karšta (24+*c, tada būsena vėliau bus pakeista į 1), tai taip pat suaktyvins „webhook“ir pasuks išmanusis kištukas įjungtas!

Mažas kintamasis yra tai, kaip aš noriu, kad kambarys įgautų prieš išjungiant kištuką. Jei norite, kad kambarys būtų šiltesnis, tiesiog pakeiskite jį į didesnę vertę. Jei norite, kad būtų vėsiau, sumažinkite vertę.

Didelis kintamasis yra maksimali temperatūra, kurią noriu, kad patalpa pakiltų, kol aš nenoriu, kad ventiliatorius įsijungtų ir pradėtų vėsinti kambarį. Jei norite, kad ventiliatorius įsijungtų anksčiau, tiesiog sumažinkite vertę arba, jei norite, kad jis būtų šiltesnis, tada padidinkite vertę.

Laikotarpio kintamasis yra trukmė sekundėmis tarp temperatūros patikrinimų. Jei norite, kad „pi“scenarijus būtų tikrinamas rečiau, tada didesnis skaičius, jei norite sutrumpinti laiką, sumažinkite skaičių.

Kai atliksite pakeitimus, išsaugokite ir išeikite iš „nano“

CTRL + x

5 veiksmas: scenarijaus naudojimas

Naudojant scenarijų
Naudojant scenarijų

Vykdomas scenarijus vietoje

Yra keli būdai, kaip paleisti šį scenarijų, galite prisijungti per SSH ir įvesti:

sudo python /pi-baby-cooler.py

Šis scenarijus bus paleistas pagal pareikalavimą, tai veiks tik tol, kol PI bus aktyvus SSH seansas. Kitas būdas yra naudoti ekraną, manau, kad ekranas neįdiegtas pagal nutylėjimą, todėl teks naudoti „sudo apt install“ekraną.

Čia yra puiki pamoka, kaip tinkamai naudoti ekraną:

Ekranas arba GNU ekranas yra terminalinis multiplekseris. Kitaip tariant, tai reiškia, kad galite pradėti ekrano sesiją ir tada atidaryti bet kokį langų (virtualių terminalų) skaičių tos sesijos viduje. Procesai, vykdomi ekrane, ir toliau bus vykdomi, kai jų langas nebus matomas, net jei būsite atjungtas.

Automatizavimas paleisti paleidžiant

Kitas būdas yra redaguoti įkrovos failą /etc/rc.local, kad tai atliktumėte naudodami nano.

sudo nano /etc/rc.local

Redaguojant šį failą, scenarijus bus paleistas paleidžiant. tai reiškia, kad jis visada veiks, kai įjungiamas PI, taip 90% savo scenarijų paleidžiu kituose PI.

Jei naudojote „rc.local“, galite paleisti žemiau esančią komandą, kad patikrintumėte, kas šiuo metu veikia PI. Tai patogu vėliau pašalinti triktis, kad pamatytumėte, ar scenarijus apskritai veikia, ar ne:

ps -aef | grep python

6 žingsnis: Baigta

Na … Ačiū, jei vis dar esate čia ir pasiekėte šį tašką!

Atsiprašau, kad tai buvo gana ilgai, tai buvo mano pirmasis pamokomas dalykas ir nežinojau, ką parašyti.

Kaip minėjau pradžioje, ši instrukcija turi daugybę skirtingų programų, naudojančių šilumą, kad suaktyvintų išmanųjį kištuką! galite atvėsinti bet kurį namo/buto/buto/garažo/pašiūrės kambarį. Jūs netgi galite modifikuoti IFTTT, kad būtų suaktyvintas bet koks išmanusis įrenginys, kurį galima valdyti naudojant IFTTT, tai nebūtinai turi būti tik TP-link kasa įrenginiai.

Norėčiau išgirsti, ar išbandėte šias instrukcijas ar net jei jums tai pasirodė įdomu, palikite man komentarą žemiau!

Jei turite klausimų, būtinai palikite juos žemiau ir aš stengiuosi į juos atsakyti!

Jutiklių konkursas
Jutiklių konkursas
Jutiklių konkursas
Jutiklių konkursas

Antroji vieta jutiklių konkurse

Rekomenduojamas: