Talaan ng mga Nilalaman:
- Hakbang 1: Seleksyon ng Bahagi, Mga Tool at Materyales
- Hakbang 2: Pagkonekta sa aming Hardware
- Hakbang 3: Pagkonekta sa Everthing: Pag-set up ng Pi
- Hakbang 4: Software / Code
- Hakbang 5: Ang Enclosure
Video: RPi Weatherstation Na May tumutugong Website: 5 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Para sa isang proyekto sa paaralan kailangan naming gumawa ng isang aparato ng IoT na may isang website para sa pagpapakita ng nakalap na impormasyon sa isang magandang paraan. Pinili kong gumawa ng isang Weatherstation na pinalakas ng isang Raspberry Pi 3 na nagpapatakbo ng Flask para sa tumutugong website, MySQL (MariaDB) para sa aking database at isang python script para sa pangangalap ng impormasyon sa lahat ng aking mga sensor. Inabot ako ng halos 2 linggo mula simula hanggang matapos upang makumpleto.
Hinihimok kami na gumawa ng isang nagtuturo na ibahagi ang aming pag-unlad sa natitirang komunidad ng DIY, kaya narito na!
Hakbang 1: Seleksyon ng Bahagi, Mga Tool at Materyales
Una kailangan kong malaman kung anong uri ng mga sensor ang mahalaga sa isang istasyon ng panahon. Napagpasyahan kong nais kong masukat ang lahat ng mga sumusunod na data:
- Temperatura
- Presyon ng hangin
- Humidity
- Bilis ng hangin
- UV index
Narito ang lahat ng ginamit ko na Mga Tool, Materyales at Bahagi
Mga Bahagi:
- DHT22 / AM2302 para sa pagbabasa ng temperatura at kahalumigmigan. (15 EUR)
- Adafruit BMP280 para sa Barometric Pressure at temperatura. (12 EUR)
- Adafruit SI1145 para sa pagsukat ng UV Index. (10 EUR)
- Adafruit Analog Anemometer para sa pagsukat ng lakas ng hangin (50 EUR)
- Isang MCP3008 para sa pag-convert ng mga analog signal sa digital.
- 10kOhm Resistor bilang pull-up para sa aking AM2302.
- Isang 9V Adapter para sa 'powering' ng Anemometer
- Isang 5V Adapter para sa Raspberry Pi
- Raspberry Pi 3 (Anumang Pi ay dapat sapat)
Mga Materyales:
Isang lalagyan na plastik para sa pag-iimbak ng kahit ano at gawin itong patunay ng ulan
Mga tool:
- Panghinang na Bakal at Tin
- Multimeter
- Silicone
- Ilang tape
Kaya sa kabuuan ang lahat ng mga sensor ay nagkakahalaga sa akin ng halos 85 Euro, na medyo matarik ngunit talagang nais kong isama ang isang tamang meter ng lakas ng hangin kaya sa palagay ko sulit na sulit ito.
Maaari kang makahanap ng isang mas detalyadong listahan sa mga tindahan na maaari mong bilhin ang lahat, sa pdf sa ibaba:)
Hakbang 2: Pagkonekta sa aming Hardware
Siyempre kakailanganin nating ikonekta ang aming mga sensor sa aming Raspberry Pi. Sa itaas makikita mo ang fritzing skematis na maaari mong sundin upang ikonekta nang maayos ang lahat.
Sa eskematiko maaari mong makita ang isang 9V na baterya na ginagamit bilang mapagkukunan ng kuryente para sa aming anemometer, ito ay pinakamahusay na pinakamahusay na ginamit para sa pagsubok lamang dahil hindi ito magtatagal, maaari mong palitan ang baterya ng 9V para sa anumang pinagmulan ng kuryente na 7-12V sa iyo pumili ka
Ang aming mga sensor ng SI1145 at BMP280 ay parehong kontrolado gamit ang I2C protocol dahil ito ang pinakamadaling magtrabaho at nangangailangan ng mas kaunting mga wire.
Ang anemometer sa eskematiko ay ipinapakita bilang isang LDR dito dahil mayroon itong halos magkapareho na mga kable bilang anemometer at hindi ko makita ang isang tunay na anemometer upang mailagay sa aking fritzing skematic:)
Hakbang 3: Pagkonekta sa Everthing: Pag-set up ng Pi
Una sa lahat, dapat nating tiyakin na nakakonekta tayo sa internet.
Upang magawa ito sa terminal maaari kang pumunta sa iyong wpa_supplicant file sa pamamagitan ng pagpapatakbo ng sumusunod na utos: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Sa file maaari mo itong idagdag:
network = {ssid = "Your_Wifi_SSID" psk = "Your_Wifi_Password" key_mgmt = WPA-PSK
}
Maaari mo ring piliing itakda ang iyong IP-address sa static para sa madaling pag-access sa hinaharap. Upang gawin ito kailangan mong pumunta sa dhcpcd.conf file sa pamamagitan ng pagpapatakbo ng utos na ito: sudo nano /etc/dhcpcd.conf
Idagdag ito sa file:
interface wlan0static ip_address = 192.168.0.100 / 24
Pagkatapos ay titiyakin naming ang mga pakete na naka-install na sa aming Pi ay ganap na na-update:
sudo apt-get update && sudo apt-get upgrade
Maaaring magtagal ito, kaya huwag magalala
Kakailanganin mong paganahin ang I2C at SPI protocol sa loob ng raspi config. Magagawa mo ito sa pamamagitan ng pagpapatakbo ng utos na ito:
sudo raspi-config
Pagkatapos ay pumunta sa mga pagpipilian sa interfacing, at pagpapagana ng pareho, I2C at SPI
Una kailangan mong gumawa ng isang direktoryo na nais mong ilagay ang iyong proyekto (papangalanan namin itong 'weatherstation'):
cd ~ mkdir weatherstationcd weatherstation
Pagkatapos ay nai-set up namin ang aming virtual na kapaligiran ng python3:
pag-install ng python3 -m pip - pag-upgrade ng pip setuptools wheel virtualenvpython3 -m venv --system-site-packages envsource env / bin / activatepython -m pip install MySQL-Connector-Python Flask Flask-MySQL MySQL-Connector-Python Passlib MySQL-Connector -python-rf
Pagkatapos kakailanganin naming mag-install ng ilang iba pang mga pakete na kinakailangan upang magamit nang maayos ang everthing:
sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3
Ngayon ay gagawin namin ang aming database:
Kailangan pa rin naming i-set up ang aming database. Magagawa mo ito sa pamamagitan ng pagpapatakbo ng code / sql file na matatagpuan sa folder na 'sql' tulad nito:
sudo mariadb <sql / db_init.sql
Gagawa ng query sa sql ang mga talahanayan na kailangan namin at gagawa rin ng ilang mga gumagamit upang gawing mas ligtas ang aming database.
Maglalagay din ito ng ilang sample na data ng kasaysayan sa aming database upang matiyak na ipinapakita nang maayos ng aming website ang lahat nang wala pang tunay na data na nakalap.
Upang mai-install ang Adafruit_GPIO at MyPyDHT kakailanganin mong gumawa ng maraming mga bagay. Una bumalik sa iyong folder ng paggamit at pagkatapos ay:
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
Hakbang 4: Software / Code
Kailangan naming i-set up ang back-end para sa weatherstation, na kinabibilangan ng:
- Isang database ng mariadb para sa pag-iimbak ng aking mga pagbabasa ng sensor at ilang iba pang mga menor de edad na bagay- Isang serbisyo sa flask para sa pagpapatakbo ng website. hindi kinakailangan, ngunit dahil gusto ko ng isang sistema ng pag-login dahil ako (kahit na ang lahat ng data ay pareho para sa lahat ng mga gumagamit) nagpasya akong isama sa aking database.
Maaari kang magpatuloy at i-clone ang code ng aking proyekto mula sa Github sa iyong folder ng proyekto. Pumunta sa iyong folder ng gumagamit at patakbuhin: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp / * Weatherstation /
Pagkatapos mag-navigate sa conf folder sa Weatherstation at lahat ng mga file sa folder.
Baguhin ang lahat ng mga paglitaw ng 'USERNAME' sa iyong username
Kakailanganin mo ring kopyahin ang pareho ng.service files sa systemd at subukan ang mga ito tulad nito:
sudo cp conf / weatherstation - *. service / etc / systemd / system / sudo systemctl daemon-reloadsudo systemctl simulan ang Weatherstation-flask.servicesudo systemctl simulan ang Weatherstation-sensor.service
sudo systemctl katayuan ng lagay ng panahon- *
Kailangan naming i-edit ang nginx config.
sudo cp conf / nginx / etc / nginx / sites-magagamit / weatherstationsudo rm / etc / nginx / mga site-pinagana / defaultsudo ln -s / etc / nginx / mga site-magagamit / Weatherstation / etc / nginx / mga site-pinagana / Weatherstationsudo systemctl restart nginx.servicesudo systemctl status nginx.service
Kung naging maayos ang anumang bagay dapat mo itong patakbuhin at makakuha ng ilang html na naka-print sa terminal:
wget -qO - localhost
Ang everthing ay dapat na gumana nang maayos ngayon. Maaari kang mag-surf sa IP-address ng iyong raspberry Pi na itinakda namin sa simula at binati ng isang login screen.
Hakbang 5: Ang Enclosure
Ngayon na gumagana ang lahat, kailangan nating ilagay ang buong bagay sa isang bagay.
Pumili ako ng isang simpleng kahon ng plastik na may isang pantakip na talukap ng mata. Ang anemometer ay naka-mount sa ibabaw nito, at sa gayon ay isang pangalawang maliit na lalagyan na naglalaman ng mga sensor ng DHT22 at BMP280.
Ang mga sensor na ito ay naka-mount sa loob ng isang magkakahiwalay na lalagyan dahil kailangan nilang maging sa bukas na hangin (nang hindi maulan), ngunit ang raspberry pi ay hindi kailangang maging.
Tulad ng nakikita mong nagdagdag ako ng ilang silicone sa paligid ng mga gilid upang gawin itong hindi tinatagusan ng tubig. Nag-drill din ako ng ilang mga butas sa itaas na lalagyan upang makakuha ng sariwang hangin dito.
Inaasahan kong nasiyahan ka sa aking gabay sa kung paano bumuo ng isang panahon, maaari itong maging medyo magaspang sa paligid ng gilid dahil ito ang aking unang pagkakataon na magsulat ng isang gabay na tulad nito, ngunit inaasahan kong nagustuhan mo ito:)
Inirerekumendang:
Paano Lumikha ng isang Website (isang Hakbang-Hakbang na Patnubay): 4 na Hakbang
Paano Lumikha ng isang Website (isang Hakbang-Hakbang na Patnubay): Sa gabay na ito, ipapakita ko sa iyo kung paano itinatayo ng karamihan sa mga web developer ang kanilang mga site at kung paano mo maiiwasan ang mga mamahaling tagabuo ng website na madalas na masyadong limitado para sa isang mas malaking site. tulungan kang maiwasan ang ilang pagkakamali na nagawa ko noong nagsimula ako
ESP8266 - 12 Weatherstation: 4 Hakbang (na may Mga Larawan)
ESP8266 - 12 Weatherstation: Ang proyektong ito ay tungkol sa pagbuo at pagsubok ng istasyon ng panahon batay sa ESP8266 - 12. Ang konsepto ay batay sa mababang paggana sa pag-charge ng baterya gamit ang solar cell. Ang itinuturo na ito ay batay sa aking nakaraang 2 mga proyekto sa pagsingil ng system at esp logger.BOM:P
Tunog na tumutugong Robot: 4 na Hakbang
Sound Responsive Robot: Sa tutorial na ito matututunan mo kung paano gumawa ng isang tunog na tumutugong robot, ang robot ay tutugon sa dami ng iyong boses. Ang dalawang mga mata na kung saan ay ang LED matrixes ipahayag ang dami ng iyong boses sa pamamagitan ng pangunahing emosyon. Naisip ko ang ideyang ito kasama si
Temperatura Sensor / Weatherstation: 9 Mga Hakbang (na may Mga Larawan)
Temperatura Sensor / Weatherstation: Lumikha ng isang Weatherstation o monitor ng temperatura gamit ang napaka-cool na digital temperatura sensor DS1820. Ginagamit ko ang setup na ito upang subaybayan ang isang silid ng server, at bilang isang Weatherstation. Ang proyektong ito ay binubuo ng: Isang Dallas 1-Wire bus networkInterface sa pagitan ng RS- 232 at
Spidering isang Ajax Website Na May isang Asynchronous Form na Pag-login: 6 na Hakbang (na may Mga Larawan)
Spidering isang Ajax Website Gamit ang isang Asynchronous Form na Pag-login: Ang problema: Hindi pinapayagan ng mga tool sa Spidering ang pagpapatotoo sa pag-login ng AJAX. Ipapakita sa iyo ng itinuturo na ito kung paano mag-login sa pamamagitan ng isang form na AJAX gamit ang Python at isang module na tinatawag na Mechanize. Ang mga gagamba ay mga programa sa pag-aautomat ng web na lalong nagiging pop