Daftar Isi:

RPi Weatherstation Dengan Situs Web Responsif: 5 Langkah
RPi Weatherstation Dengan Situs Web Responsif: 5 Langkah

Video: RPi Weatherstation Dengan Situs Web Responsif: 5 Langkah

Video: RPi Weatherstation Dengan Situs Web Responsif: 5 Langkah
Video: Raspberry Pi Project: Online Weather Data Log with MySQL and PHP with Sense Hat. 2024, November
Anonim
RPi Weatherstation Dengan Situs Web Responsif
RPi Weatherstation Dengan Situs Web Responsif
RPi Weatherstation Dengan Situs Web Responsif
RPi Weatherstation Dengan Situs Web Responsif

Untuk proyek sekolah, kami harus membuat perangkat IoT dengan situs web untuk memvisualisasikan informasi yang dikumpulkan dengan cara yang baik. Saya memilih untuk membuat stasiun cuaca yang didukung oleh Raspberry Pi 3 yang menjalankan Flask untuk situs web responsif, MySQL (MariaDB) untuk database saya dan skrip python untuk mengumpulkan info dengan semua sensor saya. Saya membutuhkan waktu sekitar 2 minggu dari awal hingga selesai hingga selesai.

Kami didorong untuk membuat instruksi untuk membagikan kemajuan kami dengan komunitas DIY lainnya, jadi ini dia!

Langkah 1: Pemilihan Bagian, Alat dan Bahan

Pertama, saya perlu mencari tahu jenis sensor apa yang penting untuk stasiun cuaca. Saya memutuskan untuk mengukur semua data berikut:

  • Suhu
  • Tekanan udara
  • Kelembaban
  • Kecepatan angin
  • Indeks uv

Berikut adalah semua Alat, Bahan dan Bagian yang saya gunakan

Bagian:

  • DHT22/AM2302 untuk pembacaan suhu dan kelembapan. (15 EUR)
  • Adafruit BMP280 untuk Tekanan dan Suhu Barometrik. (12 EUR)
  • Adafruit SI1145 untuk mengukur Indeks UV. (10 EUR)
  • Adafruit Analog Anemometer untuk mengukur kecepatan angin (50 EUR)
  • Sebuah MCP3008 untuk mengubah sinyal analog ke digital.
  • Resistor 10kOhm sebagai pull-up untuk AM2302 saya.
  • Adaptor 9V untuk 'menyalakan' Anemometer
  • Adaptor 5V untuk Raspberry Pi
  • Raspberry Pi 3 (Pi apa pun sudah cukup)

Bahan:

Wadah plastik untuk menyimpan segala sesuatu dan membuatnya tahan hujan

Peralatan:

  • Besi Solder dan Timah
  • Multimeter
  • silikon
  • Beberapa rekaman

Jadi total semua sensor berharga sekitar 85 Euro, yang cukup curam tapi saya benar-benar ingin memasukkan pengukur kecepatan angin yang tepat jadi saya pikir itu sangat berharga.

Anda dapat menemukan daftar yang lebih rinci dengan toko-toko tempat Anda dapat membeli semuanya, dalam pdf di bawah ini:)

Langkah 2: Menghubungkan Perangkat Keras Kami

Menghubungkan Perangkat Keras Kami
Menghubungkan Perangkat Keras Kami
Menghubungkan Perangkat Keras Kami
Menghubungkan Perangkat Keras Kami

Tentu saja kita perlu menghubungkan sensor kita ke Raspberry Pi. Di atas Anda dapat melihat skema fritzing yang dapat Anda ikuti untuk menghubungkan semuanya dengan benar.

Pada skema Anda dapat melihat baterai 9V digunakan sebagai sumber daya untuk anemometer kami, ini paling baik digunakan untuk pengujian saja karena tidak akan bertahan terlalu lama, Anda dapat mengganti baterai 9V untuk sumber daya 7-12V apa pun yang Anda memilih.

Sensor SI1145 dan BMP280 kami akan dikontrol menggunakan protokol I2C karena ini adalah yang termudah untuk digunakan dan membutuhkan lebih sedikit kabel.

Anemometer pada skema ditampilkan sebagai LDR di sini karena memiliki kabel yang hampir sama dengan anemometer dan saya tidak dapat menemukan anemometer asli untuk dipasang pada skema fritzing saya:)

Langkah 3: Menghubungkan Everthing: Menyiapkan Pi

Menghubungkan Segalanya: Menyiapkan Pi
Menghubungkan Segalanya: Menyiapkan Pi

Pertama-tama, kita harus memastikan bahwa kita terhubung ke internet.

Untuk melakukan ini di terminal, Anda dapat membuka file wpa_supplicant Anda dengan menjalankan perintah berikut: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Dalam file Anda dapat menambahkan ini:

network={ssid= "Wifi_SSID Anda" psk="Kata Sandi_Wifi_Anda" key_mgmt=WPA-PSK

}

Anda juga dapat memilih untuk mengatur alamat IP Anda ke statis untuk akses yang lebih mudah di masa mendatang. Untuk melakukan ini, Anda perlu membuka file dhcpcd.conf dengan menjalankan perintah ini: sudo nano /etc/dhcpcd.conf

Tambahkan ini di file:

antarmuka wlan0static ip_address=192.168.0.100/24

Kemudian kita akan memastikan paket-paket yang sudah terinstal di Pi kita diperbarui sepenuhnya:

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

Ini mungkin memakan waktu cukup lama, jadi jangan khawatir

Anda harus mengaktifkan protokol I2C dan SPI di dalam raspi config. Anda dapat melakukannya dengan menjalankan perintah ini:

sudo raspi-config

Lalu buka opsi antarmuka, dan aktifkan keduanya, I2C dan SPI

Pertama, Anda perlu membuat direktori tempat Anda ingin meletakkan proyek Anda (kami akan menamakannya 'weatherstation'):

cd ~mkdir weatherstationcd weatherstation

Kemudian kami mengatur lingkungan virtual python3 kami:

python3 -m pip install --upgrade 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

Kemudian kita perlu menginstal beberapa paket lain yang diperlukan untuk membuat semuanya berfungsi dengan benar:

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

Sekarang kita akan membuat database kita:

Kami masih perlu menyiapkan database kami. Anda dapat melakukan ini dengan menjalankan file kode/sql yang terletak di folder 'sql' seperti ini:

sudo mariadb < sql/db_init.sql

Query sql akan membuat tabel yang kita butuhkan dan juga membuat beberapa pengguna untuk membuat database kita sedikit lebih aman.

Ini juga akan memasukkan beberapa data riwayat sampel ke dalam basis data kami untuk memastikan situs web kami menampilkan semuanya dengan benar ketika belum ada data nyata yang dikumpulkan.

Untuk menginstal Adafruit_GPIO dan MyPyDHT Anda perlu melakukan beberapa hal lagi. Pertama kembali ke folder penggunaan Anda dan kemudian:

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

Langkah 4: Perangkat Lunak / Kode

Perangkat Lunak / Kode
Perangkat Lunak / Kode
Perangkat Lunak / Kode
Perangkat Lunak / Kode
Perangkat Lunak / Kode
Perangkat Lunak / Kode

Kita perlu menyiapkan back-end untuk stasiun cuaca, yang meliputi:

- Database mariadb untuk menyimpan pembacaan sensor saya dan beberapa hal kecil lainnya- Layanan labu untuk menjalankan situs web.- Layanan lain yang menjalankan file Python yang membacakan semua sensor. Di atas Anda dapat melihat pengaturan database saya yang sangat sederhana. Tabel pengguna adalah tidak perlu, tetapi karena saya menginginkan sistem login karena saya (walaupun semua datanya sama untuk semua pengguna) saya memutuskan untuk memasukkannya ke dalam database saya.

Anda dapat melanjutkan dan mengkloning kode proyek saya dari Github ke folder proyek Anda. Buka folder pengguna Anda dan jalankan: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/

Kemudian arahkan ke folder conf di weatherstation dan semua file di folder tersebut.

Ubah semua kemunculan 'USERNAME' menjadi nama pengguna Anda

Anda juga perlu menyalin kedua file.service ke systemd dan mengujinya seperti ini:

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 stasiun cuaca-*

Kita kemudian perlu mengedit konfigurasi nginx.

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 mulai ulang nginx.servicesudo systemctl status nginx.service

Jika semuanya berjalan dengan baik, Anda harus dapat menjalankan ini dan mencetak beberapa html di terminal:

wget -qO - localhost

Semuanya seharusnya berfungsi dengan baik sekarang. Anda dapat menjelajahi alamat IP raspberry Pi Anda yang kami atur di awal dan disambut dengan layar login.

Langkah 5: Kandang

Kandang
Kandang
Kandang
Kandang
Kandang
Kandang

Sekarang semuanya berfungsi, kita perlu memasukkan semuanya ke dalam sesuatu.

Saya memilih kotak plastik sederhana dengan penutup transparan. Anemometer dipasang di atasnya, begitu pula wadah kecil sekunder yang berisi sensor DHT22 dan BMP280.

Sensor-sensor ini dipasang di dalam wadah terpisah karena harus berada di udara terbuka (tanpa terkena hujan), tetapi raspberry pi tidak perlu.

Seperti yang Anda lihat, saya menambahkan beberapa silikon di sekitar tepinya untuk membuatnya tahan air. Saya juga mengebor beberapa lubang di wadah atas untuk mendapatkan udara segar di dalamnya.

Saya harap Anda menikmati panduan saya tentang cara membangun stasiun cuaca, mungkin sedikit kasar karena ini pertama kalinya saya menulis panduan seperti ini, tapi saya harap Anda tetap menyukainya:)

Direkomendasikan: