Daftar Isi:
- Langkah 1: Pemilihan Bagian, Alat dan Bahan
- Langkah 2: Menghubungkan Perangkat Keras Kami
- Langkah 3: Menghubungkan Everthing: Menyiapkan Pi
- Langkah 4: Perangkat Lunak / Kode
- Langkah 5: Kandang
Video: RPi Weatherstation Dengan Situs Web Responsif: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
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
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
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
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
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:
Cara Membuat Situs Web (Panduan Langkah-demi-Langkah): 4 Langkah
Cara Membuat Situs Web (Panduan Langkah-demi-Langkah): Dalam panduan ini, saya akan menunjukkan kepada Anda bagaimana sebagian besar pengembang web membangun situs mereka dan bagaimana Anda dapat menghindari pembuat situs web mahal yang seringkali terlalu terbatas untuk situs yang lebih besar.Saya juga membantu Anda menghindari beberapa kesalahan yang saya lakukan ketika saya memulai
Situs Web/WiFi Controlled LED Strip Dengan Raspberry Pi: 9 Langkah (dengan Gambar)
Situs Web/WiFi Controlled LED Strip Dengan Raspberry Pi: Latar Belakang:Saya seorang remaja, dan telah merancang dan memprogram proyek elektronik kecil selama beberapa tahun terakhir, bersama dengan berpartisipasi dalam kompetisi robotika. Saya baru-baru ini bekerja untuk memperbarui pengaturan meja saya, dan saya memutuskan bahwa tambahan yang bagus
Tutorial IO Driver Web Menggunakan Situs Web Langsung dan Contoh Kerja: 8 Langkah
Tutorial IO Driver Web Menggunakan Situs Web Langsung dan Contoh Kerja: Tutorial Web Driver IO Menggunakan Situs Web Langsung Dan Contoh Kerja Pembaruan Terakhir: 26/07/2015(Periksa kembali sesering saya memperbarui instruksi ini dengan lebih banyak detail dan contoh)Latar BelakangSaya baru-baru ini memiliki tantangan menarik yang disajikan kepada saya. saya perlu
PixelOrgan: Strip LED DotStar yang responsif terhadap suara (dengan MicroView): 3 Langkah (dengan Gambar)
PixelOrgan: DotStar LED Strip yang responsif terhadap suara (dengan MicroView): Ini adalah benda ringan di mana input mikrofon internal ditampilkan pada strip LED DotStar 72 sehingga LED atas mewakili tinggi/sedang/rendah saat ini leves sebagai R/G/B, dan sisa LED mewakili nilai sebelumnya (sehingga kita mendapatkan
Spidering Situs Web Ajax Dengan Formulir Login Asynchronous: 6 Langkah (dengan Gambar)
Menjelajah Situs Web Ajax Dengan Formulir Masuk Asynchronous: Masalahnya: Alat Spidering tidak mengizinkan otentikasi login AJAX. Instruksi ini akan menunjukkan kepada Anda cara masuk melalui formulir AJAX menggunakan Python dan modul yang disebut Mekanisasi. Laba-laba adalah program otomatisasi web yang semakin populer