Daftar Isi:
- Langkah 1: Hal-hal yang Digunakan dalam Proyek Ini
- Langkah 2: Cerita
- Langkah 3: Koneksi Perangkat Keras
- Langkah 4: Pemrograman Perangkat Lunak
- Langkah 5: Operasi
Video: Lihat Solusi IoTea LoRa (Pembaruan 1811): 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Internet+ adalah konsep yang populer sekarang. Kali ini kami mencoba Internet plus pertanian untuk membuat kebun teh berkembang menjadi Teh Internet.
Langkah 1: Hal-hal yang Digunakan dalam Proyek Ini
Komponen perangkat keras
- Grove - Sensor Karbon Dioksida (MH-Z16)
- Grove - Sensor Cahaya Digital
- Grove - Sensor Debu PPD42NS)
- Grove - Sensor Oksigen (ME2-O2-Ф20)
- Sensor Kelembaban & Suhu Tanah
- LoRa LoRaWAN Gateway - Kit 868MHz dengan Raspberry Pi 3
- Grove - Sensor Suhu & Humi & Barometer (BME280)
Aplikasi perangkat lunak dan layanan online
Microsoft Visual Studio 2015
Langkah 2: Cerita
Di Gunung Mengding di timur laut Ya'an, Sichuan, punggungan gunung membentang dari barat ke timur dalam lautan hijau. Ini adalah pemandangan yang paling akrab bagi Deng, 36 tahun, salah satu dari sedikit pembuat teh Mengding dari generasinya, dengan perkebunan 50mu (= 3,3 hektar) yang terletak di 1100m di atas permukaan laut. Deng berasal dari keluarga pembuat teh, tetapi meneruskan warisan keluarga bukanlah tugas yang mudah. “Teh kami ditanam di dataran tinggi di lingkungan organik untuk memastikan kualitasnya yang sangat baik. Tetapi pada saat yang sama, kepadatan pertumbuhan rendah, biaya tinggi dan tunas tidak merata, membuat teh sulit dipanen. Itu sebabnya teh gunung tinggi biasanya panen kecil dan nilainya tidak tercermin di pasar.” Selama dua tahun terakhir, Deng telah berusaha meningkatkan kesadaran konsumen akan teh gunung tinggi untuk mempromosikan nilainya. Dan ketika dia bertemu Fan, yang sedang mencari perkebunan untuk mengimplementasikan teknologi IoTea Seeed, solusi yang cocok dibuat.
Langkah 3: Koneksi Perangkat Keras
Perangkat keras proyek ini dapat dibagi menjadi 4 bagian: Daya, Sensor, Node, dan Gateway. Artikel berikut akan menunjukkan kepada Anda bagaimana menyelesaikannya langkah demi langkah.
Bagian Daya
Bagian Daya terutama berisi Panel Surya dan Baterai Lithium, jika Anda hanya membangun proyek ini untuk demonstrasi, Anda dapat mengabaikannya. Atau Anda dapat mengikuti tutorial sebelumnya untuk menginstal node power.
Bagian Sensor
Di Bagian Sensor, karena banyaknya sensor, kami menggunakan stasiun cuaca, dan juga membuat braket Akrilik untuk memasangnya.
Seperti yang Anda lihat pada gambar di atas, Sensor Cahaya Digital selalu berada di atas, sehingga dapat mengumpulkan informasi pencahayaan. Sensor yang akan menghasilkan panas dipasang di tengah braket Akrilik, seperti Sensor O2, Sensor Debu dan Sensor CO2. Terakhir, Sensor Suhu dan Kelembaban di bagian bawah braket Akrilik.
Selain itu, Sensor Suhu dan Kelembaban Tanah dipasang sendiri di dalam tanah. Bagian Node
Bagian Node adalah Seeeduino LoRaWan yang dipasang di Kotak Tahan Air, terhubung ke daya dan sensor melalui Sambungan Air. Diantaranya, Sensor Debu terhubung ke pin digital D3 LoRaWan, Sensor CO2 terhubung ke pin D4 & D5, Sensor Tanah terhubung ke pin D6 & D7, Sensor O2 terhubung ke pin analog A1 dan Sensor Cahaya & Sensor Barometer terhubung ke port I2C.
CATATAN: Resistor 10k harus ditambahkan di antara kabel Biru(Data) Sensor Tanah dan kabel Merah(Vcc).
Seeeduino LoRaWan mengumpulkan nilai sensor sesekali, dan mengirimkannya ke Gateway melalui LoRa. Format datanya seperti di bawah ini:
{
[0], /* Suhu udara(℃) */ [1], /* Kelembaban udara(%) */ [2], /* Ketinggian(m) byte tinggi */ [3], /* Ketinggian(m) byte rendah */ [4], /* Konsentrasi CO2(PPM) byte tinggi */ [5], /* Konsentrasi CO2 (PPM) byte rendah */ [6], /* Konsentrasi debu (pcs/0.01cf) byte tinggi */ [7], /* Konsentrasi debu(pcs/0.01cf) byte rendah */ [8], /* Intensitas cahaya(lux) byte tinggi */ [9], /* Intensitas cahaya(lux) byte rendah */ [10], /* Konsentrasi O2(%) */ [11], /* Suhu tanah(℃) */ [12], /* Kelembaban tanah(%) */ [13], /* Tegangan baterai(V) */ [14] /* Kode kesalahan sensor */ }
Setiap bit dalam byte Kode Kesalahan Sensor memiliki arti yang berbeda, seperti di bawah ini:
{
bit0: 1; /* Kesalahan Sensor Barometer */ bit1: 1; /* Kesalahan Sensor CO2 */ bit2: 1; /* Kesalahan Sensor Debu */ bit3: 1; /* Kesalahan Sensor Cahaya */ bit4: 1; /* Kesalahan Sensor O2 */ bit5: 1; /* Kesalahan Sensor Tanah */ dicadangkan: 2; /* Disimpan */ }
Bagian Gerbang
Bagian Gateway adalah Pi Raspberry yang terpasang modul Gateway RHF0M301–868 dan PRI 2 Bridge RHF4T002, dipasang di Kotak Tahan Air dan terhubung ke daya & Kamera USB melalui Sambungan Air. Karena menggunakan firmware khusus, ikuti Seeed Wiki untuk mengkonfigurasinya.
Langkah 4: Pemrograman Perangkat Lunak
Sebagai Koneksi Perangkat Keras, Pemrograman Perangkat Lunak juga dapat dibagi, dapat dibagi menjadi 3 bagian: Node, Gateway dan Website.
Bagian Node
Sebagian besar driver yang diperlukan Node Part sudah ada di folder origin_driver. Pustaka yang mengikuti perlu diinstal secara manual:
Adafruit_ASFcore
Karena proyeknya rumit, kami sarankan Anda menggunakan Microsoft Visual Studio daripada Arduino IDE. Sebuah plugin bernama Visual Micro dapat membantu Anda membuat proyek Arduino dengan menggunakan Visual Studio, klik di sini untuk informasi lebih lanjut.
Untuk keterbacaan dan pemeliharaan yang lebih baik, kali ini kami menggunakan Pemrograman Berorientasi Objek. Diagram kelas proyek ini terlihat seperti di bawah ini:
Untuk sensor yang sudah memiliki driver OOP, kami mengemasnya untuk mengadaptasi proyek ini, untuk yang lain, kami menulis ulang driver mereka dengan menggunakan OOP. Kelas Sensor di lapisan middleware digunakan untuk menyatukan antarmuka sensor nyata, misalnya, sensor barometer dapat mengumpulkan suhu, kelembaban dan ketinggian secara bersamaan, sehingga memiliki 3 antarmuka untuk memperoleh suhu, kelembaban dan ketinggian. Tetapi mereka memiliki nama metode yang berbeda, yang akan membuat program memperoleh nilai sensor menjadi lebih rumit, seperti ini:
barometer->getSuhu();
barometer->getHumidity(); barometer->getAltitude(); // … another_sensor->getSomeValue(); // …
Tetapi menggunakan OOP, tampilannya seperti ini:
untuk (otomatis i = 0; saya getValue();
}
Kami juga mengemas kelas Aplikasi, mengimplementasikan antarmuka IApplication, metode setup() dan loop() di IoTea.ino dapat memanggil metode setup() dan loop() di objek Aplikasi.
CATATAN: Serial USB hanya digunakan untuk men-debug. Setelah debugging, tolong beri komentar itu inisialisasi kode dalam metode setup().
Bagian Gerbang
Program Python Gateway Part di folder rumah digunakan untuk mengambil foto dan mengunggahnya ke Server Amazon S3 setiap jam. Sebelum Anda menggunakannya, pastikan fswebcam sudah terinstal di Raspberry Pi Anda:
sudo apt-get update && sudo apt-get install fswebcam
Jika Anda ingin mengunggah foto, konfigurasikan AWS Anda dengan mengikuti langkah-langkah. Pertama, instal AWS SDK dan AWS CLI ke Raspberry Pi Anda dengan menggunakan perintah ini:
sudo pip instal boto3
sudo pip install awscli
dan kemudian, jalankan AWS CLI:
konfigurasi sudo aws
Konfigurasikan AWS Access Key ID, AWS Secret Access ID, dan nama wilayah Default Anda.
Jika Anda tidak suka mengunggah foto, Anda dapat melewati langkah konfigurasi AWS dan kode komentar tentang mengunggah di photo.py. Untuk menjalankan program ini setelah setiap kali mem-boot Raspberry Pi, Anda dapat membuat nama file foto di /etc/init.d, dan menulis kode berikut ke dalamnya.
#!/bin/bash
# /etc/init.d/photo ### BEGIN INFO INIT # Menyediakan: seeed_photo # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Deskripsi Singkat: skrip pengambilan foto # Deskripsi: Layanan ini digunakan untuk mengatur pengambilan foto ### AKHIR INFO INIT case "$1" di awal) echo "Mulai mengambil foto" /home/rxhf/photo.py &;; stop) echo "Berhenti mengambil foto" kill $(ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{ print $2 }');; *) echo "Penggunaan: foto layanan mulai|berhenti" exit 1;; esac keluar 0
atur izin eksekusi
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
dan mengujinya
sudo /etc/init.d/photo start
Jika tidak ada masalah, hentikan dan tambahkan ke aplikasi startup
sudo /etc/init.d/photo stop
sudo update-rc.d foto default
CATATAN: Jika Anda ingin memulai gateway setelah boot Raspberry Pi, tambahkan kode awal gateway di Seeed Wiki ke /etc/rc.local, biarkan seperti ini:
#!/bin/sh -e
# # rc.local # # Skrip ini dijalankan di akhir setiap runlevel multiuser. # Pastikan skrip akan "keluar 0" jika berhasil atau nilai # lainnya saat kesalahan. # # Untuk mengaktifkan atau menonaktifkan skrip ini, ubah saja eksekusi # bit. # # Secara default skrip ini tidak melakukan apa-apa. # Cetak alamat IP _IP=$(hostname -I) || benar jika ["$_IP"]; lalu 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 exit 0
Situs web
Kami menerapkan situs web di CentOS 7. Langkah-langkah berikut akan menunjukkan kepada Anda cara menerapkannya.
Langkah 1. Instal Python3
sudo yum -y install epel-release
sudo yum -y instal python36
Langkah 2. Instal Python pip dan lingkungan virtual
wget
sudo python36 get-pip.py sudo pip install virtualenv
Setp 3. Mengkloning situs web kami dari GitHub
sudo yum -y install git
git clone
Langkah 4. Buat dan aktifkan lingkungan virtual
virtualenv -p python36 iotea-hb
cd iotea-hb source bin/aktifkan
Langkah 5. Instal perpustakaan dependen
pip instal pymysql
pip install dbutils pip install flask pip install websocket-client pip install cofigparser
Langkah 6. Buat database
sudo yum -y install mariadb mariabd-server
sudo systemctl aktifkan mariadb sudo systemctl start mariadb mysql -uroot -p
dan kemudian gunakan iotea_hb.sql untuk membuat tabel.
Langkah 7. Buat db.ini, dan tulis kode-kode ini padanya
[db]
db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
ubah jalur db.ini di db.py
# di db.py
#cf.read("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read("/home//iotea-hb/db.ini")
Langkah 8. Ubah port di app.py dan mulai situs web:
# di app.py
#app.run(debug=Benar, port=6000) app.run(debug=Benar, port=8080)
# di terminal
pip install gunicorn gunicorn -w 5 -b 0.0.0.0:8080 aplikasi: aplikasi
sekarang kunjungi 127.0.0.1:8080 di browser web Anda, Anda dapat melihat situs web, tetapi data waktu nyata tidak ditampilkan.
Langkah 9. Dapatkan data loriot
Buka terminal lain, masuk kembali ke lingkungan virtual dan mulai aplikasi loriot:
cd iotea-hb
source bin/aktifkan gunicorn loriot: app
Tunggu beberapa saat, Anda akan melihat data yang ditampilkan di situs web, atau Anda dapat mengubah wss di loriot.py:
# di loriot.py
#ws = create_connection("wss://cn1.loriot.io/app?token=vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w==")
ws = buat_koneksi()
Langkah 5: Operasi
Anda dapat mengunjungi situs web kami untuk melihat data waktu nyata:
- Di Ya'an
- Untuk Demonstrasi
Direkomendasikan:
Pelacak Pembaruan Covid-19 Menggunakan ESP8266: 9 Langkah
Pelacak Pembaruan Covid-19 Menggunakan ESP8266: Ini adalah proyek yang menunjukkan data terkini wabah virus corona dari berbagai kota di negara bagian India secara realtime di layar OLED. Pelacak status langsung ini membantu Anda memantau pembaruan covid-19 realtime di distrik Anda. Proyek ini sepenuhnya b
Rancang PCB Anda Menggunakan Sprint Layout 2020 Dengan Pembaruan Baru: 3 Langkah
Rancang PCB Anda Menggunakan Sprint Layout 2020 Dengan Pembaruan Baru: Sebagian besar pecinta elektronik membuat sirkuit elektronik menggunakan metode yang berbeda. terkadang kita perlu membuat PCB untuk mendapatkan output yang tepat dan mengurangi kebisingan dan hasil akhir yang ringkas. hari ini kami memiliki banyak Software untuk merancang PCB sendiri. Tapi masalahnya paling
Solusi Seed LoRa IoTea: 5 Langkah
Seeed LoRa IoTea Solution: Sistem pengumpulan informasi otomatis yang diterapkan pada perkebunan teh. Ini adalah bagian dari pengumpulan informasi pertanian cerdas
Lihat Solusi IoTea LoRa (dengan Azure, Perbarui 1812): 5 Langkah
Lihat Solusi IoTea LoRa (dengan Azure, Pembaruan 1812): Microsoft Azure adalah layanan cloud yang menyediakan daya komputasi yang lebih kuat dan stabil. Kali ini kami mencoba mengirim data IoTea kami ke sana
Proyek Arduino: Rentang Uji Modul LoRa RF1276 untuk Solusi Pelacakan GPS: 9 Langkah (dengan Gambar)
Proyek Arduino: Rentang Uji Modul LoRa RF1276 untuk Pelacakan GPS Solusi: Koneksi: USB - SerialKebutuhan: Browser Chrome Kebutuhan: 1 X Arduino Mega Kebutuhan: 1 X GPS Perlu: 1 X kartu SD Perlu: 2 X LoRa Modem RF1276Fungsi: Arduino Kirim nilai GPS to main base - Basis utama menyimpan data di Dataino Server Lora Module: Jarak sangat jauh