Satura rādītājs:
- 1. darbība: detaļu izvēle, rīki un materiāli
- 2. darbība. Aparatūras savienošana
- 3. solis: visu pieslēgšana: Pi iestatīšana
- 4. solis: programmatūra / kods
- 5. solis: korpuss
Video: RPi laika apstākļi ar atsaucīgu vietni: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
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
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
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
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
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:
Laika kubs - Arduino laika izsekošanas sīkrīks: 6 soļi
Laika kubs - Arduino laika izsekošanas sīkrīks: Es vēlētos jums piedāvāt vienkāršu, bet patiešām noderīgu arduino projektu, lai izsekotu laika notikumiem, pārvēršot kādu viedo kuba sīkrīku. Pagrieziet to uz " Darbs " > " Uzzināt " > " Darbi " > " Atpūta " pusē, un tas tiks skaitīts
Laika stacija ar Arduino, BME280 un displeju, lai redzētu tendenci pēdējo 1-2 dienu laikā: 3 soļi (ar attēliem)
Laika stacijas ar Arduino, BME280 un displeju, lai redzētu tendenci pēdējo 1-2 dienu laikā: Sveiki! Šeit ir norādījumi par laika apstākļiem, kas jau ir ieviesti. Tie parāda pašreizējo gaisa spiedienu, temperatūru un mitrumu. Līdz šim viņiem trūka kursa prezentācijas pēdējo 1-2 dienu laikā. Šim procesam būtu
ESP8266 - 12 laika apstākļi: 4 soļi (ar attēliem)
ESP8266 - 12 Laika apstākļi: Šis projekts ir par meteoroloģiskās stacijas izveidi un testēšanu, pamatojoties uz ESP8266 - 12. Koncepcija ir balstīta uz zemu enerģijas patēriņu, uzlādējot akumulatoru, izmantojot saules bateriju. Šī pamācība ir balstīta uz manu iepriekšējo 2 projektu uzlādes sistēmu un esp logger.BOM: P
Viļņu lampa - laika apstākļi un brīdinājumi: 7 soļi (ar attēliem)
Viļņu lampa - laika apstākļi un brīdinājumi: Pārlūkojot lietu universitāti, es redzēju šo absolūti pārsteidzošo viļņu lampu, un man tas bija jāveido. https://www.thingiverse.com/thing:774456 Lampa ir ļoti labi izstrādāta un izdrukā bez jebkādiem balstiem (jāizdrukā uz sāniem)
Temperatūras sensors / laika apstākļi: 9 soļi (ar attēliem)
Temperatūras sensors / laika apstākļi: izveidojiet laika apstākļu vai temperatūras monitoru, izmantojot ļoti foršo digitālo temperatūras sensoru DS1820. Es izmantoju šo iestatījumu, lai uzraudzītu serveru telpu un kā laika apstākļus. Šo projektu veido: Dalasas 1 vadu autobusu tīkls. 232 un