
Isi kandungan:
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:01


Untuk projek sekolah, kami harus membuat peranti IoT dengan laman web untuk memvisualisasikan maklumat yang dikumpulkan dengan cara yang baik. Saya memilih untuk membuat weatherstation yang dikuasakan oleh Raspberry Pi 3 menjalankan Flask untuk laman web responsif, MySQL (MariaDB) untuk pangkalan data saya dan skrip python untuk mengumpulkan maklumat dengan semua sensor saya. Saya mengambil masa sekitar 2 minggu dari awal hingga akhir hingga selesai.
Kami didorong untuk membuat petunjuk untuk berkongsi kemajuan kami dengan seluruh komuniti DIY, jadi ini dia!
Langkah 1: Pemilihan Bahagian, Alat dan Bahan
Mula-mula saya perlu mengetahui jenis sensor yang penting untuk stesen cuaca. Saya memutuskan saya mahu mengukur semua data berikut:
- Suhu
- Tekanan udara
- Kelembapan
- Kelajuan angin
- Indeks UV
Berikut adalah semua Alat, Bahan dan Bahagian yang saya gunakan
Bahagian:
- DHT22 / AM2302 untuk bacaan suhu dan kelembapan. (15 EUR)
- Adafruit BMP280 untuk Tekanan dan suhu Barometrik. (12 EUR)
- Adafruit SI1145 untuk mengukur Indeks UV. (10 EUR)
- Anafometer Analog Adafruit untuk mengukur kelajuan angin (50 EUR)
- MCP3008 untuk menukar isyarat analog ke digital.
- Resistor 10kOhm sebagai penarik untuk AM2302 saya.
- Adaptor 9V untuk 'menghidupkan' Anemometer
- Penyesuai 5V untuk Raspberry Pi
- Raspberry Pi 3 (Mana-mana Pi mesti mencukupi)
Bahan:
Bekas plastik untuk menyimpan segala barang dan menjadikannya tahan hujan
Alat:
- Besi Pateri dan Timah
- Multimeter
- Silikon
- Sebilangan pita
Oleh itu, secara keseluruhan, semua sensor berharga saya kira-kira 85 Euro, yang cukup curam tetapi saya benar-benar mahu memasukkan meter kelajuan angin yang betul jadi saya fikir ia sangat berbaloi.
Anda boleh mendapatkan senarai yang lebih terperinci dengan kedai di mana anda boleh membeli semuanya di dalam pdf di bawah:)
Langkah 2: Menyambungkan Perkakasan Kami


Sudah tentu kita perlu menghubungkan sensor kita ke Raspberry Pi kita. Di atas anda dapat melihat skema fritzing yang boleh anda ikuti untuk menghubungkan semuanya dengan betul.
Pada skema anda dapat melihat bateri 9V digunakan sebagai sumber kuasa untuk anemometer kami, ini paling baik digunakan untuk pengujian hanya kerana ia tidak akan bertahan terlalu lama, anda boleh mengganti bateri 9V untuk mana-mana sumber kuasa 7-12V yang anda pilih.
Sensor SI1145 dan BMP280 kami akan dikendalikan menggunakan protokol I2C kerana ini adalah yang paling mudah untuk digunakan dan memerlukan lebih sedikit wayar.
Anemometer pada skematik ditunjukkan sebagai LDR di sini kerana ia mempunyai pendawaian yang hampir sama dengan anemometer dan saya tidak dapat mencari anemometer sebenar untuk meletakkan skema saya yang sangat menarik:)
Langkah 3: Menghubungkan Semuanya: Menyiapkan Pi

Pertama sekali, kita mesti memastikan kita berhubung dengan internet.
Untuk melakukan ini di terminal, anda boleh pergi ke fail wpa_supplicant anda dengan menjalankan perintah berikut: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Dalam fail anda boleh menambahkan ini:
network = {ssid = "Your_Wifi_SSID" psk = "Your_Wifi_Password" key_mgmt = WPA-PSK
}
Anda juga boleh memilih untuk menetapkan alamat IP anda ke statik untuk akses yang lebih mudah pada masa akan datang. Untuk melakukan ini, anda perlu pergi ke fail dhcpcd.conf dengan menjalankan perintah ini: sudo nano /etc/dhcpcd.conf
Tambahkan ini dalam fail:
antara muka wlan0static ip_address = 192.168.0.100 / 24
Kemudian kami akan memastikan pakej yang sudah dipasang pada Pi kami dikemas kini sepenuhnya:
sudo apt-get update && sudo apt-get upgrade
Ini mungkin memerlukan sedikit masa, jadi jangan risau
Anda perlu mengaktifkan protokol I2C dan SPI di dalam konfigurasi raspi. Anda boleh melakukannya dengan menjalankan perintah ini:
sudo raspi-config
Kemudian pergi ke pilihan antara muka, dan aktifkan kedua-duanya, I2C dan SPI
Mula-mula anda perlu membuat direktori yang anda mahu masukkan projek anda (kami akan menamakannya 'weatherstation'):
cd ~ mkdir weatherstationcd weatherstation
Kemudian kami menyediakan persekitaran maya python3 kami:
python3 -m pip install --upgrade pip setuptools wheel virtualenvpython3 -m venv --system-site-package envsource env / bin / activatepython -m pip install mysql-connector-python Flask flask-mysql mysql-connector-python passlib mysql-penyambung -python-rf
Kemudian kita perlu memasang beberapa pakej lain yang diperlukan untuk menjadikan segala sesuatu berfungsi dengan betul:
sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3
Sekarang kami akan membuat pangkalan data kami:
Kami masih perlu menyediakan pangkalan data kami. Anda boleh melakukannya dengan menjalankan fail kod / sql yang terletak di folder 'sql' seperti ini:
sudo mariadb <sql / db_init.sql
Pertanyaan sql akan membuat jadual yang kita perlukan dan juga membuat sebilangan pengguna menjadikan pangkalan data kita sedikit lebih selamat.
Ini juga akan memasukkan beberapa data sejarah sampel ke dalam pangkalan data kami untuk memastikan laman web kami memaparkan semuanya dengan betul apabila belum ada data sebenar yang dikumpulkan.
Untuk memasang Adafruit_GPIO dan MyPyDHT, anda perlu melakukan beberapa perkara lagi. Mula-mula kembali ke folder penggunaan anda dan kemudian:
git clone https://github.com/adafruit/Adafruit_Python_GPIO.gitcd Adafruit_Python_GPIO sudo python3 setup.py pasang
cd..git clone --recursive https://github.com/freedom27/MyPyDHTsudo python3 setup.py pasang
Langkah 4: Perisian / Kod



Kita perlu membuat back-end untuk weatherstation, yang merangkumi:
- Pangkalan data mariadb untuk menyimpan bacaan sensor saya dan beberapa perkara kecil lain - Perkhidmatan termos untuk menjalankan laman web. - Perkhidmatan lain yang menjalankan fail Python yang membaca semua sensor. Di atas anda dapat melihat penyediaan pangkalan data saya yang sangat mudah. Jadual pengguna adalah tidak perlu, tetapi kerana saya mahukan sistem log masuk kerana saya (walaupun semua data adalah sama untuk semua pengguna) saya memutuskan untuk memasukkannya ke dalam pangkalan data saya.
Anda boleh meneruskan dan mengklon kod projek saya dari Github ke folder projek anda. Pergi ke 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 fail di folder tersebut.
Tukar semua kejadian 'USERNAME' ke nama pengguna anda
Anda juga perlu menyalin kedua-dua fail perkhidmatan 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 weatherstation- *
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 mulakan semula nginx.servicesudo systemctl status nginx.service
Sekiranya semuanya berjalan lancar, anda seharusnya dapat menjalankannya dan mencetak beberapa html di terminal:
wget -qO - localhost
Semuanya mesti berfungsi dengan baik sekarang. Anda boleh melayari alamat IP raspberry Pi yang kami tetapkan pada awalnya dan disambut dengan skrin log masuk.
Langkah 5: Kandang



Sekarang semuanya berfungsi, kita perlu memasukkan keseluruhannya ke dalam sesuatu.
Saya memilih kotak plastik sederhana dengan penutup lutsinar. Anemometer dipasang di atasnya, begitu juga bekas kecil sekunder yang mengandungi sensor DHT22 dan BMP280.
Sensor ini dipasang di dalam bekas yang berasingan kerana mereka harus berada di udara terbuka (tanpa hujan), tetapi raspberry pi tidak semestinya.
Seperti yang anda lihat, saya menambahkan beberapa silikon di sekitar tepi untuk menjadikannya kalis air. Saya juga menggerudi beberapa lubang di bekas atas untuk mendapatkan udara segar di dalamnya.
Saya harap anda menikmati panduan saya mengenai cara membina jalan weatherstation, ini mungkin sedikit kasar kerana ini pertama kali saya menulis panduan seperti ini, tetapi saya harap anda tetap menyukainya:)
Disyorkan:
Tarik dan Paparkan Data dengan Ambiently Dari Mana-mana Laman Web Melalui Wifi (Petunjuk Lampu Utara) Dengan NodeMcu: 6 Langkah

Tarik dan Paparkan Data Secara Ambien Dari Mana-mana Laman Web Melalui Wifi (Petunjuk Lampu Utara) Dengan NodeMcu: Motivasi Saya: Saya telah melihat BANYAK arahan untuk menyiapkan / menggunakan NodeMCU (dibina pada modul ESP8266) untuk membuat projek IoT (internet of things) . Walau bagaimanapun, sangat sedikit tutorial ini yang mempunyai semua butiran / kod / rajah untuk orang baru yang sangat
Blinds Control Dengan ESP8266, Integrasi Laman Utama Google dan Openhab dan Kawalan Web: 5 Langkah (dengan Gambar)

Blinds Control Dengan ESP8266, Integrasi Rumah dan Openhab Google dan Kontrol Web: Dalam Instruksional ini saya menunjukkan kepada anda bagaimana saya menambah automasi pada tirai saya. Saya mahu dapat menambah dan mengeluarkan automasi, jadi semua pemasangan terpasang. Bahagian utamanya adalah: Motor stepper Driver stepper dikendalikan bij ESP-01 Gear dan pemasangan
Jalur LED Dikawal Laman Web / WiFi Dengan Raspberry Pi: 9 Langkah (dengan Gambar)

Jalur LED Dikendalikan Laman Web / WiFi Dengan Raspberry Pi: Latar Belakang: Saya remaja, dan telah merancang dan memprogramkan projek elektronik kecil selama beberapa tahun terakhir, bersama-sama dengan menyertai pertandingan robotik. Saya baru-baru ini berusaha mengemas kini persediaan meja saya, dan saya memutuskan bahawa penambahan yang bagus
Tutorial IO Pemandu Web Menggunakan Laman Web Langsung dan Contoh Kerja: 8 Langkah

Tutorial IO Pemandu Web Menggunakan Laman Web Langsung dan Contoh Bekerja: Tutorial IO Pemandu Web Menggunakan Laman Web Langsung Dan Contoh Bekerja Kemas kini Terakhir: 07/26/2015 (Selalunya periksa semula kerana saya mengemas kini arahan ini dengan lebih terperinci dan contoh) Latar belakang Saya baru-baru ini cabaran menarik yang dikemukakan kepada saya. Saya perlu
Melayari Laman Web Ajax Dengan Borang Log Masuk Asinkron: 6 Langkah (dengan Gambar)

Melayari Laman Web Ajax Dengan Borang Log Masuk Asinkron: Masalahnya: Alat labah-labah tidak membenarkan pengesahan masuk AJAX. Instruksional ini akan menunjukkan kepada anda cara log masuk melalui borang AJAX menggunakan Python dan modul yang disebut Mechanize. Labah-labah adalah program automasi web yang semakin popular