Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-23 14:47
Za školski projekt morali smo izraditi IoT uređaj s web lokacijom za vizualizaciju prikupljenih informacija na lijep način. Odlučio sam napraviti vremensku stanicu koju pokreće Raspberry Pi 3 s Flaskom za responzivno web mjesto, MySQL (MariaDB) za moju bazu podataka i python skriptu za prikupljanje podataka sa svim mojim senzorima. Trebalo mi je oko 2 tjedna od početka do kraja do završetka.
Potaknuti smo da napravimo instrukcije za podijeliti svoj napredak s ostatkom DIY zajednice, pa evo ga!
Korak 1: Odabir dijelova, alati i materijali
Prvo sam trebao shvatiti koji su senzori bitni za meteorološku stanicu. Odlučio sam da želim izmjeriti sve sljedeće podatke:
- Temperatura
- Tlak zraka
- 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
- Neka traka
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 popis trgovina u kojima možete kupiti sve možete pronaći u pdf -u ispod:)
Korak 2: Povezivanje našeg hardvera
Naravno da ćemo morati 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, to 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 će se senzori SI1145 i BMP280 kontrolirati pomoću I2C protokola jer je s tim najlakše raditi i potrebno je manje žica.
Anemometar na shemi ovdje je 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
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 bi moglo potrajati, stoga 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 sučelja i omogućavanje oboje, I2C i SPI
Prvo morate napraviti direktorij u koji želite staviti svoj projekt (nazvat ćemo ga 'weatherstation'):
cd ~ mkdir weatherstationcd 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-connector-python flask-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 učiniti 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 prikupljenih 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
Moramo postaviti pozadinu za vremensku stanicu, koja uključuje:
- Mariadb baza podataka za pohranu mojih očitanja senzora i neke druge sitnice- Usluga u tikvici za pokretanje web stranice.- Druga 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 htio sustav za prijavu jer sam (iako su svi podaci isti za sve korisnike) odlučio uključiti u svoju bazu podataka.
Možete kloniti kôd mog projekta iz Github -a u mapu projekta. Idite u svoju korisničku mapu i pokrenite: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/
Zatim idite do mape conf na vremenskoj stanici i svih datoteka u mapi.
Promijenite sva pojavljivanja "USERNAME" u svoje korisničko ime
Također ćete morati kopirati obje.service datoteke u systemd i testirati ih ovako:
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 meteorološka stanica-*
Zatim moramo urediti konfiguraciju nginxa.
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 ponovno 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 - lokalni domaćin
Sve bi sada trebalo funkcionirati. Možete surfati do IP adrese vašeg malina Pi koju smo postavili na početku i dočekati vas s zaslonom za prijavu.
Korak 5: Ograđivanje
Sad kad 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.
Ti su senzori postavljeni unutar zasebnog spremnika jer moraju biti na otvorenom (bez kiše), ali pi pivo od maline ne mora biti.
Kao što vidite, dodao sam silikon oko rubova kako bi 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čeni:
NaTaLia meteorološka stanica: Arduino solarna meteorološka postaja učinila je pravi put: 8 koraka (sa slikama)
Vremenska postaja NaTaLia: Arduino meteorološka stanica na solarni pogon učinila je to na pravi način: Nakon godinu dana uspješnog rada na 2 različite lokacije, dijelim svoje planove projekta meteoroloških stanica na solarni pogon i objašnjavam kako se razvila u sustav koji zaista može opstati dugo vremena razdoblja iz solarne energije. Ako pratite
DIY meteorološka stanica i senzorska stanica WiFi: 7 koraka (sa slikama)
DIY meteorološka stanica i WiFi senzorska stanica: U ovom projektu ću vam pokazati kako stvoriti meteorološku stanicu zajedno sa stanicom sa WiFi senzorom. Senzorska stanica mjeri lokalne podatke o temperaturi i vlažnosti i šalje ih putem WiFi -a meteorološkoj postaji. Meteorološka stanica tada prikazuje t
IoT meteorološka stanica s RPi i ESP8266: 10 koraka
IoT meteorološka stanica s RPi i ESP8266: U prethodnim vodičima igrali smo se s NodeMCU -om, senzorima i učili kako hvatati i bilježiti podatke na ThingSpeak (platformi Internet of Things (IoT)) koja vam omogućuje prikupljanje i pohranjivanje podataka senzora u oblaku i razvoj IoT aplikacija): IOT
Meteorološka stanica ESP8266 koja prikazuje podatke na web stranici: 7 koraka
ESP8266 meteorološka stanica koja prikazuje podatke na web stranici: Napomena: Dijelovi ovog vodiča mogu biti dostupni u video formatu na mom YouTube kanalu - Tech Tribe. U ovom uputstvu pokazat ću kako napraviti vremensku postaju koja izravno šalje podatke na vašu web stranicu . Stoga će vam trebati vaša vlastita domena (npr .:
RPi meteorološka stanica i digitalni sat: 4 koraka (sa slikama)
Meteorološka stanica RPi i digitalni sat: Ovo je brz i jednostavan projekt za izradu i lijep zaslon za prikazivanje. Prikazuje vrijeme, vremenske uvjete i temperaturu. A ako vam se sviđa ono što vidite, slijedite me na Instagramu i Twitteru (@Anders644PI) kako biste bili u toku s onim što radim