Turinys:

„RPi Weastherstation“su reaguojančia svetaine: 5 žingsniai
„RPi Weastherstation“su reaguojančia svetaine: 5 žingsniai

Video: „RPi Weastherstation“su reaguojančia svetaine: 5 žingsniai

Video: „RPi Weastherstation“su reaguojančia svetaine: 5 žingsniai
Video: Raspberry Pi - Что можно сделать? Готовые проекты. Есть ли смысл? Как научиться? 2024, Liepa
Anonim
„RPi Weastherstation“su reaguojančia svetaine
„RPi Weastherstation“su reaguojančia svetaine
„RPi Weastherstation“su reaguojančia svetaine
„RPi Weastherstation“su reaguojančia svetaine

Mokyklos projektui turėjome sukurti IoT įrenginį su svetaine, kad būtų galima gražiai vizualizuoti surinktą informaciją. Aš nusprendžiau sukurti oro stotį, maitinamą „Raspberry Pi 3“veikiančia kolba, skirtai reaguojančiai svetainei, „MySQL“(„MariaDB“) mano duomenų bazei ir „python“scenarijų, skirtą rinkti informaciją su visais mano jutikliais. Nuo pradžios iki pabaigos man prireikė maždaug 2 savaičių.

Buvome paraginti pasidalinti savo pažanga su likusia „pasidaryk pats“bendruomene, taigi štai!

1 žingsnis: dalių pasirinkimas, įrankiai ir medžiagos

Pirmiausia turėjau išsiaiškinti, kokie jutikliai yra būtini oro stotyje. Nusprendžiau, kad noriu išmatuoti visus šiuos duomenis:

  • Temperatūra
  • Oro slėgis
  • Drėgmė
  • Vėjo greitis
  • UV indeksas

Čia yra visi mano naudojami įrankiai, medžiagos ir dalys

Dalys:

  • DHT22/AM2302 temperatūros ir drėgmės rodmenims. (15 EUR)
  • Adafruit BMP280 skirtas barometriniam slėgiui ir temperatūrai. (12 EUR)
  • Adafruit SI1145, skirtas UV indeksui matuoti. (10 EUR)
  • Adafruit analoginis anemometras vėjo greičiui matuoti (50 EUR)
  • MCP3008, skirtas analoginiams signalams konvertuoti į skaitmeninius.
  • 10 kOhm rezistorius, kaip mano „AM2302“pritraukimas.
  • 9 V adapteris, skirtas „maitinti“anemometrą
  • 5V adapteris „Raspberry Pi“
  • Raspberry Pi 3 (turėtų pakakti bet kurio Pi)

Medžiagos:

Plastikinė talpykla, skirta viskam laikyti ir apsaugoti nuo lietaus

Įrankiai:

  • Lituoklis ir alavas
  • Multimetras
  • Silikonas
  • Kažkokia juosta

Taigi iš viso visi jutikliai man kainavo apie 85 eurus, o tai yra gana kieta, bet aš tikrai norėjau įtraukti tinkamą vėjo greičio matuoklį, todėl manau, kad tai verta.

Išsamesnį sąrašą su parduotuvėmis, kuriose galite nusipirkti visko, rasite žemiau esančiame pdf:)

2 žingsnis: Prijunkite aparatūrą

Mūsų techninės įrangos prijungimas
Mūsų techninės įrangos prijungimas
Mūsų techninės įrangos prijungimas
Mūsų techninės įrangos prijungimas

Žinoma, mes turėsime prijungti savo jutiklius prie mūsų Raspberry Pi. Viršuje galite pamatyti šlifavimo schemą, kurią galite sekti, kad tinkamai prijungtumėte viską.

Schemoje matote, kad 9V baterija naudojama kaip mūsų anemometro maitinimo šaltinis, tai geriausiai tinka tik bandymams, nes ji truks ne per ilgai, galite pakeisti 9 V bateriją bet kokiam 7-12 V maitinimo šaltiniui. pasirinkti.

Mūsų SI1145 ir BMP280 jutikliai bus valdomi naudojant I2C protokolą, nes tai lengviausia dirbti ir reikia mažiau laidų.

Schemoje esantis anemometras čia rodomas kaip LDR, nes jo laidai yra beveik identiški, kaip anemometras, ir aš negalėjau rasti tikro anemometro, kuriuo galėčiau uždėti savo šlifavimo schemą:)

3 žingsnis: visko prijungimas: „Pi“nustatymas

Prijungimas prie visko: „Pi“nustatymas
Prijungimas prie visko: „Pi“nustatymas

Visų pirma, turime įsitikinti, kad esame prisijungę prie interneto.

Norėdami tai padaryti terminale, galite eiti į savo wpa_supplicant failą vykdydami šią komandą: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Į failą galite pridėti:

tinklas = {ssid = "Your_Wifi_SSID" psk = "Your_Wifi_Password" key_mgmt = WPA-PSK

}

Taip pat galite pasirinkti, kad jūsų IP adresas būtų statinis, kad ateityje būtų lengviau pasiekti. Norėdami tai padaryti, turite eiti į failą dhcpcd.conf, vykdydami šią komandą: sudo nano /etc/dhcpcd.conf

Pridėkite tai prie failo:

sąsaja wlan0static ip_address = 192.168.0.100/24

Tada mes įsitikinsime, kad mūsų „Pi“jau įdiegti paketai yra visiškai atnaujinti:

sudo apt-get update && sudo apt-get upgrade

Tai gali užtrukti, todėl nesijaudinkite

Raspi konfigūracijoje turėsite įgalinti I2C ir SPI protokolą. Tai galite padaryti vykdydami šią komandą:

sudo raspi-config

Tada eikite į sąsajos parinktis ir įgalinkite tiek I2C, tiek SPI

Pirmiausia turite sukurti katalogą, į kurį norite įdėti savo projektą (mes jį pavadinsime „oro sąlygomis“):

cd ~ mkdir weatherstationcd oras

Tada mes sukūrėme savo „python3“virtualią aplinką:

python3 -m pip install-atnaujinti pip setuptools ratą virtualenvpython3 -m venv --system-site-paketai envsource env/bin/activepython -m pip install mysql-connector-python Kolbinė kolba-mysql mysql-jungtis-python passlib mysql-jungtis -python-rf

Tada turėsime įdiegti kitus paketus, kurių reikia, kad viskas tinkamai veiktų:

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Dabar mes sudarysime savo duomenų bazę:

Vis dar turime nustatyti savo duomenų bazę. Tai galite padaryti paleisdami kodą/sql failą, esantį aplanke „sql“, kaip šis:

sudo mariadb <sql/db_init.sql

„SQL“užklausa padarys mums reikalingas lenteles ir kelis vartotojus, kad mūsų duomenų bazė būtų šiek tiek saugesnė.

Taip pat kai kurie istorijos pavyzdžių duomenys bus įtraukti į mūsų duomenų bazę, kad mūsų svetainė viską rodytų tinkamai, kai dar nėra surinktų tikrų duomenų.

Norėdami įdiegti „Adafruit_GPIO“ir „MyPyDHT“, turėsite atlikti dar keletą veiksmų. Pirmiausia grįžkite į savo naudojimo aplanką ir tada:

git klonas https://github.com/adafruit/Adafruit_Python_GPIO.gitcd Adafruit_Python_GPIO sudo python3 setup.py install

cd..git klonas -rekursyvus https://github.com/freedom27/MyPyDHTsudo python3 setup.py install

4 žingsnis: programinė įranga / kodas

Programinė įranga / kodas
Programinė įranga / kodas
Programinė įranga / kodas
Programinė įranga / kodas
Programinė įranga / kodas
Programinė įranga / kodas

Turime sukurti oro sąlygų užnugarį, kurį sudaro:

- „Mariadb“duomenų bazė, skirta mano jutiklių rodmenims ir kai kuriems kitiems smulkiems dalykams saugoti.- Kolbos paslauga svetainei paleisti.- Kita paslauga, kurioje veikia „Python“failas, kuriame nuskaitomi visi jutikliai. Viršuje galite pamatyti mano labai paprastą duomenų bazės sąranką. Vartotojų lentelė yra nereikalingas, bet kadangi norėjau prisijungimo sistemos, nes aš (nors visi duomenys yra vienodi visiems vartotojams) nusprendžiau įtraukti į savo duomenų bazę.

Galite eiti į priekį ir klonuoti mano projekto kodą iš „Github“į savo projekto aplanką. Eikite į savo vartotojo aplanką ir paleiskite: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/

Tada eikite į „conf“aplanką oro sąlygomis ir visus aplanko failus.

Pakeiskite visus „USERNAME“įvykius į savo vartotojo vardą

Taip pat turėsite nukopijuoti abu.service failus į systemd ir išbandyti juos taip:

sudo cp conf/weatherstation-*. service/etc/systemd/system/sudo systemctl daemon-reloadsudo systemctl start weatherstation-flask.servicesudo systemctl start weatherstation-sensor.service

sudo systemctl būsenos oro sąlygos-*

Tada turime redaguoti „nginx“konfigūraciją.

sudo cp conf/nginx/etc/nginx/sites-available/weatherstationsudo rm/etc/nginx/sites-enabled/defaultsudo ln -s/etc/nginx/sites-available/weatherstation/etc/nginx/sites-enabled/weatherstationsudo systemctl {101} iš naujo paleiskite nginx.servicesudo systemctl būseną nginx.service

Jei viskas pavyko gerai, turėtumėte tai paleisti ir terminale atsispausdinti html:

wget -qO - vietinis šeimininkas

Viskas dabar turėtų veikti gerai. Galite naršyti savo „Raspberry Pi“IP adresą, kurį nustatėme pradžioje, ir būti pasveikinti prisijungimo ekrane.

5 žingsnis: gaubtas

Aptvaras
Aptvaras
Aptvaras
Aptvaras
Aptvaras
Aptvaras

Dabar, kai viskas veikia, turime viską į kažką įdėti.

Aš pasirinkau paprastą plastikinę dėžutę su permatomu dangteliu. Anemometras yra sumontuotas ant jo, taip pat antrinis mažas indas, kuriame yra DHT22 ir BMP280 jutikliai.

Šie jutikliai yra sumontuoti atskiro konteinerio viduje, nes jie turi būti lauke (be lietaus), tačiau aviečių pi nereikia.

Kaip matote, aš pridėjau šiek tiek silikono aplink kraštus, kad jis būtų atsparus vandeniui. Aš taip pat išgręžiau keletą skylių viršutiniame inde, kad gaučiau gryno oro.

Tikiuosi, kad jums patiko mano vadovas, kaip sukurti oro stotį, ji gali būti šiek tiek šiurkšti aplink kraštus, nes pirmą kartą rašau tokį vadovą, bet tikiuosi, kad jums vis dėlto patiko:)

Rekomenduojamas: