Mündəricat:

Həssas Veb Saytı olan RPi Hava İstasyonu: 5 addım
Həssas Veb Saytı olan RPi Hava İstasyonu: 5 addım

Video: Həssas Veb Saytı olan RPi Hava İstasyonu: 5 addım

Video: Həssas Veb Saytı olan RPi Hava İstasyonu: 5 addım
Video: Prüfungsvorbereitung - Beruf - B2 2024, Iyul
Anonim
Həssas Veb Saytı olan RPi Hava İstasyonu
Həssas Veb Saytı olan RPi Hava İstasyonu
Həssas Veb Saytı olan RPi Hava İstasyonu
Həssas Veb Saytı olan RPi Hava İstasyonu

Bir məktəb layihəsi üçün, toplanan məlumatları gözəl bir şəkildə görselleştirmek üçün bir veb saytı olan bir IoT cihazı hazırlamalı idim. Verilənlər bazası üçün cavab verən veb sayt MySQL (MariaDB) üçün Raspberry Pi 3 işləyən bir Şüşə ilə işləyən bir hava istasyonu qurmağı seçdim. və bütün sensorlarımla məlumat toplamaq üçün bir python skripti. Başdan sona başa çatdırmaq üçün təxminən 2 həftə çəkdim.

Tərəqqimizi DIY icmasının qalan üzvləri ilə bölüşmək üçün təlimatlandırmağa təşviq edildik, budur!

Addım 1: Parça Seçimi, Alətlər və Materiallar

Əvvəlcə bir hava stansiyası üçün hansı sensorların vacib olduğunu anlamalıydım və aşağıdakı məlumatların hamısını ölçmək istədiyimə qərar verdim:

  • Temperatur
  • Hava təzyiqi
  • Rütubət
  • Külək sürəti
  • UV indeksi

İşdə istifadə etdiyim bütün alətlər, materiallar və hissələr

Parçalar:

  • DHT22/AM2302 temperatur və nəm oxunuşları üçün. (15 EUR)
  • Adafruit BMP280 Barometrik Təzyiq və temperatur üçün. (12 EUR)
  • UV indeksini ölçmək üçün Adafruit SI1145. (10 EUR)
  • Külək sürətini ölçmək üçün Adafruit Analog Anemometri (50 EUR)
  • Analoq siqnalları rəqəmsal hala çevirmək üçün MCP3008.
  • AM2302 üçün 10 kOhm Rezistor.
  • Anemometrini gücləndirmək üçün 9V adapter
  • Raspberry Pi üçün 5V adapter
  • Moruq Pi 3 (İstənilən Pi kifayətdir)

Materiallar:

Hər şeyi saxlamaq və yağışa davamlı etmək üçün plastik bir qab

Alətlər:

  • Lehimləmə dəmir və qalay
  • Multimetr
  • Silikon
  • Biraz lent

Ümumilikdə bütün sensorlar mənə təxminən 85 Avroya başa gəlir ki, bu da olduqca dikdir, amma buna uyğun külək sürət sayğacını daxil etmək istədim, buna görə də buna dəyər olduğunu düşünürəm.

Aşağıdakı pdf -də hər şeyi satın ala biləcəyiniz mağazalarla daha ətraflı siyahı tapa bilərsiniz:)

Addım 2: Avadanlıqlarımızı birləşdiririk

Avadanlıqlarımızı birləşdirir
Avadanlıqlarımızı birləşdirir
Avadanlıqlarımızı birləşdirir
Avadanlıqlarımızı birləşdirir

Əlbəttə ki, sensorlarımızı Raspberry Pi -yə bağlamalı olacağıq. Hər şeyi düzgün bir şəkildə bağlamaq üçün izləyə biləcəyiniz dəhşətli sxemə baxa bilərsiniz.

Şematik olaraq anemometrimizin enerji mənbəyi olaraq 9V batareyanın istifadə edildiyini görə bilərsiniz, bu test üçün ən yaxşı istifadə olunur, çünki çox uzun sürməyəcək, 9V batareyanı istənilən 7-12V güc mənbəyi ilə əvəz edə bilərsiniz. seçmək.

SI1145 və BMP280 sensorlarımız həm I2C protokolu ilə idarə ediləcək, çünki işləmək ən asandır və daha az telə ehtiyac duyur.

Şematikdəki anemometr burada LDR olaraq göstərilir, çünki anemometr ilə olduqca çox oxşar naqillərə malikdir və fritzing sxemimi qoymaq üçün əsl anemometr tapa bilmədim:)

Addım 3: Hər şeyi birləşdirmək: Pi qurmaq

Hər şeyi birləşdirmək: Pi qurmaq
Hər şeyi birləşdirmək: Pi qurmaq

Hər şeydən əvvəl, İnternetə qoşulduğumuzdan əmin olmalıyıq.

Bunu terminalda etmək üçün aşağıdakı əmri işlədərək wpa_supplicant faylınıza gedə bilərsiniz: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Faylı bu əlavə edə bilərsiniz:

network = {ssid = "Your_Wifi_SSID" psk = "Your_Wifi_Password" key_mgmt = WPA-PSK

}

Gələcəkdə daha asan daxil olmaq üçün IP ünvanınızı statik olaraq təyin etməyi də seçə bilərsiniz. Bunu etmək üçün bu əmri işlədərək dhcpcd.conf faylına daxil olmalısınız: sudo nano /etc/dhcpcd.conf

Bunu fayla əlavə edin:

wlan0static ip_address interfeysi = 192.168.0.100/24

Sonra Pi -də quraşdırılmış paketlərin tam olaraq yeniləndiyinə əmin olacağıq:

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

Bu bir müddət çəkə bilər, buna görə narahat olmayın

I2C və SPI protokolunu raspi config -də aktiv etməlisiniz. Bu əmri işlədərək bunu edə bilərsiniz:

sudo raspi-config

Sonra həm I2C, həm də SPI -ni aktivləşdirmək üçün interfeys seçimlərinə keçin

Əvvəlcə layihənizi yerləşdirmək istədiyiniz bir kataloq hazırlamalısınız (buna 'hava istasyonu' deyəcəyik):

cd ~ mkdir hava istasyonu cd hava istasyonu

Sonra python3 virtual mühitimizi qururuq:

python3 -m pip quraşdır-pip setuptools təkərini təkmilləşdir -piton-rf

Sonra, hər şeyin düzgün işləməsi üçün lazım olan digər paketləri qurmalıyıq:

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

İndi verilənlər bazamızı hazırlayacağıq:

Veritabanımızı hələ də qurmalıyıq. Bunu 'sql' qovluğunda yerləşən kodu/sql faylını işlədərək edə bilərsiniz:

sudo mariadb <sql/db_init.sql

Sql sorğusu ehtiyac duyduğumuz cədvəlləri edəcək və eyni zamanda bir neçə istifadəçini məlumat bazamızı bir az daha təhlükəsiz hala gətirəcək.

Hələ də heç bir real məlumat toplanmadıqda veb saytımızın hər şeyi düzgün göstərdiyinə əmin olmaq üçün verilənlər bazamıza bəzi nümunə tarix məlumatları qoyacaq.

Adafruit_GPIO və MyPyDHT qurmaq üçün daha çox şey etməlisiniz. Əvvəlcə istifadə qovluğuna qayıdın və sonra:

git clone https://github.com/adafruit/Adafruit_Python_GPIO.gitcd Adafruit_Python_GPIO sudo python3 setup.py quraşdırın

cd..git clone -təkrarlanan https://github.com/freedom27/MyPyDHTsudo python3 setup.py install

Addım 4: Proqram / Kod

Proqram / Kod
Proqram / Kod
Proqram / Kod
Proqram / Kod
Proqram / Kod
Proqram / Kod

Hava istasyonu üçün arxa tərəfi qurmalıyıq:

- Sensor oxunuşlarımı və bəzi digər kiçik şeyləri saxlamaq üçün bir mariadb verilənlər bazası- Veb saytını işlətmək üçün bir balon xidməti. lazımsız, amma giriş sistemi istədiyim üçün (bütün məlumatlar bütün istifadəçilər üçün eyni olsa da) verilənlər bazama daxil etmək qərarına gəldim.

Github -dan layihə kodumu layihə qovluğuna kopyalaya bilərsiniz. İstifadəçi qovluğuna gedin və işləyin: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/

Sonra hava istasyonundakı conf qovluğuna və qovluqdakı bütün fayllara gedin.

'USERNAME' ilə əlaqəli bütün hadisələri istifadəçi adınıza dəyişdirin

Həm də.service fayllarının hər ikisini systemd -ə kopyalamalı və bunları belə sınamalısınız:

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

sudo systemctl status hava istasyonu-*

Sonra nginx konfiqurasiyasını redaktə etməliyik.

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 nginx.servicesudo systemctl status nginx.service yenidən başladın

Hər şey yaxşı gedirsə, bunu işə salmalı və terminalda bir html çap etməlisiniz:

wget -qO - localhost

İndi hər şey yaxşı işləməlidir. Əvvəldən təyin etdiyimiz moruq Pi-nin IP ünvanına girə və giriş ekranı ilə qarşılana bilərsiniz.

Addım 5: Kassa

Mühafizə
Mühafizə
Mühafizə
Mühafizə
Mühafizə
Mühafizə

İndi hər şey işlədiyi üçün hər şeyi bir şeyə qoymalıyıq.

Şəffaf bir qapaqlı sadə bir plastik qutu seçdim, üstünə anemometr quraşdırılmışdır və DHT22 və BMP280 sensorlarını ehtiva edən ikinci dərəcəli kiçik bir konteyner.

Bu sensorlar ayrı bir qabın içərisinə quraşdırılmışdır, çünki onlar açıq havada olmalıdır (yağmur yağmadan), amma moruq pi -nin olması lazım deyil.

Gördüyünüz kimi, su keçirməməsi üçün kənarlarına bir az silikon əlavə etdim və içindəki təmiz havanı almaq üçün yuxarı qabda bir neçə delik açdım.

Ümid edirəm bir hava istasyonu qurmaq üçün bələdçimdən zövq aldınız, ilk dəfə belə bir bələdçi yazdığım üçün kənarları bir az kobud ola bilər, amma ümid edirəm ki, bəyənmisiniz:)

Tövsiyə: