Turinys:

„Fanair“: jūsų kambario orų stotis: 6 žingsniai (su nuotraukomis)
„Fanair“: jūsų kambario orų stotis: 6 žingsniai (su nuotraukomis)

Video: „Fanair“: jūsų kambario orų stotis: 6 žingsniai (su nuotraukomis)

Video: „Fanair“: jūsų kambario orų stotis: 6 žingsniai (su nuotraukomis)
Video: Semira Said And Fanair 2024, Lapkritis
Anonim
„Fanair“: orų stotis jūsų kambariui
„Fanair“: orų stotis jūsų kambariui

Yra daugybė būdų sužinoti dabartinį orą, bet tada jūs žinote tik orą lauke. Ką daryti, jei norite sužinoti orą savo namuose, konkrečioje patalpoje? Tai aš bandau išspręsti šiuo projektu.

„Fanair“naudoja kelis jutiklius:

  • temperatūra
  • drėgmės
  • šviesa
  • tam tikros dujos
  • oro slėgis

Jis yra labai kompaktiškas ir naudoja „Raspberry Pi 3 B“, kad gautų vertes, išsaugotų jas „MySQL“duomenų bazėje ir padarytų jas lengvai pasiekiamas svetainėje. Į kodą ir svetainę įtraukta galimybė gauti faktinius jūsų vietovės orų duomenis, kad svetainę būtų galima naudoti ir išorės orui patikrinti.

1 žingsnis: Gaukite visus reikalingus elementus

Gaukite visus reikalingus daiktus
Gaukite visus reikalingus daiktus

Visų pirma jums reikės pagrindinės elektronikos, tokios kaip laidai / jungiamieji kabeliai. Jei planuojate viską lituoti kartu kaip nuolatinį projektą, akivaizdu, kad jums taip pat reikės lituoklio, lituoklio ir jūsų patogumui PCB, prie kurio lituosite viską.

Dėl konkretesnių elementų sukūriau šį medžiagų sąrašą.

  • Raspberry Pi 3 B
  • MPC3008-8 kanalų 10 bitų ADC
  • AM2301 termometro temperatūros ir drėgmės jutiklis
  • WR Rademacher WR-tyoe 930-1 PCB
  • ABS dėklas prototipų kūrimui (juodas)
  • LDR
  • MQ135 dujų jutiklis
  • 2x BC517 Darlingtono tranzistorius
  • RGB šviesos diodas
  • Rezistorių paketas
  • Garsinis signalas
  • Laidai
  • BMP280 barometras
  • Tylus USB ventiliatorius (5V)

Visa tai kartu turėtų kainuoti apie 110 eurų. Atminkite, kad bendra kaina yra apytikslė. Be to, mano projekte yra LCD ekranas nuotraukoje, tačiau jis nėra prijungtas, nes mano atveju nebuvo pakankamai vietos, todėl jis nėra įtrauktas į instrukciją.

2 žingsnis: paruoškite „Raspberry Pi“

Atsisiųskite „Raspian Jessie“su „Pixel“operacine sistema iš oficialios „Raspberry Pi“svetainės ir atsisiųskite ją. Gausite vaizdo failą. Norėdami jį gauti „Pi“, turėsite jį įrašyti į SD kortelę naudodami „Win32 Disk Imager“. Įdiegę pasirinkite vaizdo failą ir diską, kuriame yra SD kortelė. Tada paspauskite rašyti ir palaukite, kol baigsis.

Baigę spustelėkite „SD“kortelę „File Explorer“ir atidarykite failą, pavadintą „cmdline.txt“, eikite į teksto failo pabaigą prieš pat „rootwait“ir parašykite „ip = 254.169.10.2“, be abejo, tarpų. Išsaugoję jį dešiniuoju pelės mygtuku spustelėkite kažkur lango viduje ir sukurkite naują failą pavadinimu „ssh“. Atminkite, kad šis failas neturi failo plėtinio. Norėdami įsitikinti, kad jis neturi plėtinio, failų naršyklėje spustelėkite „peržiūrėti“ir pažymėkite „paslėpti failai“. Jei jis pervadina jį ir ištrina plėtinį, kad jis tiesiog perskaitytų „ssh“.

Kai tai bus padaryta, pagaliau galėsite įdėti SD kortelę į „Raspberry Pi“. Atsisiųskite ssh klientą (rekomenduoju „MobaXterm“). Ir prisijunkite naudodami ssh su IP, kurį anksčiau nustatėte „254.169.10.2“. Vartotojo vardas yra „pi“, slaptažodis - „avietė“. Jei norite, slaptažodį galite pakeisti įvesdami komandą „sudo passwd“terminale ir vykdydami instrukcijas. Kadangi „Fanair“ketiname naudoti didelę SD kortelės dalį, turėtumėte išplėsti turimą saugyklą įvesdami „sudo rapi-config“pasirinkdami „Advanced Options“, tada „Expand File System“. Jei būsite paraginti, paleiskite iš naujo.

Mes naudosime 1 laidų, SPI ir I2C sąsają. Norėdami juos naudoti, pirmiausia turite juos nustatyti!

3 žingsnis: sujunkite viską kartu

Sujunkite viską kartu
Sujunkite viską kartu
Sujunkite viską kartu
Sujunkite viską kartu

Atėjo laikas sukurti grandinę! Pirmą kartą tikriausiai turėtumėte tai išbandyti ant duonos lentos, bet jei neturite tam laiko, galite pabandyti jį lituoti kartu.

Jums reikalinga grandinė atrodo taip, kaip nurodyta aukščiau, patogumui taip pat pridedama duonos lentos versija.

4 žingsnis: sukurkite savo duomenų bazę

Norėdami efektyviai išsaugoti visus gautus duomenis, naudosime TSQL MySQL duomenų bazę. Prieš diegdami „MySQL“įsitikinkime, kad viskas yra atnaujinta, terminale įvesdami kelias komandas:

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

Priimkite kiekvieną raginimą įvesdami „y“ir įveskite.

Norėdami įdiegti „MySQL“tipą:

  • „sudo apt-get install mysql-server“
  • „sudo apt-get install mysql-client“

Kai būsite paraginti, sukurkite pasirinktą pagrindinį slaptažodį.

Baigę diegti prisijungimą naudodami:

„mysql -uroot -p“

Ir įveskite slaptažodį.

Gaukite „Fanair“kodą iš „My Github“! Spustelėkite „Klonuoti arba atsisiųsti“, tada - „Atsisiųsti ZIP“. Išpakuokite kodą pasirinktame aplanke. Užklausa sukurti visiškai veikiančią duomenų bazę yra duomenų bazės aplanke. Atidarykite failą, nukopijuokite kodą ir įklijuokite jį į terminalą atidarę „MySQL“. Tada spustelėkite įvesti ir duomenų bazė baigta!

5 žingsnis: laikas kodui

Norint naudoti visus jutiklius, akivaizdu, kad turite paleisti programą. Laimei, kodas jau yra padarytas (dažniausiai), ir mes jį jau atsisiuntėme gaudami duomenų bazės SQL užklausą.

Kaip sakiau, yra keletas dalykų, kuriuos dar reikia pakeisti / pridėti, kad programa tinkamai veiktų. Pirmiausia programa naudoja „Darksky“API, kad gautų orų duomenis pagal ilgumą ir platumą. Norėdami ja naudotis, turite užsiregistruoti. Pirmieji 1000 skambučių yra nemokami, o vėliau kainuoja 0.0001 USD už skambutį. Girdėjau, jei nemokate, jūsų sąskaita užblokuojama. Tiesą sakant, 0,0001 USD už skambutį yra gana pigus. „Fanair“kas valandą skambina naujausiems duomenims, o tai reiškia, kad per metus, jei vykdysite visą darbo dieną, tai jums kainuos tik 0,876 USD. Jūs taip pat gausite 41 dieną nemokamai, jei „Fanair“veiks visą darbo dieną.

Prisiregistravę ieškokite savo API rakto. Ieškokite savo vietovės ilgumos ir platumos „Google“žemėlapiuose arba pabandykite „Google“ją rasti. Sukurkite naują teksto failą „Fanair“šakniniame kataloge (su klasėmis, main.py …). Pavadinkite failą „key_location.txt“. Atidarykite teksto failą ir pirmoje eilutėje įklijuokite „Darksky“API raktą. Antroje eilutėje įklijuokite savo ilgumą, o trečioje - platumą (abu dešimtainiu formatu). Kai baigsite, išsaugokite failą.

Tame pačiame kataloge sukurkite kitą teksto failą, pavadintą „database_dsn.txt“. Pirmoje eilutėje turėtų būti parašyta „localhost“. Antroji eilutė yra „šaknis“. Trečioje eilutėje turite įvesti slaptažodį, kurį anksčiau sukūrėte duomenų bazei, o ketvirtoje ir paskutinėje eilutėje - „fanair“.

Dešiniuoju pelės mygtuku spustelėkite failą main.py ir pasirinkite redaguoti. Reikia pakeisti „fanair = Fanair“(5, 26, 17, 27, 22, 4, „AM2301“, 1, 0, 0, 0, „key_location.txt“, „database_dsn.txt“) “. Jei sekėte paveikslėlį, pirmosios 5 vertės turėtų būti pakeistos iš „5, 26, 17, 27, 22, 4“į „20, 21, 26, 19, 13“. „/home/muhsin/Applications/Fanair“taip pat turėtų būti pakeistas į „Fanair“šakninį kelią (kur yra main.py). Įsitikinkite, kad brūkšnys yra priešais „namus“, bet ne po „Fanair“.

Dabar visa tai puiku, tačiau kodą reikia įvesti į „Pi“. Mūsų laimei, sftp protokolas egzistuoja. Norėdami įdėti failus į „Pi“, naudokite sftp klientą, pvz., „FileZilla“, arba jei nusprendėte naudoti „MobaXterm“, galite lengvai įkelti failus į terminalo kairėje esančią sftp sąsają.

Mano patirtis rodo, kad „Raspberry Pi“ne visada gaunu tinkamą datą ir laiką. Kad įsitikintumėte, jog gausite tinkamą datos laiką, siūlau vadovautis šiuo vadovu: Raspberry Pi sinchronizavimo data ir laikas.

Ir galiausiai, reikia įdiegti kelias bibliotekas ir suaktyvinti kelias sąsajas:

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

Adafruit DHT:

„pip3 install adafruit_python_dht“

1 laidas:

  1. "sudo raspi-config"
  2. „Sąsajos parinktys“
  3. „1 viela“
  4. Įgalinti
  5. 'sudo nano /boot/config.txt'
  6. Įtraukite šią eilutę į failą: 'dtoverlay = w1-gpio'
  7. „sudo reboot“

SPI:

  1. "sudo raspi-config"
  2. „Sąsajos parinktys“
  3. „SPI“
  4. Įgalinti
  5. „sudo reboot“
  6. 'sudo nano /boot/config.txt'
  7. Ieškokite „dtparam = spi = on“ir pašalinkite komentarą pašalindami žymą.
  8. „sudo apt-get install python3-dev

Smbus:

  1. 'sudo raspi-config'
  2. „Sąsajos parinktys“
  3. „I2C“
  4. Įgalinti
  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. Ieškokite dtparam = i2c_arm = on ir pašalinkite komentarą pašalindami žymą.

kolba

pip3 įdiegti kolbą

mysql jungtis

pip3 įdiegti -Iv mysql -jungtis == 2.1.4

spidev

„pip3 install py-spidev“

tamsus dangus

„pip3 install darkskylib“

6 žingsnis: Išbandykite

Jei jums pavyko taip toli, palieskite save ant nugaros. Dabar viskas padaryta, kad „Fanair“veiktų tinkamai. Taigi, norėdami tai patikrinti, įveskite „cd“““. Failo vieta yra „/home/pi“, pavyzdžiui, jei ką tik įklijavote į namų katalogą. Tada įveskite „python3 main.py“ir leiskite jam pailsėti 15 minučių, kad duomenų bazėje būtų duomenys. Po to paspauskite „ctrl + c“, kad sustabdytumėte programą, ir įveskite „python3 Flask.py“. Norėdami pamatyti, ar jūsų svetainė veikia, turite naršyti savo „Pi“IP adresu, kurį po jo parašėte „: 5000“(pvz., 169.254.10.1:5000 ').

Kad jis būtų paleistas automatiškai po įkrovos:

'sudo nano /etc/rc.local'

Failo pabaigoje BET PRIEŠ išeinant iš 0:

"sudo python3" /main.py "&"

"sudo python3" /Flask.py "&"

Sveikiname, dabar jūsų scenarijus turėtų būti paleistas nuo paleidimo ir JŪS ATLIKTA! Jei planuojate tęsti projektą ir dar to nepadarėte, siūlau jums viską lituoti kartu, kad įsitikintumėte, jog viskas lieka vietoje. Nors, jei nežaidžiate, kad daug judėtumėte, duona taip pat veikia.

Rekomenduojamas: