Sisukord:

RPi ilmastikuolud koos tundliku veebisaidiga: 5 sammu
RPi ilmastikuolud koos tundliku veebisaidiga: 5 sammu

Video: RPi ilmastikuolud koos tundliku veebisaidiga: 5 sammu

Video: RPi ilmastikuolud koos tundliku veebisaidiga: 5 sammu
Video: CS50 2014 – 7-я неделя 2024, Juuli
Anonim
RPi ilmastikuolud koos tundliku veebisaidiga
RPi ilmastikuolud koos tundliku veebisaidiga
RPi ilmastikuolud koos tundliku veebisaidiga
RPi ilmastikuolud koos tundliku veebisaidiga

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

Meie riistvara ühendamine
Meie riistvara ühendamine
Meie riistvara ühendamine
Meie 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

Kõik ühendamine: Pi seadistamine
Kõik ühendamine: 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

Tarkvara / kood
Tarkvara / kood
Tarkvara / kood
Tarkvara / kood
Tarkvara / kood
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

Aedik
Aedik
Aedik
Aedik
Aedik
Aedik

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: