Përmbajtje:

RPi Weatherstation Me Uebfaqe të përgjegjshme: 5 hapa
RPi Weatherstation Me Uebfaqe të përgjegjshme: 5 hapa

Video: RPi Weatherstation Me Uebfaqe të përgjegjshme: 5 hapa

Video: RPi Weatherstation Me Uebfaqe të përgjegjshme: 5 hapa
Video: Raspberry Pi Pico - Weather Station Part 1 2024, Korrik
Anonim
RPi Weatherstation Me Uebfaqe të përgjegjshme
RPi Weatherstation Me Uebfaqe të përgjegjshme
RPi Weatherstation Me Uebfaqe të përgjegjshme
RPi Weatherstation Me Uebfaqe të përgjegjshme

Për një projekt shkollor ne duhej të bënim një pajisje IoT me një faqe në internet për të vizualizuar informacionin e mbledhur në një mënyrë të bukur. Zgjodha të bëja një mot të mundësuar nga një Raspberry Pi 3 Flask që funksionon për faqen e internetit të përgjegjshme, MySQL (MariaDB) për bazën e të dhënave të mia dhe një skenar python për mbledhjen e informacionit me të gjithë sensorët e mi. M’u deshën rreth 2 javë nga fillimi në fund për të përfunduar.

Ne u inkurajuam të bënim një udhëzues për të ndarë përparimin tonë me pjesën tjetër të komunitetit DIY, kështu që këtu është!

Hapi 1: Përzgjedhja e pjesëve, mjetet dhe materialet

Së pari më duhej të kuptoja se çfarë lloj sensorë ishin thelbësorë për një stacion moti. Vendosa se doja të matja të gjitha të dhënat e mëposhtme:

  • Temperatura
  • Presioni i ajrit
  • Lagështia
  • Shpejtesia e eres
  • Indeksi UV

Këtu janë të gjitha mjetet, materialet dhe pjesët që kam përdorur

Pjesët:

  • DHT22/AM2302 për leximet e temperaturës dhe lagështisë. (15 EUR)
  • Adafruit BMP280 për Presionin Barometrik dhe Temperaturën. (12 euro)
  • Adafruit SI1145 për matjen e Indeksit UV. (10 euro)
  • Anemometër Analog Adafruit për matjen e shpejtësisë së erës (50 EUR)
  • Një MCP3008 për shndërrimin e sinjaleve analoge në dixhitale.
  • Rezistencë 10kOhm si tërheqëse për AM2302 tim.
  • Një përshtatës 9V për 'fuqizimin' e Anemometrit
  • Një përshtatës 5V për Raspberry Pi
  • Raspberry Pi 3 (Çdo Pi duhet të mjaftojë)

Materiale:

Një enë plastike për të ruajtur gjithçka dhe për ta bërë atë të papërshkueshëm nga shiu

Mjetet:

  • Saldim hekuri dhe kallaji
  • Multimetër
  • Silikoni
  • Disa kaseta

Pra, në total të gjithë sensorët më kushtuan rreth 85 Euro, që është mjaft i pjerrët, por unë me të vërtetë doja të përfshija një matës të duhur të shpejtësisë së erës, kështu që mendoj se ia vlen.

Mund të gjeni një listë më të detajuar me dyqanet ku mund të blini gjithçka, në pdf më poshtë:)

Hapi 2: Lidhja e pajisjeve tona

Lidhja e harduerit tonë
Lidhja e harduerit tonë
Lidhja e harduerit tonë
Lidhja e harduerit tonë

Sigurisht që do të na duhet të lidhim sensorët tanë me Raspberry Pi tonë. Mbi të mund të shihni skemën marramendëse që mund të ndiqni për të lidhur gjithçka siç duhet.

Në skemën mund të shihni se një bateri 9V përdoret si burim energjie për anemometrin tonë, kjo përdoret më së miri për testim vetëm pasi nuk do të zgjasë shumë, mund të zëvendësoni baterinë 9V për çdo burim energjie 7-12V që ju zgjidh.

Sensorët tanë SI1145 dhe BMP280 do të kontrollohen të dy duke përdorur protokollin I2C pasi kjo është më e lehtë për të punuar me të dhe ka nevojë për më pak tela.

Anemometri në skemë tregohet si një LDR këtu pasi ka instalime elektrike pothuajse identike si anemometri dhe nuk gjeta një anemometër të vërtetë për të vënë në skemën time të shkëlqyeshme:)

Hapi 3: Lidhja e gjithçkaje: Vendosja e Pi

Lidhja e gjithçkaje: Vendosja e Pi
Lidhja e gjithçkaje: Vendosja e Pi

Para së gjithash, ne duhet të sigurohemi që jemi të lidhur me internetin.

Për ta bërë këtë në terminal, mund të shkoni te skedari juaj wpa_supplicant duke ekzekutuar komandën e mëposhtme: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Në skedar mund të shtoni këtë:

rrjet = {ssid = "Your_Wifi_SSID" psk = "Fjalëkalimi juaj_Wifi" key_mgmt = WPA-PSK

}

Ju gjithashtu mund të zgjidhni të vendosni adresën tuaj IP në statike për qasje më të lehtë në të ardhmen. Për ta bërë këtë ju duhet të shkoni te skedari dhcpcd.conf duke ekzekutuar këtë komandë: sudo nano /etc/dhcpcd.conf

Shtojeni këtë në skedar:

ndërfaqe wlan0static ip_address = 192.168.0.100/24

Pastaj ne do të sigurohemi që paketat që janë instaluar tashmë në Pi tonë janë përditësuar plotësisht:

sudo apt-merrni përditësim && sudo apt-merrni përmirësim

Kjo mund të zgjasë pak, kështu që mos u shqetësoni

Ju do të duhet të aktivizoni protokollin I2C dhe SPI brenda konfigurimit raspi. Mundeni këtë duke ekzekutuar këtë komandë:

sudo raspi-config

Pastaj shkoni te opsionet e ndërlidhjes dhe aktivizoni të dyja, I2C dhe SPI

Së pari ju duhet të krijoni një drejtori në të cilën dëshironi të vendosni projektin tuaj (ne do ta quajmë 'Weatherstation'):

cd ~ mkdir weatherstationcd weatherstation

Pastaj ne krijojmë mjedisin tonë virtual python3:

python3 -m pip install-upgrade pip setuptools wheel virtualenvpython3 -m venv --system-site-packages envsource env/bin/activpython -m pip install mysql-connector-python Flask flask-mysql mysql-connector-python passlib mysql-connector -python-rf

Atëherë do të na duhet të instalojmë disa pako të tjera që nevojiten për të bërë gjithçka të funksionojë në mënyrë korrekte:

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

Tani ne do të bëjmë bazën tonë të të dhënave:

Ne ende duhet të krijojmë bazën e të dhënave tona. Ju mund ta bëni këtë duke drejtuar skedarin kod/sql të vendosur në dosjen 'sql' si kjo:

sudo mariadb <sql/db_init.sql

Pyetja sql do të bëjë tabelat që na duhen dhe gjithashtu do të bëjë disa përdorues për ta bërë bazën tonë të të dhënave pak më të sigurt.

Kjo gjithashtu do të vendosë disa të dhëna të mostrës së historisë në bazën tonë të të dhënave për t'u siguruar që uebfaqja jonë shfaq gjithçka siç duhet kur nuk ka ende të dhëna të vërteta të mbledhura.

Për të instaluar Adafruit_GPIO dhe MyPyDHT do t'ju duhet të bëni disa gjëra të tjera. Së pari kthehuni te dosja juaj e përdorimit dhe më pas:

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

Hapi 4: Softueri / Kodi

Softueri / Kodi
Softueri / Kodi
Softueri / Kodi
Softueri / Kodi
Softueri / Kodi
Softueri / Kodi

Ne duhet të krijojmë pjesën e prapme për motin, i cili përfshin:

- Një bazë të dhënash mariadb për ruajtjen e leximeve të mia të sensorit dhe disa gjëra të tjera të vogla- Një shërbim flask për drejtimin e faqes në internet.- Një shërbim tjetër që ekzekuton skedarin Python i cili lexon të gjithë sensorët. Mbi ju mund të shihni konfigurimin tim të thjeshtë të bazës së të dhënave. Tabela e përdoruesve është e panevojshme, por meqë doja një sistem identifikimi sepse unë (edhe pse të gjitha të dhënat janë të njëjta për të gjithë përdoruesit) vendosa të përfshij në bazën time të të dhënave.

Ju mund të shkoni përpara dhe të klononi kodin e projektit tim nga Github në dosjen e projektit tuaj. Shkoni te dosja juaj e përdoruesit dhe ekzekutoni: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/

Pastaj lundroni te dosja conf në motin dhe të gjitha skedarët në dosje.

Ndryshoni të gjitha rastet e 'USERNAME' në emrin tuaj të përdoruesit

Ju gjithashtu do të duhet të kopjoni të dy skedarët e shërbimit për të sistemuar dhe testuar ato si kjo:

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

sudo systemctl statusi i motit-*

Atëherë duhet të redaktojmë konfigurimin nginx.

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 rinisni nginx.servicesudo statusctl statusin nginx.service

Nëse gjithçka shkoi mirë, duhet të jeni në gjendje ta përdorni këtë dhe të printoni disa html në terminal:

wget -qO - localhost

Çdo gjë duhet të funksionojë mirë tani. Ju mund të lundroni në adresën IP të mjedrës Pi që kemi vendosur në fillim dhe të përshëndeteni me një ekran identifikimi.

Hapi 5: Mbyllja

Rrethimi
Rrethimi
Rrethimi
Rrethimi
Rrethimi
Rrethimi

Tani që gjithçka funksionon, ne duhet ta vendosim të gjithë në diçka.

Zgjodha një kuti të thjeshtë plastike me një kapak të tejdukshëm. Anemometri është montuar në krye të tij, dhe kështu është një enë dytësore e vogël e cila përmban sensorët DHT22 dhe BMP280.

Këta sensorë janë montuar brenda një ene të veçantë sepse duhet të jenë në ajër të hapur (pa rënë shi), por mjedra pi nuk ka nevojë të jetë.

Siç mund ta shihni shtova pak silikon rreth skajeve për ta bërë atë të papërshkueshëm nga uji. Unë gjithashtu shpova disa vrima në enën e sipërme për të marrë ajër të pastër në të.

Shpresoj se ju ka pëlqyer udhëzuesi im se si të ndërtoni një mot moti, mund të jetë pak i përafërt në skajet pasi është hera ime e parë që shkruaj një udhëzues si ky, por shpresoj që t'ju pëlqejë gjithsesi:)

Recommended: