Isi kandungan:
- Langkah 1: Perkara Yang Digunakan dalam Projek Ini
- Langkah 2: Cerita
- Langkah 3: Sambungan Perkakasan
- Langkah 4: Konfigurasi Perisian
- Langkah 5: Pembinaan Laman Web
Video: Penyelesaian Lihat LoRa IoTea: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Sistem pengumpulan maklumat automatik yang digunakan untuk ladang teh. Ia adalah sebahagian daripada pengumpulan maklumat pertanian pintar.
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
Pertanian pintar adalah dengan menerapkan teknologi Internet of Things untuk pertanian tradisional, menggunakan sensor dan perisian untuk mengawal pengeluaran pertanian melalui platform mudah alih atau komputer, menjadikan pertanian tradisional lebih "pintar".
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 tingkat 1100m abovesea. 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 gunung tinggi biasanya merupakan hasil panen kecil dan nilainya tidak tercermin di pasaran. " Selama dua tahun terakhir, Deng telah berusaha meningkatkan kesadaran 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. The Seeed IoTea Solution bertujuan untuk membantu para petani teh menguruskan ladang dengan lebih baik tanpa mengubah amalan tradisional penanaman teh, dan menyampaikan data persekitaran masa nyata dari ladang di platform terbuka.
Terdiri dari sensor, node, dan gateway, IoTea mengumpulkan data masa nyata dari faktor-faktor yang mungkin mempengaruhi kualiti teh semasa penanaman dan proses pengeluaran, termasuk suhu dan kelembapan, CO2, O2, PM, dan pendedahan cahaya. Data dikumpulkan oleh sensor, dikirim oleh node ke pintu masuk dan akhirnya ke awan, dan dibuat dapat diakses oleh pelanggan akhir di laman web.
Langkah 3: Sambungan Perkakasan
Langkah 1: Sambungan Gateway
Gerbang dipasang secara berasingan dalam kotak. Memandangkan masalah pelesapan panas, kami menambah 2 kipas. Salah satunya adalah untuk pelesapan haba Raspberry Pi, yang lain untuk peredaran udara dalaman dan luaran. Kotak pintu masuk diletakkan di rumah petani, jadi kami tidak perlu mempertimbangkan masalah kekuatannya.
Langkah 2: Sambungan Node
Node adalah terminal data, dan semua data asal diperoleh dari sini. Terdapat 6 sensor yang disambungkan ke simpul. Selain sensor kelembapan & suhu tanah, kami meletakkan sensor lain di dalam kotak louver.
Nod diletakkan di dalam kotak kalis air. Untuk mempunyai sambungan yang lebih baik ke simpul, kami membuat papan penyesuai. Akhirnya, kami akan memberikan pautan muat turun skema papan ini. Seperti yang ditunjukkan di bawah, kabel sensor dipasang ke papan penyesuai melalui blok terminal. Kami menggunakan 3 tiub MOS (SI2301) untuk membina litar suis untuk mengawal dan mematikan sensor dan kipas. Kipas digunakan untuk menyejukkan. Kami mempunyai sensor suhu (DS18B20) yang terpasang di papan. Ia dapat memberitahu kita suhu dalaman kotak, dan kemudian mikrokontroler memutuskan sama ada menghidupkan kipas. Kami menggunakan beberapa perintang untuk membuat litar pembahagi voltan untuk mengukur voltan bateri asid plumbum. Akhirnya, kami menempah 3 antara muka IIC dan port bersiri di papan untuk pengembangan dan debug kemudian.
Mari kita bincangkan masalah bekalan kuasa nod. Node diletakkan di ladang teh secara rawak, jadi kaedah bekalan kuasa tradisional tidak lagi berlaku. Menggunakan penyelesaian tenaga suria adalah idea yang baik. Terdapat banyak penyelesaian yang disediakan di pasaran pada masa ini. Kita boleh memilih salah satu yang memenuhi keperluan kita. Terdapat 3 bahagian dalam penyelesaian yang kami pilih: panel solar, pengawal cas solar dan bateri asid plumbum. Untuk menangkap tenaga suria dengan lebih baik, kami meletakkan panel suria di bahagian atas pendakap dan menyesuaikan sudut untuk memastikan bahawa ia menghadap matahari. Kami meletakkan pengawal cas solar ke dalam kotak yang sama dengan nod. Oleh kerana tidak ada ruang tambahan di dalam kotak, kami terpaksa mencari kotak kalis air baru untuk meletakkan bateri asid plumbum.
Langkah 4: Konfigurasi Perisian
Node
Di bahagian ini, kami akan memperkenalkan konfigurasi perisian terutamanya dari nod.
DataFormat
Data yang dimuat naik oleh nod ke gerbang:
char yang tidak ditandatangani Lora_data [15] = {0, 1, 2, 3,, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
Maksud setiap bit data:
Lora_data [0] : Suhu udara, ℃
Lora_data [1]: Kelembapan udara,%
Lora_data [2] : Ketinggian tinggi delapan, m
Lora_data [3]: Ketinggian rendah lapan
Lora_data [4]: Kepekatan CO2 tinggi lapan, ppm
Lora_data [5]: Kepekatan CO2 rendah lapan
Lora_data [6] : Kepekatan debu tinggi lapan, pcs / 0.01cf
Lora_data [7]: Kepekatan debu rendah lapan
Lora_data [8] : Intensitas cahaya tinggi lapan, lux
Lora_data [9]: Intensitas cahaya rendah lapan
Lora_data [10]: Kepekatan O2,% (data mentah dibahagi dengan 1000)
Lora_data [11]: Suhu tanah, ℃
Lora_data [12]: Kelembapan tanah,%
Lora_data [13]: Voltan bateri, v
Lora_data [14] : Kod ralat sensor
Kod salah:
Lora_data [14] = [bit7, bit6, bit5, bit4, bit3, bit2, bit1, bit0]
Maksud setiap bit:
ralat bit 0: 1 ---- Temp & Humi & Barometer Sensor (BME280)
ralat bit 1: 1 ---- Carbon Dioxide Sensor (MH-Z16)
ralat bit 2: 1 ---- Sensor Debu (PPD42NS)
bit 3: 1 ---- Kesalahan Sensor Cahaya Digital
ralat bit 4: 1 ---- Sensor Oksigen (ME2-O2-Ф20)
ralat bit 5: 1 ---- Kesalahan Kelembapan Tanah & Sensor Suhu
bit 6: Terpelihara
bit 7: Terpelihara
Kami telah membuat Error_code_transform.exe, membukanya dan memasukkan kod ralat dalam heksadesimal, anda akan dengan cepat mengetahui sensor mana yang salah. Pautan muat turun ada di akhir artikel ini.
Penyesuaian parameter: a) Kitaran penghantaran data
// seeedtea.ino
#defineinterval_time 600 // saat
Parameter ini dapat diubah untuk mengubah siklus pengiriman data. Dalam setiap kitaran, pemerolehan data memakan masa sekitar 1 minit. Jadi, tidak digalakkan menukar nilai ini menjadi kurang dari 60 saat.
b) Masa pemanasan sensor habuk
//seeedtea.ino
#definePreheat_time 30000 // Masa pemanasan Sensor Debu, miliseond //Dust_other.cpp #definesampletime_ms 30000 // samplingtime30s
c) Pekali voltan
//POWER_Ctrl.cpp
#defineBattery_coefficient 0.159864 // Nilai ADC × Battery_coefficient = bateri_voltage #defineSolar_coefficient 0.22559 // Nilai ADC × Solar_coefficient = solar_voltage
Kedua-dua parameter ini dikira berdasarkan litar pembahagi voltan.
d) Ambang suhu pembukaan kipas
//POWER_Ctrl.cpp
#defineFan_start_temp 45 // temperaturethreshold #defineFan_start_light 500 // intensiti cahaya
Apabila suhu sebenar melebihi ambang, kipas akan mula sejuk.
e) Parameter inisialisasi sensor O2
// Oksigen.cpp
# tentukanO2_peratus 208.00 //20.8%
f) Suis makro
//seeedtea.ino
#defineLORA_RUN // Selepas komen, inisialisasi Lora dan penghantaran data akan berhenti #defineSENSOR_RUN // Selepas komen itu, eksternal sensor akan berhenti berfungsi //POWER_Ctrl.cpp #defineFAN_ON // Fortesting only, Aplikasi praktikal perlu dikomentari / **** *** Mod kawalan DS18B20 ********************** / #defineSlower_Mode // Mod perlahan untuk mendapatkan suhu. Ulasan adalah mod pantas
g) Pemetaan pin
D2: Indikator LED dan mikrokontroler tetapan semula luaran IIC: SCL dan SDA
//Dust_other.h
#defineDust_pin 3 // Sensor habuk //CO2.cpp # defineCO2_serial Serial1 // gunakan port hardwareserial (D0 & D1) //seeedtea.ino #definedataPin 6 // Pin data tanah #defineclockPin 7 // Pin jam tanah // POWER_Ctrl. h # defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Fan #defineAir_CtrlPin 10 // Pin kawalan untuk sensor yang diletakkan di louverbox #defineSoil_CtrlPin 11 // Soil Moisture & Temperature Sensor pin pin #defineBattery_pin A2 // Ukur voltan bateri / Ukur voltan panel suria //Oxygen.h # defineO2_pin A1 // O2 sensor
h) Pemasa pengawas
Pemasa pengawas digunakan untuk memantau status berjalan sistem. Apabila sistem berjalan tidak normal, node akan diset semula, sehingga dapat berjalan secara berterusan untuk waktu yang lama.
Perpustakaan yang akan dirujuk:
- Adafruit_SleepyDog.h telah ditambahkan ke projek
- Adafruit_ASFcore-master.zip dibungkus dalam folder projek dan perlu ditambahkan secara manual ke Arduino IDE.
Fungsi yang berkaitan:
Dayakan pengawas
int WatchdogSAMD:: aktifkan (int maxPeriodMS, bool isForSleep)
Parameter input:
Int maxPeriodMS: Masa menunggu dalam milisaat. Maksimum yang dibenarkan ialah 16000 milisaat.
nilai pulangan:
Jenis int, mengembalikan masa menunggu sebenar
Tetapkan semula pengawas
batal WatchdogSAMD:: reset ()
Panggil fungsi ini untuk menetapkan semula pemasa pengawas, yang disebut sebagai "memberi makan anjing." Melebihi masa menunggu tanpa menetapkan semula akan menyebabkan nod dimulakan semula.
Berhenti pengawas
batal WatchdogSAMD:: lumpuhkan ()
Pintu Gerbang
Di bahagian ini kami akan memperkenalkan cara menyambung ke pelayan Loriot.
Langkah 1: Pendaftaran Gerbang Pelayan Loriot
a) Pengguna baru perlu mendaftarkan akaun terlebih dahulu, klik alamat pendaftaran. Isi Nama Pengguna, Kata Laluan dan alamat e-mel untuk mendaftar, setelah pendaftaran e-mel akan dihantar kepada anda, ikuti arahan dalam e-mel untuk mengaktifkannya.
b) Setelah berjaya diaktifkan, klik di sini untuk log masuk. Tahap lalai adalah "Community Network", ia menyokong 1 Gateway (RHF2S001) dan 10 nod.
c) Masukkan Dashboard -> Gateway, klik Tambah Gateway mula untuk menambah Gateway.
d) Pilih Raspberry Pi 3
e) Tetapkan seperti di bawah:
- Bahagian depan radio -> RHF2S001 868/915 MHz (SX1257)
- BUS -> SPI
f) Isi alamat MAC RHF2S001 anda, hendaklah dalam format b8: 27: eb: xx: xx: xx. Dan juga memasukkan maklumat Lokasi Gateway.
g) Klik "Daftar gateway Raspberry Pi" untuk menyelesaikan pendaftaran.
h) Klik pintu masuk yang didaftarkan untuk memasuki halaman konfigurasi, beralih "Pelan Frekuensi" secara manual, rancangan anda di sini ditentukan oleh jenis jenis RHF2S001 anda, paket yang tersedia adalah CN470 , CN473 , CN434 , CN780 , EU868, setelah dipilih sila muat semula halaman untuk mendapatkan saluran yang tepat. Dalam wiki ini kami memilih EU868.
i) Jalankan perintah di terminal dempul:
cd /home/rxhf/loriot/1.0.2
sudo systemctl hentikan pktfwd sudo gwrst wget > -O loriot-gw.bin chmod +x loriot-gw.bin./loriot-gw.bin -f -s cn1.loriot.io
j) Finish gateway registration. You will see the gateway is Connected now. Next is to register node.
Langkah 2: Peranti Loriot Server Connect Node
a) Dapatkan saluran gerbang yang tersedia
Saluran gerbang semasa dapat diperoleh dari Dashboard -> Gateway -> Gateway Anda, anda dapat melihat saluran yang tersedia seperti gambar di bawah.
b) Konfigurasi GPS Seeeduino LoRAWAN (RHF3M076)
Buka monitor bersiri ArduinoIDE, ketik arahan di bawah.
pada + ch
Untuk mengesahkan saluran lalai GPS Seeeduino_LoRAWAN anda, anda akan mendapat 3 saluran. Sekiranya tidak ada saluran yang tersedia, anda boleh menukar saluran Seeeduino_LoRAWAN dengan arahan di bawah.
pada + ch = 0, 868.1
pada + ch = 1, 868.3 pada + ch = 2, 868.5
Kemudian anda boleh menggunakan di + ch sekali lagi untuk memeriksa.
c) Tambahkan GPS Seeeduino_LoRAWAN sebagai ABP NodeLog dalam pelayan Loriot, Klik Dash Board -> Aplikasi -> SimpleApp. Klik Import ABP , input di bawah item
- DevAddr: Seeeduino_LoRAWAN GPS melalui arahan "AT + ID" (Nota: Loriot tidak menyokong penyambung usus besar, perlu dikeluarkan secara manual)
- FCntUp: Setto 1
- FCntDn: Setto 1
- NWKSKEY : Nilai Lalai 2B7E151628AED2A6ABF7158809CF4F3C
- APPSKEY : Nilai Lalai 2B7E151628AED2A6ABF7158809CF4F3C
- EUI : DEVEUI, Seeeduino_LoRAWAN GPS melalui perintah "AT + ID"
Klik butang Import Peranti untuk menyelesaikan import peranti. Sekarang pilih Dashboard-> Applications -> SampleApp, anda akan melihat ABP Node baru yang baru sahaja anda tambahkan.
d) Menghantar data dari Seeeduino_LoRAWAN
PERHATIAN! Ini hanya ujian.
Kembali ke monitor bersiri ArduinoIDE, hantar arahan:
AT + CMSGHEX = "0a 0b 0c 0d 0e"
Kemudian pergi ke Dashboard -> Applications -> SampleApp -> Device, klik Node Device EUI atau DevAddr, anda akan menemui data yang baru anda hantar di sini.
Untuk perincian, sila rujuk wiki ini.
Langkah 5: Pembinaan Laman Web
Alat Berkaitan
- virtualenv
- Python3
- Gunicorn
- Penyelia
- Nginx
- MySQL
Kami menggunakan CentOS7 sebagai persekitaran penggunaan ujian
virtualenv
Gunakan virtualenv untuk membina persekitaran pengeluaran python3 yang berdiri sendiri
a) pasang
pip pasang virtualenv
b) mewujudkan persekitaran maya python3
virtualenv -p python3 iotea
c) mulakan persekitaran maya dan masukkan direktori iotea
tong sumber / aktifkan
d) wujud persekitaran
nyahaktifkan
Python3
a) pasang
yum pasang pelepasan epel
yum pasang python36
b) pasang pustaka bergantung PyMySQL, DBUtils, Flask, websocket-client, configparser
pip memasang pymysql
pip install dbutils pip install flask pip install websocket-client pip install configparser
Gunicorn
a) pasang (di bawah persekitaran Python3)
pip pasang gunicorn
b) jalankan projek termos (di bawah direktori projek iotea)
gunicorn -w 5 -b 0.0.0.0:5000 aplikasi: aplikasi
c) jalankan websocket-clint untuk mendapatkan data loriot
gunicorn loriot: aplikasi
d) melihat pokok proses Gunicorn
pstree -ap | grep gunicorn
Penyelia
a) pasang (pengguna root)
penyelia pemasangan pip
b) menghasilkan fail konfigurasi
echo_supervisord_conf> /etc/supervisord.conf
c) membuat direktori dan memperkenalkan konfigurasi direktori
mkdir -p /etc/supervisor/conf.d
Edit /etc/supervisord.conf dan ubah medan fail di bawah [include] di akhir fail.
Perhatikan bahawa anda perlu membuang ';' di hadapan dua baris ini, yang merupakan watak komen.
[sertakan]
Fail = /etc/supervisor/conf.d/*.conf
Bermakna untuk memperkenalkan /etc/supervisor/conf.d/. Fail konfigurasi berikut digunakan sebagai fail konfigurasi proses (dipantau oleh penyelia).
d) konfigurasi masuk (di bawah direktori iotea)
cp iotea.conf /etc/supervisor/conf.d/
cp loriot.conf /etc/supervisor/conf.d/
e) hidangan iotea terbuka
superviosrctl memuat semula #muat semula fail konfigurasi
superviosrctl memulakan loriot #open penerimaan data loriot superviosrctl memulakan iotea #membuka aplikasi termos iotea
f) operasi biasa yang lain
supervisorctl tambah nilai # muat semula fail konfigurasi
supervisorctl update supervisorctl start xxx supervisorctl stop xxx supervisorctl status xxx supervisorctl help # view more command
Nginx
a) pasang
yum install -y nginx
b) konfigurasi
cp NginxIotea.conf /etc/nginx/conf.d/
c) mulakan Nginx
systemctl mulakan nginx.service
MySQL
a) parameter yang berkaitan
pengguna = 'root'
passwd = '1234' db = 'iotea' port = 3306
b) fail
iotea_iotea.sql
c) fail konfigurasi
db.ini
Disyorkan:
Eksperimen PWM Motor DC Rawak + Penyelesaian Masalah Encoder: 4 Langkah
Eksperimen PWM Motor DC Random + Penyelesaian Masalah Encoder: Seringkali ada kalanya sampah seseorang adalah harta orang lain, dan ini adalah salah satu momen bagi saya. Sekiranya anda mengikuti saya, anda mungkin tahu bahawa saya telah membuat projek besar untuk membuat CNC pencetak 3D saya sendiri daripada sekerap. Kepingan itu
DeskOrganizer (Penyelesaian Silly): 7 Langkah
DeskOrganizer (Penyelesaian Silly): Meja saya yang kacau adalah masalah terbesar saya semasa peperiksaan saya: DSo saya membuat penyusun meja untuk pensil dan telefon saya. Kerana saya SUKA elektronik saya menambah dua port USB 2 pembesar suara dan beberapa Neopixel di bahagian bawah juga saya addet palam USB mikro untuk mengecas
Kawal Peralatan Rumah Tangga Melalui LoRa - LoRa dalam Automasi Rumah - Alat kawalan jauh LoRa: 8 Langkah
Kawal Peralatan Rumah Tangga Melalui LoRa | LoRa dalam Automasi Rumah | Alat Kawalan Jauh LoRa: Kawal dan automasikan peralatan elektrik anda dari jarak jauh (Kilometer) tanpa kehadiran internet. Ini boleh dilakukan melalui LoRa! Hei, ada apa? Akarsh di sini dari CETech. PCB ini juga mempunyai paparan OLED dan 3 relay yang
Melihat IoTea LoRa Solution (Kemas kini 1811): 5 Langkah
Melihat IoTea LoRa Solution (Kemas kini 1811): Internet + adalah konsep yang popular sekarang. Kali ini kami mencuba Internet plus pertanian untuk membuat kebun teh tumbuh Teh Internet
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