Daftar Isi:

Lihat Solusi IoTea LoRa (Pembaruan 1811): 5 Langkah
Lihat Solusi IoTea LoRa (Pembaruan 1811): 5 Langkah

Video: Lihat Solusi IoTea LoRa (Pembaruan 1811): 5 Langkah

Video: Lihat Solusi IoTea LoRa (Pembaruan 1811): 5 Langkah
Video: Miota: Investasi, Tantangan Bisnis Solusi IoT Kembangkan Teknologi Hijau 2024, Juli
Anonim
Lihat Solusi IoTea LoRa (Pembaruan 1811)
Lihat Solusi IoTea LoRa (Pembaruan 1811)

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.

Gambar
Gambar

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

Gambar
Gambar

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

Gambar
Gambar

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:

Gambar
Gambar

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: