Sisukord:
- Samm: osade valik, tööriistad ja materjalid
- Samm: riistvara ühendamine
- Samm: ühendage kõik: Pi seadistamine
- 4. samm: tarkvara / kood
- 5. samm: ümbris
Video: RPi ilmastikuolud koos tundliku veebisaidiga: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Kooliprojekti jaoks pidime tegema IoT -seadme, millel oli veebisait, et kogutud teavet kenasti visualiseerida. Otsustasin teha tundliku veebisaidi jaoks Raspberry Pi 3 jooksva kolviga töötava ilmastikujaama, MySQL (MariaDB) minu andmebaasi jaoks ja pythoni skript kõigi minu anduritega teabe kogumiseks. Algusest lõpuni kulus mul umbes 2 nädalat.
Meid julgustati tegema juhendit, et jagada oma edusamme ülejäänud isetegija kogukonnaga, nii et siin see on!
Samm: osade valik, tööriistad ja materjalid
Esiteks pidin ma välja selgitama, millised andurid on ilmajaama jaoks hädavajalikud. Otsustasin, et tahan mõõta kõiki järgmisi andmeid:
- Temperatuur
- Õhurõhk
- Niiskus
- Tuule kiirus
- UV -indeks
Siin on kõik tööriistad, materjalid ja osad, mida kasutasin
Osad:
- DHT22/AM2302 temperatuuri ja niiskuse näitude jaoks. (15 EUR)
- Adafruit BMP280 õhurõhu ja temperatuuri jaoks. (12 eurot)
- Adafruit SI1145 UV -indeksi mõõtmiseks. (10 eurot)
- Adafruit analooganemomeeter tuulekiiruse mõõtmiseks (50 EUR)
- MCP3008 analoogsignaalide digitaalseks teisendamiseks.
- 10 kOhm takisti minu AM2302 tõmbejõuna.
- 9 V adapter anemomeetri toiteks
- 5V adapter Raspberry Pi jaoks
- Vaarika Pi 3 (igast Pi -st peaks piisama)
Materjalid:
Plastmahuti kõikide asjade hoidmiseks ja vihmakindlaks muutmiseks
Tööriistad:
- Jootekolb ja tina
- Multimeeter
- Silikoon
- Mingi lint
Seega maksid kõik andurid mulle umbes 85 eurot, mis on üsna järsk, kuid tahtsin tõesti lisada korraliku tuulekiirusmõõturi, nii et ma arvan, et see on seda väärt.
Täpsema nimekirja poodidest, kust kõike osta saate, leiate allolevast pdf -ist:)
Samm: riistvara ühendamine
Loomulikult peame ühendama oma andurid meie Raspberry Pi -ga. Eespool näete fritzeerimise skeemi, mida saate järgida, et kõik õigesti ühendada.
Skeemil näete, et meie anemomeetri toiteallikana kasutatakse 9 V akut, seda on kõige parem kasutada ainult testimiseks, kuna see ei kesta liiga kaua, saate asendada 9 V patarei mis tahes 7–12 V toiteallikaga. vali.
Meie SI1145 ja BMP280 andureid juhitakse I2C protokolli abil, kuna see on kõige lihtsam töötada ja vajab vähem juhtmeid.
Skeemil olev anemomeeter on siin näidatud LDR -na, kuna selle juhtmestik on peaaegu sama kui anemomeetril ja ma ei suutnud leida tõelist anemomeetrit, mida oma fritzeeriva skeemi peale panna:)
Samm: ühendage kõik: Pi seadistamine
Esiteks peame veenduma, et oleme Internetiga ühendatud.
Selleks terminalis saate minna oma faili wpa_supplicant, käivitades järgmise käsu: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Failis saate selle lisada:
network = {ssid = "Your_Wifi_SSID" psk = "Your_Wifi_Password" key_mgmt = WPA-PSK
}
Samuti saate määrata oma IP-aadressi staatiliseks, et tulevikus hõlpsamini juurde pääseda. Selleks peate minema faili dhcpcd.conf, käivitades selle käsu: sudo nano /etc/dhcpcd.conf
Lisage see faili:
liides wlan0static ip_address = 192.168.0.100/24
Siis veendume, et meie Pi -le juba installitud paketid on täielikult värskendatud:
sudo apt-get update && sudo apt-get upgrade
See võib aega võtta, nii et ärge muretsege
Raspi konfiguratsioonis peate lubama I2C ja SPI protokolli. Saate seda teha, käivitades selle käsu:
sudo raspi-config
Seejärel minge liidese valikute juurde ja lubage nii I2C kui ka SPI
Kõigepealt peate tegema kataloogi, kuhu soovite oma projekti paigutada (nimetame selle "ilmastikujaamaks"):
cd ~ mkdir ilmastikujaam cd ilmastikujaam
Seejärel seadistasime oma python3 virtuaalse keskkonna:
python3 -m pip install-uuenda pip setuptools ratas virtualenv python3 -m venv-süsteem-saidipaketid envsource env/bin/activpython -m pip install mysql-connector-python Kolb-kolb-mysql mysql-pistik-python passlib mysql-pistik -python-rf
Seejärel peame installima mõned muud paketid, mis on vajalikud kõikide nõuetekohaseks toimimiseks:
sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3
Nüüd teeme oma andmebaasi:
Peame siiski oma andmebaasi seadistama. Seda saate teha, käivitades koodi/sql -faili, mis asub kaustas "sql" järgmiselt:
sudo mariadb <sql/db_init.sql
SQL -päring muudab vajalikud tabelid ja teeb ka mõned kasutajad, et muuta meie andmebaas natuke turvalisemaks.
See paneb meie andmebaasi ka mõned ajaloo näidisandmed, et veenduda, et meie veebisait kuvab kõike õigesti, kui tegelikke andmeid pole veel kogutud.
Adafruit_GPIO ja MyPyDHT installimiseks peate tegema veel mõnda asja. Kõigepealt minge tagasi oma kasutuskausta ja seejärel:
git kloon https://github.com/adafruit/Adafruit_Python_GPIO.gitcd Adafruit_Python_GPIO sudo python3 setup.py install
cd..git kloon -rekursiivne https://github.com/freedom27/MyPyDHTsudo python3 setup.py install
4. samm: tarkvara / kood
Peame seadistama ilmastikujaama tagakülje, mis sisaldab järgmist:
- Mariadb andmebaas minu andurite näitude ja mõne muu pisiasja salvestamiseks- kolbiteenus veebisaidi käitamiseks.- Teine teenus, mis käivitab Pythoni faili, mis loeb ette kõik andurid. Ülal näete minu väga lihtsat andmebaasi seadistust. Kasutajate tabel on mittevajalik, kuid kuna ma tahtsin sisselogimissüsteemi, sest ma (kuigi kõik andmed on kõigi kasutajate jaoks ühesugused), otsustasin ma oma andmebaasi lisada.
Võite minna ja kloonida minu projekti kood Githubist oma projekti kausta. Minge oma kasutaja kausta ja käivitage: git kloon https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/
Seejärel liikuge ilmastikujaamas conf kausta ja kõigi kaustas olevate failide juurde.
Muutke kõik USERNAME esinemised oma kasutajanimeks
Samuti peate mõlemad.service -failid kopeerima systemd -i ja neid järgmiselt testima:
sudo cp conf/weatherstation-*. service/etc/systemd/system/sudo systemctl deemon-reloadsudo systemctl start weatherstation-kolb. teenusedudo systemctl start weatherstation-sensor.service
sudo systemctl oleku ilmastiku-*
Seejärel peame muutma nginxi konfiguratsiooni.
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 taaskäivitage nginx.servicesudo systemctl olek nginx.service
Kui kõik läks hästi, peaksite selle käivitama ja terminalis mõne html -i välja printima:
wget -qO - localhost
Kõik peaks nüüd hästi toimima. Saate surfata oma vaarika Pi IP-aadressile, mille me alguses seadsime, ja teid tervitatakse sisselogimisekraaniga.
5. samm: ümbris
Nüüd, kui kõik toimib, peame kogu asja millessegi panema.
Valisin lihtsa läbipaistva kaanega plastkarbi. Selle peale on paigaldatud anemomeeter ja sekundaarne väike anum, mis sisaldab DHT22 ja BMP280 andureid.
Need andurid on paigaldatud eraldi konteinerisse, kuna need peavad olema vabas õhus (ilma vihma sadamata), kuid vaarika pi ei pea olema.
Nagu näete, lisasin servadele veekindlaks muutmiseks silikooni. Puurisin ka mõned augud ülemisse anumasse, et sellesse värske õhk sisse saada.
Loodan, et teile meeldis minu juhend, kuidas ehitada ilmastikujaam, see võib olla servade ümber pisut karm, kuna kirjutan esimest korda sellist juhendit, kuid loodan, et teile see siiski meeldis:)
Soovitan:
Kuidas: Raspberry PI 4 peata (VNC) installimine RPI-pildistaja ja piltidega: 7 sammu (koos piltidega)
Kuidas: Raspberry PI 4 peata (VNC) installimine Rpi-pildistaja ja piltidega: kavatsen seda Rapsberry PI-d kasutada oma blogis hunniku lõbusate projektide jaoks. Vaadake seda julgelt. Tahtsin uuesti oma Raspberry PI kasutamist alustada, kuid mul polnud uues asukohas klaviatuuri ega hiirt. Vaarika seadistamisest oli tükk aega möödas
TUNDLIKU ARDUINO TAIME PUUTAMINE: 6 sammu
TOUCH TUNDLIK ARDUINO TAIM: selles õpetuses näitan, kuidas ehitada puutetundlik taim, kasutades Arduinothat'i, kui taime puudutades muutub värv. kõigepealt vaadake seda videot
ESP8266 - 12 ilmastikuolud: 4 sammu (piltidega)
ESP8266 - 12 Ilmastikujaam: see projekt käsitleb ilmajaama ehitamist ja katsetamist, mis põhineb ESP8266 - 12. Põhimõte põhineb vähese energiatarbega laadimisel, kasutades päikesepatareid. See juhendamine põhineb minu eelmisel 2 projekti laadimissüsteemil ja esp loggeril. BOM: P
RPi IoT nutivalgus Firebase'i abil: 4 sammu (koos piltidega)
RPi IoT Smart Light Firebase'i abil: see juhend näitab teile, kuidas teha ja seadistada rakendus Raspberry Pi juhtimiseks Firebase'i kaudu (veebipõhine andmebaas). Ja siis 3D -printimise juhtum Pi Zero W jaoks, Powerboost 1000C, aku ja Blinkt
Temperatuuriandur / ilmastikuolud: 9 sammu (piltidega)
Temperatuuriandur / ilmastikujaam: looge ilmastikujaam või temperatuurimonitor, kasutades väga lahedat digitaalset temperatuuriandurit DS1820. Ma kasutan seda seadet serveriruumi jälgimiseks ja ilmastikujaamana. See projekt koosneb: Dallase 1-juhtmelisest bussivõrgust RS-liides 232 ja