Satura rādītājs:

RPi laika apstākļi ar atsaucīgu vietni: 5 soļi
RPi laika apstākļi ar atsaucīgu vietni: 5 soļi

Video: RPi laika apstākļi ar atsaucīgu vietni: 5 soļi

Video: RPi laika apstākļi ar atsaucīgu vietni: 5 soļi
Video: Leap Motion SDK 2024, Novembris
Anonim
RPi laika apstākļi ar atsaucīgu vietni
RPi laika apstākļi ar atsaucīgu vietni
RPi laika apstākļi ar atsaucīgu vietni
RPi laika apstākļi ar atsaucīgu vietni

Skolas projektam mums bija jāizveido IoT ierīce ar tīmekļa vietni, lai jauki vizualizētu apkopoto informāciju. Es izvēlējos izveidot laika apstākļu staciju, ko darbina Raspberry Pi 3 skrejošā kolba adaptīvajai vietnei, MySQL (MariaDB) manai datu bāzei un pitona skriptu, lai apkopotu informāciju ar visiem maniem sensoriem. No sākuma līdz beigām man bija nepieciešamas apmēram 2 nedēļas.

Mēs tikām mudināti sniegt pamācību, lai dalītos savā progresā ar pārējo DIY kopienu, tāpēc šeit tas ir!

1. darbība: detaļu izvēle, rīki un materiāli

Vispirms man vajadzēja noskaidrot, kādi sensori ir būtiski laika stacijai. Es nolēmu, ka vēlos izmērīt visus šādus datus:

  • Temperatūra
  • Gaisa spiediens
  • Mitrums
  • Vēja ātrums
  • UV indekss

Šeit ir visi manis izmantotie rīki, materiāli un detaļas

Daļas:

  • DHT22/AM2302 temperatūras un mitruma rādījumiem. (15 EUR)
  • Adafruit BMP280 barometra spiedienam un temperatūrai. (12 EUR)
  • Adafruit SI1145 UV indeksa mērīšanai. (10 EUR)
  • Adafruit analogs anemometrs vēja ātruma mērīšanai (50 EUR)
  • MCP3008 analogo signālu pārvēršanai ciparu formātā.
  • 10 kOhm rezistors kā uzvilkums manam AM2302.
  • 9V adapteris anemometra "barošanai"
  • 5V adapteris Raspberry Pi
  • Raspberry Pi 3 (pietiek ar jebkuru Pi)

Materiāli:

Plastmasas trauks visu uzglabāšanai un lietus necaurlaidībai

Rīki:

  • Lodāmurs un alva
  • Multimetrs
  • Silikons
  • Kaut kāda lente

Tātad kopumā visi sensori man izmaksāja aptuveni 85 eiro, kas ir diezgan stāvi, bet es patiešām gribēju iekļaut atbilstošu vēja ātruma mērītāju, tāpēc es domāju, ka tas ir tā vērts.

Detalizētāku sarakstu ar veikaliem, kuros varat iegādāties visu, varat atrast zemāk esošajā pdf failā:)

2. darbība. Aparatūras savienošana

Mūsu aparatūras savienošana
Mūsu aparatūras savienošana
Mūsu aparatūras savienošana
Mūsu aparatūras savienošana

Protams, mums būs jāpievieno mūsu sensori mūsu Raspberry Pi. Iepriekš varat redzēt fritzes shēmu, kuru varat sekot, lai pareizi savienotu visu.

Shēmā var redzēt, ka mūsu anemometra barošanas avotam tiek izmantots 9 V akumulators, to vislabāk var izmantot tikai testēšanai, jo tas nedarbosies pārāk ilgi, jūs varat nomainīt 9 V akumulatoru jebkuram 7–12 V barošanas avotam. izvēlēties.

Mūsu SI1145 un BMP280 sensori tiks vadīti, izmantojot I2C protokolu, jo ar to ir visvieglāk strādāt, un tam ir nepieciešams mazāk vadu.

Shēmas anemometrs šeit ir parādīts kā LDR, jo tam ir gandrīz identisks vads kā anemometram, un es nevarēju atrast īstu anemometru, lai uzliktu savu fritzējošo shēmu:)

3. solis: visu pieslēgšana: Pi iestatīšana

Viss savienojums: Pi iestatīšana
Viss savienojums: Pi iestatīšana

Pirmkārt, mums ir jāpārliecinās, vai ir izveidots savienojums ar internetu.

Lai to izdarītu terminālī, varat doties uz savu failu wpa_supplicant, izpildot šādu komandu: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Failā varat pievienot šo:

tīkls = {ssid = "Your_Wifi_SSID" psk = "Your_Wifi_Password" key_mgmt = WPA-PSK

}

Varat arī izvēlēties iestatīt savu IP adresi uz statisku, lai nākotnē būtu vieglāk piekļūt. Lai to izdarītu, jums jādodas uz failu dhcpcd.conf, izpildot šo komandu: sudo nano /etc/dhcpcd.conf

Pievienojiet šo failu:

saskarne wlan0static ip_address = 192.168.0.100/24

Tad mēs pārliecināsimies, vai mūsu Pi jau instalētās paketes ir pilnībā atjauninātas:

sudo apt-get update && sudo apt-get upgrade

Tas var aizņemt kādu laiku, tāpēc neuztraucieties

Jums būs jāiespējo I2C un SPI protokols raspi konfigurācijā. To varat izdarīt, palaižot šo komandu:

sudo raspi-config

Pēc tam dodieties uz saskarnes opcijām un iespējojiet gan I2C, gan SPI

Vispirms jums jāizveido direktorijs, kurā vēlaties ievietot savu projektu (mēs to nosauksim par laika apstākļiem):

cd ~ mkdir laika apstākļu cd laika apstākļu stacija

Pēc tam mēs izveidojām savu python3 virtuālo vidi:

python3 -m pip instalēt-jaunināt pip setuptools ritenis virtualenv python3 -m venv-system-site-paketes envsource env/bin/activepython -m pip install mysql-connector-python Kolbas kolba-mysql mysql-savienotājs-python passlib mysql-savienotājs -python-rf

Tad mums būs jāinstalē dažas citas paketes, kas nepieciešamas, lai viss darbotos pareizi:

sudo apt instalēt -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Tagad mēs izveidosim savu datu bāzi:

Tomēr mums joprojām ir jāizveido mūsu datu bāze. To var izdarīt, palaižot kodu/sql failu, kas atrodas mapē "sql", piemēram:

sudo mariadb <sql/db_init.sql

SQL vaicājums padarīs mums nepieciešamās tabulas, kā arī dažus lietotājus, lai padarītu mūsu datu bāzi nedaudz drošāku.

Tādējādi mūsu datu bāzē tiks ievietoti arī daži vēstures datu paraugi, lai pārliecinātos, ka mūsu vietne parāda visu pareizi, ja vēl nav apkopoti reāli dati.

Lai instalētu Adafruit_GPIO un MyPyDHT, jums būs jādara vēl dažas lietas. Vispirms atgriezieties savā lietošanas mapē un pēc tam:

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

cd..git klons -rekursīvs https://github.com/freedom27/MyPyDHTsudo python3 setup.py install

4. solis: programmatūra / kods

Programmatūra / kods
Programmatūra / kods
Programmatūra / kods
Programmatūra / kods
Programmatūra / kods
Programmatūra / kods

Mums ir jāizveido laika apstākļu aizmugure, kas ietver:

- Mariadb datu bāze manu sensoru rādījumu glabāšanai un dažas citas nelielas lietas- Kolbas pakalpojums vietnes darbināšanai.- Vēl viens pakalpojums, kurā darbojas Python fails, kurā tiek nolasīti visi sensori. Iepriekš varat redzēt manu ļoti vienkāršo datu bāzes iestatīšanu. Lietotāju tabula ir nevajadzīgi, bet, tā kā es gribēju pieteikšanās sistēmu, jo es (kaut arī visi dati ir vienādi visiem lietotājiem), es nolēmu iekļaut savā datu bāzē.

Jūs varat iet uz priekšu un klonēt mana projekta kodu no Github savā projekta mapē. Dodieties uz savu lietotāja mapi un palaidiet: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/

Pēc tam laika apstākļos dodieties uz conf mapi un visiem mapē esošajiem failiem.

Mainiet visus USERNAME gadījumus uz savu lietotājvārdu

Jums arī vajadzēs kopēt abus.service failus uz systemd un pārbaudīt tos šādi:

sudo cp conf/weatherstation-*. service/etc/systemd/system/sudo systemctl dēmons-reloadsudo systemctl start weatherstation-kolba. pakalpojumi sudo systemctl start weatherstation-sensor.service

sudo systemctl statuss laika apstākļi-*

Pēc tam mums ir jārediģē nginx konfigurācija.

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 restartējiet nginx.servicesudo systemctl statusu nginx.service

Ja viss gāja labi, jums vajadzētu būt iespējai to palaist un terminālī izdrukāt dažus html:

wget -qO - vietējais saimnieks

Tagad visam vajadzētu darboties labi. Jūs varat sērfot uz savas aveņu Pi IP adresi, kuru mēs iestatījām sākumā, un jūs sagaidīs pieteikšanās ekrāns.

5. solis: korpuss

Iežogojums
Iežogojums
Iežogojums
Iežogojums
Iežogojums
Iežogojums

Tagad, kad viss darbojas, mums kaut kas jāieliek iekšā.

Es izvēlējos vienkāršu plastmasas kastīti ar caurspīdīgu vāku. Anemometrs ir uzstādīts virs tā, tāpat kā otrreizējais mazais trauks, kurā ir DHT22 un BMP280 sensori.

Šie sensori ir uzstādīti atsevišķā traukā, jo tiem jāatrodas brīvā dabā (bez lietus), bet aveņu pi nav jābūt.

Kā redzat, es pievienoju silikonu ap malām, lai padarītu to ūdensnecaurlaidīgu. Es arī urbju dažus caurumus augšējā traukā, lai tajā iegūtu svaigu gaisu.

Es ceru, ka jums patika mans ceļvedis par laika apstākļu izveidi, tas var būt nedaudz raupjāks, jo es pirmo reizi rakstu šādu ceļvedi, bet es ceru, ka jums tas tomēr patika:)

Ieteicams: