RPi Weatherstation sa responzivnom web lokacijom: 5 koraka
RPi Weatherstation sa responzivnom web lokacijom: 5 koraka
Anonim
RPi Weatherstation sa responzivnom web lokacijom
RPi Weatherstation sa responzivnom web lokacijom
RPi Weatherstation sa responzivnom web lokacijom
RPi Weatherstation sa responzivnom web lokacijom

Za školski projekat morali smo napraviti IoT uređaj sa web lokacijom za vizualizaciju prikupljenih informacija na lijep način. Odlučio sam napraviti vremensku stanicu koju pokreće Raspberry Pi 3 sa Flaskom za responzivno web mjesto, MySQL (MariaDB) za moju bazu podataka i python skriptu za prikupljanje informacija sa svim mojim senzorima. Trebalo mi je oko 2 sedmice od početka do kraja do završetka.

Ohrabreni smo da napravimo uputstva da svoj napredak podijelimo sa ostatkom DIY zajednice, pa evo ga!

Korak 1: Izbor dijelova, alati i materijali

Prvo sam trebao shvatiti koji su senzori neophodni za meteorološku stanicu. Odlučio sam da želim izmjeriti sve sljedeće podatke:

  • Temperature
  • Zračni pritisak
  • Vlažnost
  • Brzina vjetra
  • UV indeks

Ovdje su svi alati, materijali i dijelovi koje sam koristio

Dijelovi:

  • DHT22/AM2302 za očitanje temperature i vlage. (15 EUR)
  • Adafruit BMP280 za barometarski tlak i temperaturu. (12 EUR)
  • Adafruit SI1145 za mjerenje UV indeksa. (10 EUR)
  • Adafruit analogni anemometar za mjerenje brzine vjetra (50 EUR)
  • MCP3008 za pretvaranje analognih signala u digitalni.
  • 10kOhm otpornik kao pull-up za moj AM2302.
  • 9V adapter za "napajanje" anemometra
  • 5V adapter za Raspberry Pi
  • Raspberry Pi 3 (bilo koji Pi bi trebao biti dovoljan)

Materijali:

Plastična posuda za spremanje svega i zaštitu od kiše

Alati:

  • Lemilica i kositar
  • Multimetar
  • Silikon
  • Malo trake

Tako da su me svi senzori koštali oko 85 eura, što je prilično strmo, ali zaista sam htio uključiti odgovarajući mjerač brzine vjetra pa mislim da se isplati.

Detaljniji spisak prodavnica u kojima možete kupiti sve možete pronaći u PDF -u ispod:)

Korak 2: Povezivanje našeg hardvera

Povezivanje našeg hardvera
Povezivanje našeg hardvera
Povezivanje našeg hardvera
Povezivanje našeg hardvera

Naravno, morat ćemo spojiti naše senzore na naš Raspberry Pi. Gore možete vidjeti shemu fritzinga koju možete slijediti kako biste sve pravilno povezali.

Na shemi možete vidjeti da se 9V baterija koristi kao izvor napajanja za naš anemometar, ovo je najbolje koristiti samo za testiranje jer neće trajati predugo, možete zamijeniti 9V bateriju za bilo koji izvor napajanja od 7-12V koji izabrati.

Naši senzori SI1145 i BMP280 će se kontrolirati pomoću I2C protokola jer je s tim najlakše raditi i potrebno je manje žica.

Anemometar na shemi je ovdje prikazan kao LDR budući da ima približno identično ožičenje kao anemometar i nisam mogao pronaći pravi anemometar koji bih stavio na svoju shemu frcanja:)

Korak 3: Povezivanje svega: Postavljanje Pi

Povezivanje svega: Postavljanje Pi
Povezivanje svega: Postavljanje Pi

Prije svega, moramo biti sigurni da smo povezani s internetom.

Da biste to učinili u terminalu, možete otići do datoteke wpa_supplicant pokretanjem sljedeće naredbe: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

U datoteku možete dodati ovo:

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

}

Također možete izabrati da postavite svoju IP adresu na statičku radi lakšeg pristupa u budućnosti. Da biste to učinili, morate otići do datoteke dhcpcd.conf pokretanjem ove naredbe: sudo nano /etc/dhcpcd.conf

Dodajte ovo u datoteku:

sučelje wlan0static ip_address = 192.168.0.100/24

Zatim ćemo se pobrinuti da se paketi koji su već instalirani na našem Pi potpuno ažuriraju:

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

Ovo može potrajati, pa ne brinite

Morat ćete omogućiti protokol I2C i SPI unutar raspi konfiguracije. To možete učiniti pokretanjem ove naredbe:

sudo raspi-config

Zatim idite na opcije povezivanja i omogućavanje oboje, I2C i SPI

Prvo morate napraviti direktorij u koji želite staviti svoj projekt (nazvat ćemo ga 'weatherstation'):

cd ~ mkdir meteorološka stanicacd meteorološka stanica

Zatim smo postavili naše python3 virtualno okruženje:

python3 -m pip install --upgrade pip setuptools wheel virtualenvpython3 -m venv --system-site-packages envsource env/bin/enablepython -m pip install mysql-konektor-python bočica-mysql mysql-konektor-python passlib mysql-konektor -python-rf

Zatim ćemo morati instalirati neke druge pakete koji su potrebni da bi sve ispravno funkcioniralo:

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

Sada ćemo napraviti našu bazu podataka:

Još uvijek moramo postaviti bazu podataka. To možete učiniti pokretanjem datoteke code/sql koja se nalazi u mapi 'sql' na sljedeći način:

sudo mariadb <sql/db_init.sql

SQL upit će napraviti tablice koje su nam potrebne, a također će učiniti i nekoliko korisnika kako bi našu bazu podataka učinili sigurnijom.

Ovo će također staviti neke uzorke povijesnih podataka u našu bazu podataka kako bi bili sigurni da naša web stranica prikazuje sve ispravno kada još nema pravih podataka.

Da biste instalirali Adafruit_GPIO i MyPyDHT, morat ćete učiniti još neke stvari. Prvo se vratite u mapu za upotrebu, a zatim:

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

cd..git clone --recursive https://github.com/freedom27/MyPyDHTsudo python3 setup.py install

Korak 4: Softver / kôd

Softver / kôd
Softver / kôd
Softver / kôd
Softver / kôd
Softver / kôd
Softver / kôd

Moramo postaviti pozadinu za vremensku stanicu, koja uključuje:

- Baza podataka mariadb za spremanje očitanja senzora i nekih drugih sitnica- Usluga za čuvanje web stranica.- Još jedna usluga koja pokreće Python datoteku koja čita sve senzore. Gore možete vidjeti moju vrlo jednostavnu postavku baze podataka. Tablica korisnika je nepotrebno, ali budući da sam htjela sistem za prijavu jer sam (iako su svi podaci isti za sve korisnike) odlučila uključiti u svoju bazu podataka.

Možete nastaviti i klonirati kôd mog projekta iz Github -a u fasciklu vašeg projekta. Idite u svoju korisničku fasciklu i pokrenite: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/

Zatim idite do foldera conf na vremenskoj stanici i svih datoteka u mapi.

Promijenite sve pojave "USERNAME" u svoje korisničko ime

Također ćete morati kopirati obje.service datoteke u systemd i testirati ih na ovaj način:

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

sudo systemctl status weatherstation-*

Zatim moramo urediti nginx konfiguraciju.

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 ponovo pokrenite nginx.servicesudo systemctl status nginx.service

Ako je sve prošlo dobro, trebali biste moći pokrenuti ovo i ispisati html u terminalu:

wget -qO - localhost

Sve bi sada trebalo funkcionirati. Možete surfati do vaše IP adrese maline Pi koju smo postavili na početku i dočekati vas sa ekranom za prijavu.

Korak 5: Ograđivanje

The Enclosure
The Enclosure
The Enclosure
The Enclosure
The Enclosure
The Enclosure

Sada kada sve funkcionira, moramo cijelu stvar staviti u nešto.

Odabrao sam jednostavnu plastičnu kutiju s prozirnim poklopcem. Anemometar je postavljen na nju, a isto tako i sekundarni mali spremnik koji sadrži senzore DHT22 i BMP280.

Ovi senzori su postavljeni unutar zasebnog kontejnera jer moraju biti na otvorenom (bez kiše), ali malina pi ne mora biti.

Kao što vidite, dodao sam silikon po rubovima kako bih bio vodootporan. Također sam izbušio neke rupe u gornjoj posudi kako bih u nju ušao svježi zrak.

Nadam se da vam se svidio moj vodič o tome kako izgraditi vremensku stanicu, možda će biti malo grubo po rubovima jer prvi put pišem ovakav vodič, ali nadam se da vam se ipak svidio:)

Preporučuje se: