Hali ya Hewa ya RPi Pamoja na Tovuti Msikivu: Hatua 5
Hali ya Hewa ya RPi Pamoja na Tovuti Msikivu: Hatua 5
Anonim
Hali ya Hewa ya RPi Pamoja na Tovuti Msikivu
Hali ya Hewa ya RPi Pamoja na Tovuti Msikivu
Hali ya Hewa ya RPi Pamoja na Tovuti Msikivu
Hali ya Hewa ya RPi Pamoja na Tovuti Msikivu

Kwa mradi wa shule ilibidi tutengeneze kifaa cha IoT na wavuti ya kuibua habari iliyokusanywa kwa njia nzuri. Nilichagua kutengeneza kituo cha hali ya hewa kinachotumiwa na Raspberry Pi 3 inayoendesha Flask kwa wavuti inayojibika, MySQL (MariaDB) kwa hifadhidata yangu. na hati ya chatu ya kukusanya habari na sensorer zangu zote. Ilinichukua kama wiki 2 kutoka mwanzo hadi mwisho kukamilisha.

Tulipewa moyo wa kufundisha kushiriki maendeleo yetu na jamii yote ya DIY, kwa hivyo hapa!

Hatua ya 1: Uteuzi wa Sehemu, Zana na Vifaa

Kwanza nilihitaji kugundua ni aina gani ya sensorer zilikuwa muhimu kwa kituo cha hali ya hewa. Niliamua nataka kupima data zote zifuatazo:

  • Joto
  • Shinikizo la hewa
  • Unyevu
  • Kasi ya upepo
  • Kielelezo cha UV

Hapa kuna Zana zote, Vifaa na Sehemu nilizozitumia

Sehemu:

  • DHT22 / AM2302 kwa usomaji wa joto na unyevu. (15 EUR)
  • Adafruit BMP280 kwa Shinikizo la Barometri na joto. (EUR 12)
  • Adafruit SI1145 ya kupima Fahirisi ya UV. (10 EUR)
  • Anemometer ya Analog ya Adafruit ya kupima upepo (50 EUR)
  • MCP3008 ya kubadilisha ishara za analog kuwa dijiti.
  • 10kOhm Resistor kama kuvuta kwa AM2302 yangu.
  • Adapta ya 9V ya "kuwezesha" Anemometer
  • Adapta ya 5V ya Raspberry Pi
  • Raspberry Pi 3 (Pi yoyote inapaswa kutosha)

Vifaa:

Chombo cha plastiki cha kuhifadhi kila kitu na kuifanya ithibitishe mvua

Zana:

  • Kuchuma Chuma na Bati
  • Multimeter
  • Silicone
  • Mkanda fulani

Kwa hivyo sensorer zote zilinigharimu kuhusu Euro 85, ambayo ni mwinuko kabisa lakini nilitaka sana kujumuisha mita inayofaa ya upepo kwa hivyo nadhani inafaa.

Unaweza kupata orodha ya kina zaidi na maduka ambayo unaweza kununua kila kitu kwenye, kwenye pdf hapa chini:)

Hatua ya 2: Kuunganisha vifaa vyetu

Kuunganisha vifaa vyetu
Kuunganisha vifaa vyetu
Kuunganisha vifaa vyetu
Kuunganisha vifaa vyetu

Kwa kweli tutahitaji kuunganisha sensorer zetu kwa Raspberry Pi yetu. Hapo juu unaweza kuona muundo wa kuvutia ambao unaweza kufuata ili kuunganisha kila kitu vizuri.

Kwenye skimu unaweza kuona betri ya 9V inatumiwa kama chanzo cha nguvu cha anemometer yetu, hii inatumika vizuri kwa upimaji tu kwani haitadumu sana, unaweza kuchukua nafasi ya betri ya 9V kwa chanzo chochote cha nguvu cha 7-12V chagua.

Sensorer zetu za SI1145 na BMP280 zitadhibitiwa kwa kutumia itifaki ya I2C kwani hii ni rahisi kufanya kazi nayo na inahitaji waya kidogo.

Anemometer kwenye skimu inaonyeshwa kama LDR hapa kwani ina wiring inayofanana sana kama anemometer na sikuweza kupata anemometer halisi ya kuweka skimu yangu ya kupendeza:)

Hatua ya 3: Kuunganisha Kila Kitu: Kuweka Pi

Kuunganisha Kila Kitu: Kuweka Pi
Kuunganisha Kila Kitu: Kuweka Pi

Kwanza kabisa, lazima tuhakikishe tumeunganishwa kwenye mtandao.

Ili kufanya hivyo kwenye terminal unaweza kwenda kwenye faili yako ya wpa_supplicant kwa kutumia amri ifuatayo: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Kwenye faili unaweza kuongeza hii:

mtandao = {ssid = "Yako_Wifi_SSID" psk = "Yako_Wifi_Password" key_mgmt = WPA-PSK

}

Unaweza pia kuchagua kuweka anwani yako ya IP kuwa tuli kwa ufikiaji rahisi katika siku zijazo ili kufanya hivyo unahitaji kwenda kwa faili ya dhcpcd.conf kwa kutekeleza amri hii:

Ongeza hii kwenye faili:

kiolesura wlan0static ip_address = 192.168.0.100 / 24

Kisha tutahakikisha vifurushi ambavyo tayari vimewekwa kwenye Pi yetu vimesasishwa kikamilifu:

Sudo apt-pata sasisho && sudo apt-pata sasisho

Hii inaweza kuchukua muda, kwa hivyo usijali

Utahitaji kuwezesha itifaki ya I2C na SPI ndani ya raspi config. Unaweza hii kwa kutekeleza amri hii:

Sudo raspi-config

Kisha nenda kwenye chaguzi za kuingiliana, na kuwezesha zote mbili, I2C na SPI

Kwanza unahitaji kutengeneza saraka unayotaka kuweka mradi wako (tutaipa jina la 'hali ya hewa'):

cd ~ mkdir hali ya hali ya hewacd hali ya hewa

Kisha tunaanzisha mazingira yetu halisi ya python3:

python3 -m kusakinisha bomba - sasisha bomba gurudumu la virtualenvpython3 -m venv --system-site-package-envsource env / bin / activatepython -m pip install mysql-connector-python Flask flask-mysql mysql-connector-python passlib mysql-connector chatu-rf

Kisha tutahitaji kusanikisha vifurushi vingine ambavyo vinahitajika ili kufanya kazi ya kitu chochote kwa usahihi:

Sudo apt kufunga -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Sasa tutafanya hifadhidata yetu:

Bado tunahitaji kuanzisha hifadhidata yetu.

Sudo mariadb <sql / db_init.sql

Swala la sql litafanya meza tunayohitaji na pia kufanya watumiaji wachache kufanya hifadhidata yetu iwe salama zaidi.

Hii pia itaweka data ya historia ya sampuli kwenye hifadhidata yetu ili kuhakikisha kuwa wavuti yetu inaonyesha kila kitu vizuri wakati hakuna data halisi iliyokusanywa bado.

Ili kusanikisha Adafruit_GPIO na MyPyDHT utahitaji kufanya vitu vingine zaidi. Kwanza rudi kwenye folda yako ya matumizi na kisha:

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

cd.. clit clit --recursive https://github.com/freedom27/MyPyDHTsudo python3 setup.py kufunga

Hatua ya 4: Programu / Kanuni

Programu / Kanuni
Programu / Kanuni
Programu / Kanuni
Programu / Kanuni
Programu / Kanuni
Programu / Kanuni

Tunahitaji kuanzisha mwisho wa kituo cha hali ya hewa, ambayo ni pamoja na:

- Hifadhidata ya mariadb ya kuhifadhi usomaji wangu wa sensorer na vitu vingine vidogo- Huduma ya chupa ya kuendesha wavuti. - Huduma nyingine inayoendesha faili ya Python ambayo inasoma sensorer zote.. Juu unaweza kuona usanidi wangu rahisi wa hifadhidata. Jedwali la watumiaji ni sio lazima, lakini kwa kuwa nilitaka mfumo wa kuingia kwa sababu mimi (ingawa data zote ni sawa kwa watumiaji wote) niliamua kuingiza kwenye hifadhidata yangu.

Unaweza kuendelea na kushikilia nambari ya mradi wangu kutoka Github kwenye folda ya mradi wako. Nenda kwenye folda yako ya mtumiaji na uendesha: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp / * weatherstation /

Kisha nenda kwenye folda ya conf katika hali ya hewa na faili zote kwenye folda.

Badilisha matukio yote ya 'USERNAME' kwa jina lako la mtumiaji

Utahitaji pia kunakili faili zote za huduma ili uziweke na kuzijaribu kama hii:

sudo cp conf / hali ya hewa - *. huduma / nk / systemd / mfumo / sudo systemctl daemon-reload sudo systemctl kuanza hali ya hewa-chupa. huduma sudo systemctl kuanza hali ya hewa-sensor

hali ya hali ya hewa ya mfumo wa sudo- *

Kisha tunahitaji kuhariri usanidi wa nginx.

sudo cp conf / nginx / nk / nginx / tovuti-zinazopatikana / hali ya hewa sudo rm / nk / nginx / tovuti-kuwezeshwa / chaguzi sudo ln -s / nk / nginx / tovuti-zinazopatikana / hali ya hewa / nk / nginx / tovuti-kuwezeshwa / hali ya hewa sudo systemctl Anzisha upya nginx.huduma sudo systemctl hadhi nginx.huduma

Ikiwa kila kitu kilienda vizuri unapaswa kuwa na uwezo wa kuendesha hii na kupata html iliyochapishwa kwenye terminal:

wget -qO - mwenyeji wa ndani

Kila kitu kinapaswa kufanya kazi vizuri sasa. Unaweza kutumia anwani yako ya IP ya rasipberry ambayo tumeweka mwanzoni na kusalimiwa na skrini ya kuingia.

Hatua ya 5: Ufungaji

Ufungaji
Ufungaji
Ufungaji
Ufungaji
Ufungaji
Ufungaji

Sasa kwa kuwa kila kitu kinafanya kazi, tunahitaji kuweka kitu kizima katika kitu.

Nilichagua sanduku rahisi la plastiki na kifuniko cha kupita. Anemometer imewekwa juu yake, na kadhalika kontena dogo la sekondari ambalo lina sensorer za DHT22 na BMP280.

Sensorer hizi zimewekwa ndani ya kontena tofauti kwa sababu zinahitaji kuwa wazi (bila kunyeshewa mvua), lakini pi ya raspberry haitaji.

Kama unavyoona niliongeza silicone karibu na kingo ili kuifanya iwe na maji. Pia nilichimba mashimo kwenye chombo cha juu ili kupata hewa safi ndani yake.

Natumai umefurahiya mwongozo wangu juu ya jinsi ya kujenga kituo cha hali ya hewa, inaweza kuwa mbaya kidogo pembeni kwa kuwa ni mara yangu ya kwanza kuandika mwongozo kama huu, lakini natumai umeupenda hata hivyo:)

Ilipendekeza: