Kazalo:

Fanair: vremenska postaja za vašo sobo: 6 korakov (s slikami)
Fanair: vremenska postaja za vašo sobo: 6 korakov (s slikami)

Video: Fanair: vremenska postaja za vašo sobo: 6 korakov (s slikami)

Video: Fanair: vremenska postaja za vašo sobo: 6 korakov (s slikami)
Video: Часть 6 - Аудиокнига «Эмма» Джейн Остин (Том 3: Главы 01–07) 2024, Julij
Anonim
Fanair: vremenska postaja za vašo sobo
Fanair: vremenska postaja za vašo sobo

Obstaja nešteto načinov, kako ugotoviti trenutno vreme, potem pa poznate samo vreme zunaj. Kaj pa, če želite vedeti vreme v vaši hiši, v določeni sobi? To poskušam rešiti s tem projektom.

Fanair uporablja več senzorjev za zaznavanje:

  • temperaturo
  • vlažnost
  • svetloba
  • določeni plini
  • zračni tlak

Je zelo kompakten in uporablja Raspberry Pi 3 B za pridobivanje vrednosti, shranjevanje v bazo podatkov MySQL in nato preprosto dostopnost na spletnem mestu. V kodo in spletno mesto je vključena možnost pridobivanja dejanskih vremenskih podatkov za vašo lokacijo, tako da lahko spletno stran uporabite tudi za preverjanje zunanjega vremena.

1. korak: Pridobite vse potrebne predmete

Pridobite vse potrebne predmete
Pridobite vse potrebne predmete

Najprej boste potrebovali osnovno elektroniko, kot so žice / mostični kabli. Če nameravate vse skupaj spajkati kot stalen projekt, potem boste očitno potrebovali tudi spajkalnik, spajkalnik in za lastno udobje tiskano vezje, na katerega boste vse spajkali.

Za natančnejše postavke sem naredil ta kosovni material.

  • Malina Pi 3 B
  • MPC3008-8-kanalni 10-bitni ADC
  • AM2301 Senzor temperature in vlažnosti termometra
  • WR Rademacher WR-tyoe 930-1 PCB
  • ABS ohišje za izdelavo prototipov (črno)
  • LDR
  • Senzor za plin MQ135
  • 2x tranzistor Darlington BC517 Darlington
  • RGB LED
  • Paket uporov
  • Zvočni signal
  • Žice
  • Barometer BMP280
  • Tihi ventilator USB (5V)

Vse skupaj bi moralo stati približno 110 EUR. Upoštevajte, da je skupna cena približna. Tudi moj projekt ima LCD zaslon na fotografiji, vendar ni povezan, ker v mojem primeru ni bilo dovolj prostora, zato ni vključen v navodila.

2. korak: Pripravite svoj Raspberry Pi

Prenesite svoj Raspian Jessie z operacijskim sistemom Pixel z uradnega spletnega mesta Raspberry Pi in ga po prenosu razpakirajte. Dobili boste slikovno datoteko. Če ga želite dobiti na Pi, ga morate zapisati na kartico SD z uporabo Win32 Disk Imager. Ko je nameščen, izberite slikovno datoteko in pogon, na katerem je kartica SD. Nato pritisnite napiši in počakaj, da se konča.

Ko končate, kliknite na kartico SD v Raziskovalcu datotek in odprite datoteko z imenom 'cmdline.txt' pojdite na konec besedilne datoteke tik pred rootwaitom in napišite 'ip = 254.169.10.2' s presledki okoli. Ko ga shranite, z desno miškino tipko kliknite nekje v oknu in ustvarite novo datoteko z imenom 'ssh'. Upoštevajte, da ta datoteka nima priponke. Če se želite prepričati, da nima razširitve, kliknite »pogled« v raziskovalcu datotek in preverite »skrite datoteke«. Če ga preimenuje in izbriše razširitev, tako da se prebere samo 'ssh'.

Ko to storite, lahko kartico SD končno vstavite v Raspberry Pi. Prenesite odjemalca ssh (priporočam MobaXterm). In povežite s ssh z IP, ki ste ga nastavili prej '254.169.10.2'. Uporabniško ime je 'pi', geslo 'malina'. Če želite, lahko geslo spremenite tako, da v terminal vnesete ukaz 'sudo passwd' in sledite navodilom. Ker bomo za Fanair uporabili dober del kartice SD, razširite razpoložljivi pomnilnik tako, da vnesete 'sudo rapi-config', izberete 'Napredne možnosti' in nato 'Razširi datotečni sistem'. Če ste pozvani, znova zaženite.

Uporabljali bomo 1-žični, SPI in I2C vmesnik. Če jih želite uporabljati, jih morate najprej nastaviti!

3. korak: Povežite vse skupaj

Povežite vse skupaj
Povežite vse skupaj
Povežite vse skupaj
Povežite vse skupaj

Čas je, da naredite vezje! Prvič bi ga verjetno morali preizkusiti na krovu, če pa za to nimate časa, ga poskusite spajati skupaj.

Vezje, ki ga boste potrebovali, je videti kot zgoraj, za udobje je priložena tudi različica mize.

4. korak: Ustvarite svojo bazo podatkov

Za učinkovito shranjevanje vseh prejetih podatkov bomo uporabili bazo podatkov TSQL MySQL. Pred namestitvijo MySQL se prepričajmo, da je vse posodobljeno, tako da v terminal vnesemo nekaj ukazov:

  • 'sudo apt-get update'
  • 'sudo apt-get upgrade'
  • 'sudo apt-get dist-upgrade'

Sprejmite vsak poziv z vnosom 'y' in vnesite.

Če želite namestiti vrsto MySQL:

  • 'sudo apt-get install mysql-server'
  • 'sudo apt-get install mysql-client'

Ko ste pozvani, ustvarite korensko geslo po vaši izbiri.

Ko namestitev prijavite, uporabite:

'mysql -uroot -p'

In vnesite geslo.

Pridobite kodo Fanair iz My Github! Kliknite »Kloniraj ali prenesite« in nato »Prenesi ZIP«. Razpakirajte kodo v izbrano mapo. Poizvedba za ustvarjanje popolnoma delujoče baze podatkov je v mapi baze podatkov. Odprite datoteko, kopirajte kodo in jo prilepite v terminal z odprtim MySQL. Nato kliknite enter in zbirka podatkov je končana!

5. korak: Čas je za kodo

Če želite uporabiti vse senzorje, morate očitno zagnati program. Na srečo je koda (večinoma) že narejena in smo jo že prenesli, ko smo dobili poizvedbo SQL po zbirki podatkov.

Kot sem rekel, je treba nekaj stvari še spremeniti / dodati, da bo program deloval pravilno. Najprej program uporablja Darksky API za pridobivanje vremenskih podatkov na podlagi zemljepisne dolžine in zemljepisne širine. Če ga želite uporabiti, se morate prijaviti. Prvih 1000 klicev je brezplačnih, nato pa stane 0,0001 USD na klic. Slišal sem, da če ne plačate, se vam račun blokira. Če smo pošteni, je 0.0001 USD na klic precej poceni. Fanair vsako uro kliče najnovejše podatke, kar pomeni, da vas bo v enem letu, če tečete s polnim delovnim časom, stalo le 0,876 USD. 41 dni brezplačno dobite tudi, če Fanair deluje s polnim delovnim časom.

Ko se prijavite, poiščite ključ API. Poiščite zemljepisno dolžino in zemljepisno širino na Googlovih zemljevidih ali jo poskusite poiskati v Googlu. Ustvarite novo besedilno datoteko korenskega imenika Fanairja (s razredi, main.py …). Poimenujte datoteko 'key_location.txt'. Odprite besedilno datoteko in v prvo vrstico prilepite ključ API Darksky. V drugo vrstico prilepite svojo zemljepisno dolžino, v tretjo vrstico pa svojo zemljepisno širino (obe v decimalni obliki). Ko končate, shranite datoteko.

V istem imeniku ustvarite drugo besedilno datoteko z imenom 'database_dsn.txt'. V prvi vrstici mora biti napisano 'localhost'. Druga vrstica je "root". V tretjo vrstico vnesite geslo, ki ste ga vnesli za bazo podatkov prej, v četrto in zadnjo vrstico pa "fanair".

Z desno miškino tipko kliknite datoteko main.py in izberite uredi. 'Fanair = Fanair (5, 26, 17, 27, 22, 4, "AM2301", 1, 0, 0, 0, "key_location.txt", "database_dsn.txt")' je treba spremeniti. Če ste sledili sliki, je treba prvih 5 vrednosti spremeniti iz '5, 26, 17, 27, 22, 4' v '20, 21, 26, 19, 13 '. '/home/muhsin/Applications/Fanair' je treba spremeniti tudi v korensko pot Fanair (kjer je main.py). Pred "domačim" postavite poševnico, ne pa za "Fanair".

Zdaj je vse v redu, koda pa mora priti v Pi. Na srečo za nas obstaja protokol sftp. Če želite datoteke postaviti v Pi, uporabite odjemalca sftp, kot je FileZilla, ali če ste se odločili za uporabo MobaXterma, lahko datoteke enostavno naložite v vmesnik sftp levo od terminala.

Po mojih izkušnjah v Raspberry Pi ne dobim vedno pravega datuma in časa. Če želite zagotoviti pravilen datum in čas, predlagam, da sledite tem priročniku: datum in ura sinhronizacije Raspberry Pi.

In nenazadnje je treba namestiti nekaj knjižnic in aktivirati nekaj vmesnikov:

'sudo apt-get install build-bistven python-dev'

Adafruit DHT:

'pip3 install adafruit_python_dht'

1-žica:

  1. 'sudo raspi-config'
  2. "Možnosti vmesnika"
  3. "1 žica"
  4. Omogoči
  5. 'sudo nano /boot/config.txt'
  6. Dodajte to vrstico v datoteko: 'dtoverlay = w1-gpio'
  7. 'sudo reboot'

SPI:

  1. 'sudo raspi-config'
  2. "Možnosti vmesnika"
  3. "SPI"
  4. Omogoči
  5. 'sudo reboot'
  6. 'sudo nano /boot/config.txt'
  7. Poiščite 'dtparam = spi = on' in jo odstranite z komentarja, tako da odstranite oznako hashtag.
  8. 'sudo apt-get install python3-dev

Smbus:

  1. 'sudo raspi-config' '
  2. "Možnosti vmesnika"
  3. "I2C"
  4. Omogoči
  5. 'sudo reboot'
  6. 'sudo apt-get install -y python-smbus'
  7. 'sudo apt-get install -y i2c-tools'
  8. 'sudo nano /boot/config.txt'
  9. Poiščite dtparam = i2c_arm = on in ga razkomentirajte tako, da odstranite oznako hashtag.

bučko

pip3 namestite Flask

priključek mysql

'pip3 install -Iv mysql -connector == 2.1.4'

spidev

'pip3 install py-spidev'

temno

'pip3 install darkskylib'

6. korak: Preizkusite

Če vam je uspelo priti tako daleč, se dotaknite hrbta. Zdaj je storjeno vse, da Fanair deluje pravilno. Torej, da ga preizkusite, vnesite 'cd ""'. Lokacija datoteke je na primer "/home/pi", če ste le prilepili v domači imenik. Nato vnesite 'python3 main.py' in pustite počivati 15 minut, da bo imel po končanih podatkih v bazi podatkov. Po tem pritisnite 'ctrl + c' stop ustavite program in vnesite 'python3 Flask.py'. Če želite preveriti, ali vaše spletno mesto deluje, brskajte po naslovu IP vašega Pi -ja, ki ste ga napisali z ': 5000' (na primer: 169.254.10.1:5000 ').

Če želite, da se samodejno zažene po zagonu:

'sudo nano /etc/rc.local'

Na koncu datoteke ALI PRED izhodom 0:

'sudo python3 "/main.py" &'

'sudo python3 "/Flask.py" &'

Čestitamo, vaš skript bi se moral zagnati od zagona in končali ste! Če nameravate nadaljevati z izvajanjem projekta in še niste, predlagam, da vse skupaj spajkate, da se prepričate, da vse ostane na mestu. Čeprav, če se ne igrate, se veliko premikate.

Priporočena: