Isi kandungan:
- Langkah 1: Perkara Yang Digunakan dalam Projek Ini
- Langkah 2: Cerita
- Langkah 3: Sambungan Perkakasan
- Langkah 4: Pengaturcaraan Perisian
- Langkah 5: Operasi
Video: Melihat IoTea LoRa Solution (Kemas kini 1811): 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Internet + adalah konsep yang popular sekarang. Kali ini kami mencuba Internet plus pertanian untuk membuat kebun teh tumbuh Teh Internet.
Langkah 1: Perkara Yang Digunakan dalam Projek Ini
Komponen perkakasan
- Grove - Sensor Karbon Dioksida (MH-Z16)
- Grove - Sensor Cahaya Digital
- Grove - Sensor Debu (PPD42NS)
- Grove - Sensor Oksigen (ME2-O2-Ф20)
- Sensor Kelembapan & Suhu Tanah
- LoRa LoRaWAN Gateway - Kit 868MHz dengan Raspberry Pi 3
- Grove - Sensor Temp & Humi & Barometer (BME280)
Aplikasi perisian dan perkhidmatan dalam talian
Microsoft Visual Studio 2015
Langkah 2: Cerita
Di Gunung Mengding di timur laut Ya'an, Sichuan, rabung gunung berjalan ke barat ke timur di lautan hijau. Ini adalah pemandangan yang paling biasa bagi Deng yang berusia 36 tahun, salah satu pembuat teh Mengding dari generasinya, dengan ladang seluas 50mu (= 3.3 hektar) yang terletak di ketinggian 1100m dari permukaan laut. Deng berasal dari keluarga pembuat teh, tetapi meneruskan warisan keluarga bukanlah tugas yang mudah. "Teh kami ditanam di ketinggian tinggi dalam lingkungan organik untuk memastikan kualitinya yang sangat baik. Tetapi pada masa yang sama, kepadatan pertumbuhannya rendah, biaya tinggi dan pemula tidak merata, menjadikan teh sukar untuk menuai. Itulah sebabnya teh pegunungan biasanya merupakan hasil panen kecil dan nilainya tidak tercermin di pasar. "Selama dua tahun terakhir, Deng telah berusaha untuk meningkatkan kesedaran pengguna tentang teh gunung tinggi untuk mempromosikan nilainya. Dan ketika dia bertemu Fan, yang sedang mencari perkebunan untuk menerapkan teknologi IoTea Seeed, pencocokan sempurna untuk penyelesaian dibuat.
Langkah 3: Sambungan Perkakasan
Perkakasan projek ini boleh dibahagikan kepada 4 bahagian: Daya, Sensor, Node dan Gateway. Artikel berikut akan menunjukkan kepada anda bagaimana menyelesaikannya langkah demi langkah.
Bahagian Kuasa
Bahagian Daya terutamanya mengandungi Panel Suria dan Bateri Lithium, jika anda hanya membina projek ini untuk demonstrasi, anda boleh mengabaikannya. Atau anda boleh mengikuti tutorial sebelumnya untuk memasang kuasa nod.
Bahagian Sensor
Di Bahagian Sensor, kerana banyaknya sensor, kami menggunakan stesen cuaca, dan juga membuat pendakap Akrilik untuk memasangnya.
Seperti yang anda lihat pada gambar di atas, Sensor Cahaya Digital selalu berada di atas, sehingga dapat mengumpulkan maklumat pencahayaan. Sensor yang akan menghasilkan haba dipasang di tengah-tengah pendakap Akrilik, seperti Sensor O2, Sensor Debu dan Sensor CO2. Akhirnya, Sensor Suhu dan Kelembapan di bahagian bawah pendakap Akrilik.
Selain itu, Sensor Suhu dan Kelembapan Tanah dipasang sendiri di dalam tanah. Bahagian Node
Node Part adalah LoRaWan Seeeduino yang dipasang di Kotak Kalis Air, ia bersambung ke kuasa dan sensor melalui Sendi Air. Antaranya, Dust Sensor menyambung ke pin digital LoRaWan D3, CO2 Sensor menyambung ke pin D4 & D5, Soil Sensor menyambung ke pin D6 & D7, O2 Sensor menyambung ke pin analog A1 dan Light Sensor & Barometer Sensor menyambung ke port I2C.
CATATAN: Perintang 10k harus ditambahkan antara kabel Biru (Data) Soil Sensor dan kabel Merah (Vcc).
Seeeduino LoRaWan mengumpulkan nilai sensor sekali sekala, dan menghantarnya ke Gateway melalui LoRa. Format data seperti di bawah:
{
[0], / * Suhu udara (℃) * / [1], / * Kelembapan udara (%) * / [2], / * Ketinggian (m) bait tinggi * / [3], / * Ketinggian (m) byte rendah * / [4], / * kepekatan CO2 (PPM) bait tinggi * / [5], / * kepekatan CO2 (PPM) bait rendah * / [6], / * Kepekatan habuk (pcs / 0.01cf) bait tinggi * / [7], / * Kepekatan habuk (pcs / 0.01cf) byte rendah * / [8], / * Intensiti cahaya (lux) bait tinggi * / [9], / * Intensiti cahaya (lux) bait rendah * / [10], / * Kepekatan O2 (%) * / [11], / * Suhu tanah (℃) * / [12], / * Kelembapan tanah (%) * / [13], / * Voltan bateri (V) * / [14] / * Kod ralat sensor * /}
Setiap bit dalam Kod Ralat Sensor mempunyai makna yang berbeza, seperti di bawah:
{
bit0: 1; / * Ralat Sensor Barometer * / bit1: 1; / * Ralat Sensor CO2 * / bit2: 1; / * Ralat Sensor Debu * / bit3: 1; / * Ralat Sensor Cahaya * / bit4: 1; / * Ralat Sensor O2 * / bit5: 1; / * Ralat Sensor Tanah * / terpelihara: 2; / * Terpelihara * /}
Bahagian Gerbang
Gateway Part adalah Raspberry Pi yang memasang modul Gateway RHF0M301-868 dan PRI 2 Bridge RHF4T002, dipasang di Kotak Kalis Air dan disambungkan ke Kuasa & Kamera USB melalui Air Sendi. Kerana menggunakan firmware khusus, ikuti Seeed Wiki untuk mengkonfigurasinya.
Langkah 4: Pengaturcaraan Perisian
Sebagai Sambungan Perkakasan, Pengaturcaraan Perisian juga dapat dipisahkan, dapat dibagi menjadi 3 bahagian: Node, Gateway dan Laman Web.
Bahagian Node
Sebilangan besar pemacu yang diperlukan Bahagian Node sudah ada dalam folder origin_driver. Perpustakaan yang mengikuti perlu dipasang secara manual:
Adafruit_ASFcore
Kerana projeknya rumit, kami mengesyorkan anda menggunakan Microsoft Visual Studio dan bukannya Arduino IDE. Plugin yang disebut Visual Micro dapat membantu anda membuat projek Arduino dengan menggunakan Visual Studio, klik di sini untuk maklumat lebih lanjut.
Untuk kebolehbacaan dan kesediaan yang lebih baik, kami menggunakan Pengaturcaraan Berorientasikan Objek kali ini. Gambarajah kelas projek ini seperti di bawah:
Untuk sensor tersebut sudah mempunyai pemacu OOP, kami membungkus semula untuk menyesuaikan projek ini, untuk yang lain, kami menulis semula pemacu mereka dengan menggunakan OOP. Kelas Sensor di lapisan middleware digunakan untuk menyatukan antara muka sensor sebenar, misalnya, sensor barometer dapat mengumpulkan suhu, kelembapan dan ketinggian pada waktu yang sama, sehingga memiliki 3 antarmuka untuk memperoleh suhu, kelembapan dan ketinggian. Tetapi mereka mempunyai nama kaedah perbezaan, yang akan menjadikan program memperoleh nilai sensor lebih rumit, seperti ini:
barometer-> getTemperature ();
barometer-> getHumidity (); barometer-> getAltitude (); //… another_sensor-> getSomeValue (); //…
Tetapi menggunakan OOP, ia kelihatan seperti ini:
untuk (auto i = 0; i getValue ();
}
Kami juga mengemas kelas Aplikasi, menerapkan antarmuka IApplication, kaedah setup () dan loop () dalam kaedah IoTea.ino dapat memanggil setup () dan loop () dalam objek Aplikasi.
CATATAN: Serial USB digunakan untuk melakukan debug SAHAJA. Setelah melakukan debug, sila beri komen bahawa ia menginisialisasi kod dalam kaedah setup ().
Bahagian Gerbang
Program Python Gateway Part dalam folder rumah digunakan untuk mengambil gambar dan memuat naiknya ke Amazon S3 Server setiap jam. Sebelum menggunakannya, pastikan fswebcam sudah terpasang di Raspberry Pi anda:
sudo apt-get kemas kini && sudo apt-get pasang fswebcam
Sekiranya anda ingin memuat naik foto, konfigurasikan AWS anda dengan mengikuti langkah-langkah. Pertama, pasang AWS SDK dan AWS CLI ke Raspberry Pi anda dengan menggunakan arahan berikut:
sudo pip pasang boto3
sudo pip pasang awscli
dan kemudian, jalankan AWS CLI:
sudo aws konfigurasi
Konfigurasikan ID Kunci Akses AWS anda, ID Akses Rahsia AWS dan nama wilayah Lalai.
Sekiranya anda tidak mahu memuat naik foto anda, anda boleh melangkau langkah konfigurasi AWS dan kod komen mengenai memuat naik di photo.py. Untuk menjalankan program ini setelah boot Raspberry Pi setiap kali, anda boleh membuat foto nama file di /etc/init.d, dan menuliskan kod berikut kepadanya.
#! / bin / bash
# /etc/init.d/photo ### BEGIN INIT INFO # Menyediakan: seeed_photo # Required-Start: $ remote_fs $ syslog # Required-Stop: $ remote_fs $ syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Penerangan Ringkas: pengambilan gambar initscript # Penerangan: Perkhidmatan ini digunakan untuk menguruskan pengambilan gambar ### AKHIR INIT INFO case "$ 1" pada permulaan) gema "Mula mengambil foto" /home/rxhf/photo.py &;; berhenti) gema "Berhenti mengambil gambar" bunuh $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) gema "Penggunaan: perkhidmatan bermula foto | berhenti" keluar 1;; esac keluar 0
menetapkan kebenaran pelaksanaan
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
dan mengujinya
sudo /etc/init.d/photo permulaan
Sekiranya tidak ada masalah, hentikan dan tambahkan ke aplikasi permulaan
sudo /etc/init.d/photo berhenti
lalai foto sudo update-rc.d
CATATAN: Sekiranya anda ingin memulakan gerbang selepas boot Raspberry Pi, tambahkan kod permulaan gerbang di Seeed Wiki ke /etc/rc.local, biarkan seperti:
#! / bin / sh -e
# # rc.local # # Skrip ini dilaksanakan pada akhir setiap runlevel multiuser. # Pastikan bahawa skrip akan "keluar 0" pada kejayaan atau nilai # lain pada kesilapan. # # Untuk mengaktifkan atau mematikan skrip ini, ubah saja eksekusi # bit. # # Secara lalai skrip ini tidak melakukan apa-apa. # Cetak alamat IP _IP = $ (nama host -I) || benar jika ["$ _IP"]; kemudian printf "Alamat IP saya adalah% s / n" "$ _IP" fi cd /home/rxhf/loriot/1.0.2 sudo systemctl stop pktfwd sudo gwrst wget https://cn1.loriot.io/home/gwsw/loriot -risinghf-r… -O loriot-gw.bin chmod + x loriot-gw.bin./loriot-gw.bin -f -s cn1.loriot.io keluar 0
Laman web
Kami menyebarkan laman web di CentOS 7. Langkah-langkah berikut akan menunjukkan kepada anda cara menyebarkan.
Langkah 1. Pasang Python3
sudo yum -y pasang pelepasan epel
sudo yum -y install python36
Langkah 2. Pasang Python pip dan persekitaran maya
wget
sudo python36 get-pip.py sudo pip pasang virtualenv
Setp 3. Klon laman web kami dari GitHub
sudo yum -y pasang git
git klon
Langkah 4. Buat dan aktifkan persekitaran maya
virtualenv -p python36 iotea-hb
cd iotea-hb sumber bin / aktifkan
Langkah 5. Pasang perpustakaan yang bergantung
pip memasang pymysql
pip install dbutils pip install flask pip install websocket-client pip install cofigparser
Langkah 6. Buat pangkalan data
sudo yum -y pasang mariadb mariabd-server
sudo systemctl membolehkan mariadb sudo systemctl memulakan mariadb mysql -uroot -p
dan kemudian gunakan iotea_hb.sql untuk membuat jadual.
Langkah 7. Buat db.ini, dan tuliskan kod-kod ini kepadanya
[db]
db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
ubah jalan db.ini dalam db.py
# dalam db.py
# cf.read ("/ data / www / python3_iotea_hb / iotea / conf / db.ini") cf.read ("/ rumah // iotea-hb / db.ini")
Langkah 8. Tukar port di app.py dan mulakan laman web:
# dalam app.py
# app.run (debug = True, port = 6000) app.run (debug = True, port = 8080)
# di terminal
pip memasang gunicorn gunicorn -w 5 -b 0.0.0.0:8080 aplikasi: app
sekarang lawati 127.0.0.1:8080 di penyemak imbas web anda, anda dapat melihat laman web, tetapi data masa nyata tidak dipaparkan.
Langkah 9. Dapatkan data loriot
Buka terminal lain, masukkan semula persekitaran maya dan mulakan aplikasi loriot:
cd iotea-hb
tong sumber / aktifkan gunicorn loriot: app
Tunggu sebentar, anda akan melihat data yang dipaparkan di laman web, atau anda boleh menukar wss di loriot.py:
# dalam loriot.py
#ws = create_connection ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = create_connection ()
Langkah 5: Operasi
Anda boleh melayari laman web kami untuk melihat data masa nyata:
- Di Ya'an
- Untuk Demonstrasi
Disyorkan:
Penjejak Kemas Kini Covid-19 Menggunakan Langkah ESP8266: 9
Covid-19 Update Tracker Menggunakan ESP8266: Ini adalah projek yang menunjukkan data terkini wabak coronavirus dari pelbagai bandar di negeri-negeri India secara realtime pada paparan OLED. Penjejak status Langsung ini membantu anda memantau kemas kini covid-19 masa nyata di daerah anda. Projek ini sepenuhnya
Reka PCB Anda Menggunakan Sprint Layout 2020 Dengan Kemas Kini Baru: 3 Langkah
Reka PCB Anda Menggunakan Sprint Layout 2020 Dengan Kemas Kini Baru: Sebilangan besar pencinta elektronik membuat litar elektronik menggunakan kaedah yang berbeza. kadang-kadang kita perlu membuat PCB untuk mendapatkan output yang betul dan mengurangkan bunyi dan kemasan yang padat. hari ini kita mempunyai banyak perisian untuk merancang PCB sendiri. Tetapi masalahnya paling banyak
Robot Media Blu (Kemas kini): 7 Langkah
Blu Media Robot (Kemas kini): blu adalah robot yang berfungsi dengan motherboard makeblock dan raspberry untuk elektronik untuk senarai bahagian yang boleh anda beli dari makeblock seperti saya sebagai permulaan, sekarang saya mempunyai pencetak 3d (wanahoa i3 +) dan anda boleh memuat turun bahagian yang berbeza untuk mencetaknya pada t
Kipas ESP8266 POV Dengan Jam dan Halaman Web Teks Kemas kini: 8 Langkah (dengan Gambar)
Kipas ESP8266 POV Dengan Jam dan Halaman Web Teks Kemas kini: Ini adalah kelajuan berubah-ubah, POV (Persistence Of Vision), Kipas yang secara berkala memaparkan waktu, dan dua pesanan teks yang dapat dikemas kini " dengan cepat " Kipas POV juga pelayan web satu halaman yang membolehkan anda menukar dua teks saya
Melihat IoTea LoRa Solution (dengan Azure, Kemas kini 1812): 5 Langkah
Dilihat IoTea LoRa Solution (dengan Azure, Update 1812): Microsoft Azure adalah perkhidmatan cloud yang memberikan kekuatan pengkomputeran yang lebih hebat dan stabil. Kali ini kami cuba menghantar data IoTea kami ke dalamnya