Buat jaringan sensor nirkabel Wi-Fi / Miwi (15.4) / Lorawan untuk memantau suhu yang mencakup area luas seperti hotel atau pabrik.
Studi Kasus: Pemantauan Suhu Kelas Selama Konferensi Microchip Masters Diadakan di JW Marriot Desert Ridge, AZ
Lihat demo (hidup hanya selama Konferensi Master)
Monitor Data Sensor (Suhu, Level Baterai dan RSSI)
Meliputi 34-35 lokasi di atas luas luas sekitar. 1 km2
Komunikasi yang aman dengan AWS IoT untuk Wi-Fi
Antarmuka web independen perangkat untuk dengan mudah melihat data
Tampilan Miwi Mesh Topologi di WSN Monitor GUI
Pencatatan data ke file CSV
Perangkat yang dioperasikan dengan baterai
Menampilkan berbagai teknologi yang menangani tugas yang sama
Smart Secure Connected
Di Masters 2019, kami memantau suhu di seluruh konferensi menggunakan 3 jaringan yang berbeda secara bersamaan melaporkan ke dalam satu dasbor tunggal yang mudah diakses yang dihosting secara online untuk melihat informasi dari 34 lokasi. Selain itu, untuk implementasi Lora kami menambahkan simpul lapangan golf yang ditempatkan di luar hotel untuk memamerkan kemampuan jarak jauh Lora.
Sistem ini dikompromikan terutama dari dua bagian:
Demo dan fungsionalitas yang sama dapat dicapai dengan menggunakan salah satu dari 3 teknologi. Namun, setiap teknologi memiliki kekuatan dan kelemahannya sendiri. Kami memberikan penjelasan ini dan kode pendukung untuk membantu pelanggan microchip memilih teknologi yang paling sesuai dengan aplikasi mereka.
Catatan: Kode di sini disediakan sebagaimana adanya dan tidak diuji untuk kualitas produksi. Ini memiliki beberapa masalah yang tahu di bagian cloud yang kami sebutkan nanti. Anda bertanggung jawab penuh untuk menguji dan menyesuaikan kode pada sistem Anda sendiri.
Pengguna membutuhkan portal untuk melihat data. Untuk membuat tampilan independen platform yang tidak memerlukan instalasi atau kata sandi, kami memilih untuk menampilkan data pada halaman web HTML + JavaScript .
Halaman web hanyalah alat yang mengambil data dari titik akhir data, dapat diganti dengan aplikasi telepon atau ditambahkan ke tampilan per pengguna dalam produk akhir.
Untuk membuat aplikasi kami modular dan independen pada implementasi ujung depan, apakah itu situs web atau aplikasi seluler. Kami memutuskan untuk menerapkan API yang tenang menggunakan Flask
Data dikembalikan sebagai objek JSON dari titik akhir dan dapat dilihat di sini.
Untuk tujuan demo ini, kami menggunakan instance mesin virtual Amazon EC2 Ubuntu (karena kami sudah menggunakan AWS IoT Core) untuk dengan mudah mengelola semua layanan kami pada antarmuka yang sama ..
Namun, hal yang sama dapat dicapai dengan Digitalocean sebagai alternatif. Dalam aplikasi dunia nyata komersial, Anda mungkin akan memiliki server sendiri dan langkah ini tidak ada.
Demi demo ini, saat menggunakan Wi-Fi atau 802.15.4 (MIWI) kami memutuskan untuk pergi dengan Amazon AWS IoT Core .
Saat menggunakan Lora & Lorawan , Anda harus mendaftar dan menggunakan salah satu penyedia layanan Lorawan seperti ** The Things Network (TTN) ** atau Senet.
Untuk tujuan demo ini, kami pergi dengan TTN. Kami juga berhasil mengubah demo ini menjadi Senet di India tetapi ini berada di luar ruang lingkup halaman ini.
Desain dan teknologi yang digunakan di node akhir bisa:
Saat memilih node akhir, pengguna perlu dipertimbangkan:
Masing -masing poin ini dibahas di bagian akhir simpul di bawah ini.
Diagram di atas merangkum sistem. Akhir node berada dalam mode tidur sampai waktu tertentu di mana ia bangun, mengirimkan data ke gateway dan kemudian kembali tidur.
Lora dan Miwi membutuhkan pintu gerbang khusus untuk menjembatani dari Lora/Miwi ke Wi-Fi sebelum mengirim data ke cloud. Wi-Fi memiliki keuntungan bahwa ia tidak memerlukan gateway khusus jika sudah ada cakupan Wi-Fi yang merupakan kasus untuk lokasi hotel kami.
Data dikirim ke penyedia layanan cloud. AWS IOT untuk Wi-Fi dan Miwi dan Ttn untuk Lora. Aplikasi Flask kami kemudian akan mendapatkan data dan memberikan titik akhir data modular yang dapat disajikan oleh halaman web kami. Aplikasi Flask dan antarmuka Web keduanya berkumpul di instance AWS EC2 kami.
Pengguna kemudian dapat mengakses halaman web kami dari perangkat apa pun yang ia inginkan.
Di bagian ini kita membahas cara mengatur bagian cloud demo.
Kami menggunakan dua layanan dari AWS dalam demo ini, AWS EC2 sebagai platform hosting server. dan AWS IoT untuk Wi-Fi dan Miwi End Nodes MQTT Broker.
Untuk meng -host server Anda, Anda harus membuat instance mesin virtual EC2 sebelum Anda menggunakan Apache ke dalamnya. Prosesnya mudah dan lurus ke depan setelah akun AWS Anda siap.
Untuk panduan langkah demi langkah, ikuti panduan Amazon di sini.
Untuk demo kami, kami pergi dengan jenis instance gratis ini: Ubuntu Server 16.04 LTS GRATIS Tier (ditingkatkan ke medium selama konferensi untuk mengakomodasi permintaan)
Pada pengaturan keamanan, izinkan akses ke HTTP, HTTPS dan SSH lalu lintas yang masuk & keluar. Anda juga dapat menyesuaikan pengaturan keamanan sesuai keinginan Anda. Juga, harap simpan kunci pribadi untuk mengakses instance aman sehingga Anda dapat mendorong data di dalamnya dan mengontrol server.
Untuk mengakses server Anda, ikuti panduan yang tersedia di situs web Amazon di sini. ### AWS IoT Wi-Fi Node perlu terhubung ke AWS IoT Core untuk mengirim data sensor melalui MQTT.
Untuk mengatur AWS IoT Cloud, Anda dapat mengikuti Panduan Pengguna Proyek Kit Provisioing AWS Zero Touch (dari Bagian 2 Instalasi Perangkat Lunak ke Bagian 5 AWS IoT Pengaturan Pendaftaran Just-in-Time) Pengguna perlu membuat fungsi Lambda, aturan AWS IoT dan peran IAM untuk penyediaan AWS.
AWS Zero Touch Provisioing Kit adalah proyek tentang penyediaan kit penyediaan Secure Nol Touch untuk terhubung dan berkomunikasi dengan layanan IoT Amazon Web Services (AWS). Panduan Pengguna Proyek Kit Provisioing AWS Zero Touch dapat ditemukan dari bawah: http://microchipdeveloper.com/iot:ztpk
Setelah instance EC2 Anda berjalan dan berjalan setelah mengikuti langkah -langkah di atas, Anda harus menginstal Apache dan mengarahkannya ke host halaman web kami dan aplikasi Flask.
Contoh EC2 sudah dilengkapi dengan Python, pastikan Anda git Pip karena kami akan membutuhkannya nanti. $ sudo apt-get update dan sudo apt-get install python3-pip
Pertama, instal Flask pada instance EC2 Anda: $ pip3 install Flask
Salin file "Server/WSN_SERVER.PY" ke instance EC2.
Sekarang mari kita jelaskan bagian -bagian dari kode yang ingin Anda modifikasi dan beradaptasi dengan aplikasi Anda:
Anda akan menemukan kamus bernama "USMasterSnodelocation" dan "Indiamastersnodelocation" .. Alasannya adalah, kami ingin papan kami digunakan kembali untuk beberapa lokasi demo tanpa mengubah kode di papan tulis, jadi kami memberikan setiap node nomor dan menggunakan kamus ini untuk memetakan simpul ke kamar yang diletakkan di dalam.
Misalnya, Node4 selama AS Master di "Desert Suite 4". Kemudian kami mengirim simpul yang sama ke India dan menaruhnya di ruang "Dominion". Dengan cara ini simpul yang sama, dengan kode yang sama dapat digunakan untuk lokasi yang berbeda hanya dengan mengubah aplikasi Flask tanpa perlu secara fisik program.
Memperbarui kode secara fisik di papan tidak selalu nyaman di lapangan. Kami mendorong Anda untuk memikirkan metode seperti ini dan berencana ke depan untuk menghindari memperbarui dewan FW.
#our Rooms database
USMastersNodeLocation = {
"Node1" : "Desert Suite 1" ,
"Node2" : "Desert Suite 2" ,
"Node3" : "Desert Suite 3" ,
"Node4" : "Desert Suite 4" ,
"Node5" : "Desert Suite 5" ,
"Node6" : "Desert Suite 6" ,
"Node7" : "Desert Suite 7" ,
"Node8" : "Desert Suite 8" ,
"Node9" : "Pinnacle Peak 1" ,
"Node10" : "Pinnacle Peak 2" ,
"Node11" : "Pinnacle Peak 3" ,
"Node12" : "Wildflower A" ,
"Node13" : "Wildflower B" ,
"Node14" : "Wildflower C" ,
"Node15" : "Grand Canyon 1" ,
"Node16" : "Grand Canyon 2" ,
"Node17" : "Grand Canyon 3" ,
"Node18" : "Grand Canyon 4" ,
"Node19" : "Grand Canyon 5" ,
"Node20" : "Grand Canyon 9" ,
"Node21" : "Grand Canyon 10" ,
"Node22" : "Grand Canyon 11" ,
"Node23" : "Grand Canyon 12" ,
"Node24" : "Grand Sonoran A" ,
"Node25" : "Grand Sonoran B" ,
"Node26" : "Grand Sonoran C" ,
"Node27" : "Grand Sonoran D" ,
"Node28" : "Grand Sonoran H" ,
"Node29" : "Grand Sonoran I" ,
"Node30" : "Grand Sonoran J" ,
"Node31" : "Grand Sonoran K" ,
"Node32" : "ATE / Grand Canyon 6" ,
"Node33" : "Cyber Cafe / Grand Sonoran G" ,
"Node34" : "Grand Saguaro East/West" ,
"Node35" : "Golf course"
}Kami menyimpan data yang kami terima pada file CSV. Lokasi dan nama file ditentukan pada baris 141-143.
###################################
###### Files to store data ########
###################################
wifiFile = open ( '/home/c43071/WSN/wifiData.csv' , 'a' )
miwiFile = open ( '/home/c43071/WSN/miwiData.csv' , 'a' )
loraFile = open ( '/home/c43071/WSN/loraData.csv' , 'a' )
WiFiWriter = csv . writer ( wifiFile )
MiWiWriter = csv . writer ( miwiFile )
LoRaWriter = csv . writer ( loraFile )Untuk mendapatkan pemberitahuan dari End Node, aplikasi perlu berlangganan AWS IoT Core dan TTN Server (atau server apa pun yang Anda pilih)
Kami menggunakan kode Pythond yang disediakan secara publickly untuk AWS IoT. Untuk menggunakannya, silakan kunjungi repo Amazon GitHub di sini.
Kode kami dapat digunakan sebagaimana adanya jika Anda mengganti jalur sertifikat dengan jalur sertifikat Anda.
# For certificate based connection
myMQTTClient = AWSIoTMQTTClient ( "WSNClientID" )
# For TLS mutual authentication with TLS ALPN extension
myMQTTClient . configureEndpoint ( "a3adakhi3icyv9.iot.us-west-2.amazonaws.com" , 443 )
myMQTTClient . configureCredentials ( "/home/c43071/WSN/VeriSign.pem" , "/home/c43071/WSN/WSN_BE_private.pem" , "/home/c43071/WSN/WSN_BE_certificate.pem" )
myMQTTClient . configureOfflinePublishQueueing ( - 1 ) # Infinite offline Publish queueing
myMQTTClient . configureDrainingFrequency ( 2 ) # Draining: 2 Hz
myMQTTClient . configureConnectDisconnectTimeout ( 10 ) # 10 sec
myMQTTClient . configureMQTTOperationTimeout ( 5 ) # 5 sec
myMQTTClient . connect ()Kode mengharapkan topik diketahui dan satu topik per teknologi. Pengguna dapat menggunakan topik yang berbeda dengan akses yang berbeda jika dia mau.
myMQTTClient . subscribe ( "/Microchip/WSN_Demo/WiFi" , 1 , WiFiCallback )
myMQTTClient . subscribe ( "/Microchip/WSN_Demo/MiWi" , 1 , MiWiCallback ) Kode mengharapkan objek JSON dengan format: {'nodeID': "Node1", 'Battery': "4.99V", 'Temperature': 81.46, 'RSSI': -55}
Jaringan benda tidak memerlukan otentikasi atau sertifikat timbal balik untuk terhubung seperti AWS, sebaliknya mereka mengandalkan nama pengguna dan kata sandi. Oleh karena itu kami menunjukkan case cara terhubung ke server mereka menggunakan paket "flask_mqtt".
from flask_mqtt import Mqtt
app . config [ 'MQTT_BROKER_URL' ] = 'us-west.thethings.network'
app . config [ 'MQTT_BROKER_PORT' ] = 1883
app . config [ 'MQTT_USERNAME' ] = 'jwmarriottdesertridge'
app . config [ 'MQTT_PASSWORD' ] = ''
app . config [ 'MQTT_REFRESH_TIME' ] = 1.0 # refresh time in seconds
mqtt = Mqtt ( app )
@ mqtt . on_connect ()
def handle_connect ( client , userdata , flags , rc ):
print ( "MQTT connected!!! r n " )
mqtt . subscribe ( 'jwmarriottdesertridge/devices/+/up' )
@ mqtt . on_message ()
def handle_mqtt_message ( client , userdata , message ):Anda akan melihat bahwa muatan pesan untuk Lora sedikit berbeda dari Wi-Fi dan Miwi, ini karena TTN Gateway menambahkan beberapa info ke muatan simpul akhir dan karena kami mencoba meminimalkan beban pembayaran sebanyak mungkin untuk mengurangi daya yang digunakan dan meningkatkan kemanjuran. Silakan merujuk ke bagian Lora di bawah ini.
### Apache
Ada banyak tutorial Apache dan konten di luar sana, kami hanya menyebutkan penyimpangan di sini.
Pertama, dapatkan Apache dan WSGI untuk Flask: sudo apt-get install apache2 libapache2-mod-wsgi-py3
Buat file WSGI: vi wsn_demo.wsgi
Masukkan ini di file di atas:
import sys
sys . path . insert ( 0 , '/var/www/html/WSN' ) Buat symlink sehingga direktori proyek muncul di/var/www/html: $ sudo ln -sT ~/WSN /var/www/html/WSN
Aktifkan WSGI: sudo a2enmod wsgi
Konfigurasi Apache (Anda perlu ke sudo untuk mengedit file) $ sudo vi /etc/apache2/sites-enabled/000-default.conf
Kami akan membuat 2 host virtual, satu untuk titik akhir data dan satu untuk situs web di luar.
Baris 9 & 49 di bawah ini menunjukkan nama situs web Anda. Baris 14 Memiliki lokasi file WSGI Anda.
Tempel di "000-default.conf" setelah membuat modifikasi host Anda seperti yang disebutkan di atas:
< VirtualHost *:80 >
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
ServerName demo2.microchip.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
WSGIDaemonProcess WSN threads=5
WSGIScriptAlias / /var/www/html/WSN/wsn_demo.wsgi
< Directory WSN >
WSGIProcessGroup WSN
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</ Directory >
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</ VirtualHost >
< VirtualHost *:80 >
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
ServerName demo.microchip.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/Masters
DirectoryIndex index.html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</ VirtualHost > Restart server: $ sudo apachectl restart
Sekarang Anda perlu membuat entri DNS yang akan memetakan dari "demo.microchip.com" & "demo2.microchip.com" ke alamat IP publik dari instance EC2.
Setelah selesai, silakan dan lihat data Anda di tautan yang mirip dengan: http://demo2.microchip.com/wsn/data/lora/
dan situs web akan disimil untuk: (tergantung pada bagaimana Anda mengonfigurasi Apache dan di mana Anda meletakkan file html Anda): http://demo.microchip.com/wsn/masters/
Saat Anda memeriksa halaman HTML yang kami sediakan di "Server US IoT Network IoT Network"
File penting Anda adalah "Scripts.js" yang pergi dan membaca data dari titik akhir data kami di atas.
Sisanya hanyalah file HTML yang berisi file tabel dan SVG untuk peta lokasi.
Pada bagian ini kami menjelaskan langkah -langkah yang diperlukan untuk mulai mengirim data sensor ke cloud menggunakan masing -masing teknologi masing -masing.
Alasan Anda mungkin ingin memilih Wi-Fi sebagai simpul akhir Anda:
** Keuntungan wifi **
Alasan yang menjadikan Wi-Fi pilihan yang kurang ideal:
Papan Wi-Fi tidur untuk jangka waktu tertentu yang dapat dikonfigurasi. Ketika bangun, ia memeriksa untuk melihat apakah pembacaan sensor telah berubah sejak terakhir dilaporkan ke cloud. Jika memilih untuk memperbarui bacaan, itu akan terhubung ke AP menggunakan modul Wi-Fi dan mengotentikasi dengan AWS Cloud menggunakan chip crypto-auth (ECC508) dan mengirim nilai yang diperbarui.
Dewan perlu ditetapkan pertama kali hanya sebelum dapat digunakan, kami melewati ini di bawah ini.
Untuk demo kami menggunakan IoT Sensor Bord yang mengandung MCU (SAML21) dan modul Wi-Fi Microchip (ATWINC1500) dan sensor lainnya.
Untuk info lebih lanjut tentang HW, silakan buka halaman ini di sini.
Papan tidak tersedia untuk dibeli saat ini @microchip Direct. Itu didistribusikan kepada para peserta Magister Konferensi secara gratis dan akan ditambahkan nanti untuk opsi pembelian. Sementara itu, Anda dapat melakukan hal yang sama menggunakan AWS Zero Touch Kit.
Untuk mem -flash firmware ke papan, silakan buka opsi di sini.
Silakan kunjungi halaman ini untuk menginstal alat yang diperlukan.
Sekarang. Jika Anda ingin menggunakan Wi-Fi, langkah-langkah seperti ini:
Langkah pertama tercakup di bagian cloud. Anda juga dapat melanjutkan ke aws.amazon.com dan mengikuti panduan mereka jika mereka mengubah langkah -langkahnya. Kami akan membahas langkah -langkah ke -2 dan ke -3 di sini.
Perangkat ECC608 adalah valut yang melindungi identitas perangkat Anda dan mengotentikasi dengan cloud AWS.
Untuk menyediakan perangkat ECC608 Anda, silakan ikuti langkah -langkah di sini.
Setelah selesai dengan langkah -langkah di atas, ECC608 Anda disediakan. Bagian yang tersisa adalah menyimpan sertifikat perangkat di WINC1500.
Ini dapat dilakukan secara program dari sisi aplikasi dengan menelepon: m2m_ssl_send_certs_to_winc di atas cocok untuk produksi. Alternatif adalah dengan menggunakan alat dalam panduan ini.
Setelah ECC608 dan WINC1500 disediakan. Anda akhirnya dapat mem -flash papan dengan aplikasi asli.
Contoh aplikasi pada folder Wi-Fi berisi kode referensi untuk melakukannya.
Ada proyek di sana:
Anda dapat mengubah AP SSID dan kata sandi yang ingin Anda sambungkan pada baris 61/63 di Main.h
Nama simpul berada di baris 73, di Main.H
Saml21 pergi tidur dan bangun di interupsi RTC. MCU akan pergi tidur setelah panggilan ke: system_sleep(); dan bangun ketika interupsi RTC diterima. Untuk mengontrol durasi interupsi RTC, konfigurasikan jumlah dalam fungsi "configure_rtc_count" pada rtc.c ,, durasi tidur tergantung pada seberapa sering Anda ingin menyegarkan data dan anggaran daya Anda.
Anda harus memasukkan ID klien MQTT untuk serupa dengan ID subjek dalam sertifikat perangkat Anda. Masukkan ID klien ke dalam variabel "gawsmqttclientId" di baris 95 dari "winc15x0.c"
Itu cukup banyak, sekarang buka file Main.c, baca fungsi utama dan bicarnya dan ketika Anda siap, bangun dan kembangkan SAML21 dengan kode.
Jika Anda masuk ke dalam AWS Test Consle ANS yang berlangganan topik Wi-Fi yang disebutkan di atas (/Microchip/WSN_DEMO/WiFi) Anda akan melihat pesan baru yang diterima setelah papan dijalankan.
Lora berdiri untuk jarak jauh. Lorawan adalah singkatan dari jaringan area lebar jarak jauh. Lorawan adalah jaringan tempat Lora beroperasi. Lorawan adalah protokol layer Media Access Control (MAC) tetapi terutama protokol lapisan jaringan untuk mengelola komunikasi antara gateway LPWAN dan perangkat simpul akhir sebagai protokol perutean, yang dikelola oleh Lora Alliance. Beberapa aplikasi yang dapat dilakukan dengan menggunakan LORA adalah Parkir Cerdas dan Manajemen Kendaraan, Fasilitas dan Manajemen Infrastruktur, Deteksi dan Manajemen Kebakaran, Manajemen Limbah, Otomatisasi Rumah untuk IoT memungkinkan peralatan pintar, pertanian pintar dan pengelolaan ternak, pemantauan suhu dan kelembaban, sensor permukaan air dan kontrol irigasi.
Suhu kamar yang tersebar di resor besar dipantau menggunakan Lora. Aplikasi LORA yang khas dapat dikembangkan dengan memiliki 4 komponen perangkat akhir, gateway, server jaringan, dan server aplikasi. Perangkat akhir dengan sensor suhu (berjalan pada baterai) digunakan untuk menunjukkan keunggulan Lorawan seperti daya rendah, aman dan jarak jauh. Pengguna yang baru mengembangkan aplikasi menggunakan Lorawan dapat menemukan gambaran umum arsitektur sistem Lorawan di sini.
Pastikan gateway terhubung ke server jaringan hal -hal - langkah yang disebutkan di sini
Setelah gateway online, "Buat aplikasi" diikuti oleh bagian "Buat Perangkat Baru" untuk mendaftarkan aplikasi dan perangkat akhir ke TTN
Setelah perangkat akhir dibuat di konsol jaringan hal -hal dan perubahan kode yang diperlukan telah dibuat dalam kode sumber aplikasi untuk Deveui dan APPEUI. Kami akan menggunakan metode gabungan OTAA untuk aplikasi kami.
Untuk mengaktifkan pengukuran tegangan baterai, pastikan PA15 disingkat menjadi GND. Jumper I/O dan Jumper MCU harus menjadi bypassmode
Hubungkan ATSAMR34-XPRO ke PC menggunakan kabel USB mikro melalui catu daya EDBG. ATSAMR34-XPRO akan menyebutkan sebagai port COM. Menggunakan aplikasi terminal @ baudrate 115200, data - 8 bit, paritas - tidak ada, berhenti - 1 bit dan kontrol aliran - tidak ada pengaturan yang akan memungkinkan pengguna untuk memantau informasi dari contoh firmware
Buka Proyek - Apps_enddevice_demo Menggunakan Atmel Studio Konfigurasikan Deveui, Appkey dan Appeui menggunakan file conf_app.h yang tersedia dalam direktori berikut - /src /config
Jika aplikasi yang dikembangkan menggunakan pita NA/AU, penggunaan dapat memilih subband, gerbang mendengarkan. Sebagai na/au band memungkinkan hingga 64 saluran uplink. Gateway murah populer di sini hanya di 8 saluran, maka pilihan subband diperlukan. The Things Gateway mendengarkan Subband - 2 untuk NA sebaliknya disebut US902 sesuai parameter regional Lorawan. Untuk demo kami telah menggunakan metodologi gabungan OTAA (Over the Air Activation) di Lorawan
Program demo menggunakan opsi "Mulai Tanpa Debugging" di Atmel Studio. Setelah pemrograman demo, perangkat akhir (ATSAMR34-XPRO) akan mencoba bergabung dengan server jaringan Lorawan (jaringan Things). Jika gateway online dan terhubung ke Server Jaringan Things, permintaan bergabung akan menghasilkan penerimaan gabungan langsung.
TTN memiliki fitur yang disebut fungsi TTN yang memungkinkan pengguna untuk mengubah byte, dikirim melalui jaringan hal -hal, ke bidang yang dapat dibaca manusia. Untuk menambahkan API untuk demo ini, buka aplikasi -> xxxx -> format payload xxxx menunjukkan nama aplikasi pengguna pergi ke bagian decoder dan simpan fungsi decoder di bawah ini
function Decoder(bytes, port) {
var length = bytes.length;
if(length == 6){
var temperature = (bytes[0] <<8) | bytes[1];
var battery = (bytes[2] <<8) | bytes[3];
battery = battery/100 + "V";
var time = bytes[4] + ":" + ('0' + bytes[5].toString(10)).slice(-2);
return{
"temperature": temperature /100,
"battery": battery /// 100, // this operation now is done in earlier step
"time": time
};
}else
{
var result = "";
for (var i = 0; i < length; i++) {
result += String.fromCharCode(parseInt(bytes[i]));
}
return {
"msg": result,
};
}
}
Setelah mengkonfigurasi dekoder dan memprogram papan dengan kode sumber aplikasi. Data aplikasi harus mulai muncul di jendela terminal dan pada hal -hal jaringan konsol
Transmisi sensor selanjutnya terjadi setiap 15 menit
Pendahuluan Miwi adalah singkatan dari Microchip Wireless. Miwi adalah protokol nirkabel eksklusif yang dirancang oleh teknologi microchip yang menggunakan radio digital kecil dan berdaya rendah berdasarkan standar IEEE 802.15.4 untuk jaringan area pribadi nirkabel (WPAN). Ini dirancang untuk laju transmisi data rendah dan jarak pendek, jaringan terbatas biaya, seperti pemantauan dan kontrol industri, otomatisasi rumah dan bangunan, remote control, sensor nirkabel berdaya rendah, kontrol pencahayaan dan pembacaan meter otomatis. Protokol MIWI mendukung tiga topologi jaringan
Keuntungan Miwi
Demo Pendahuluan Suhu kamar yang tersebar di resor besar dipantau menggunakan topologi jaringan Miwi Mesh.
Aplikasi Miwi Mesh yang khas dapat dikembangkan dengan memiliki 3 komponen.
Koordinator & Koordinator PAN adalah tipe FFD (perangkat fungsi penuh) dan mampu merutekan paket akhir paket dapat berupa FFD (perangkat fungsi penuh) / Jenis RFD (perangkat fungsi yang dikurangi). Perangkat akhir RFD digunakan untuk tujuan demo ini karena kemampuan untuk tidur. Perangkat akhir dengan sensor suhu (berjalan pada baterai) digunakan untuk menunjukkan keunggulan jaringan Miwi Mesh seperti daya rendah, penyembuhan mandiri dll
Node Pan-Koordinator terhubung ke papan SAMA5D2 XPRO dan memiliki konektivitas Wilc3000 untuk Wi-Fi (Internet). Kombinasi perangkat ini disebut sebagai jembatan Miwi dalam demo ini. Router dan perangkat akhir mengirim data berkala ke PAN-Koordinator. SAMA5D2 membaca data dari pan-koordinator dan mengirim hal yang sama ke instance AWS EC2. Contoh AWS EC2 mengirimkan data yang diterima ke alat monitor WSN dan ke server web. Alat monitor WSN menggambarkan topologi mesh yang dibentuk dari data yang diterima dari router, node sensor dan panci-koordinator. Monitor WSN juga dapat digunakan untuk memantau jaringan MIWI.
Perangkat keras
Perangkat lunak
AT91SAMA5D27 di Linux
ATWILC3000 Modul & Firmware
$ /root dari paket buildroot. Firmware ditambahkan dalam $ /lib/firmware/mchp .Layanan instance AWS Cloud EC2
Alat Monitor WSN
Prosedur Langkah demi Langkah untuk Meniru Miwi Demo Sama5d2 Linux Setup
Bawa antarmuka wifi dan koneksi wifi
$ root sebagai nama pengguna.$/root/mchp/ Folder berisi modul driver Wilc3000.$/root/mchp ini berisi modul driver Wilc3000.$ /lib/firmwae/mchp/wilc1000_wifi_firmware.bin$ vi Modifikasi skrip untuk kredensial router.Pengaturan instance AWS Cloud EC2 Kami menggunakan layanan EC2 (Amazon Elastic Compute Cloud) untuk demo ini. EC2 Instance meng -host dua server TCP untuk MIWI Network Bridge dan WSN Monitor Tool. Instance AWS EC2 untuk meng -host server Python, membutuhkan mesin virtual AMI Linux. Instance Amazon EC2 akan menyediakan mesin Linux virtual. Prosesnya mudah dan lurus ke depan setelah akun AWS Anda siap.
nohup python miwi_wsn_server_4.py & cd iot nohup python iot_publish_2.py &Pengaturan Miwi
Untuk demo Miwi WSN, program pan-koordinator dengan file proyek yang tersedia di/miwi/samr30/pan_cord_mod. Program node koordinator dengan file proyek yang tersedia di/miwi/samr30/cord_mod1 dan memprogram papan sensor dengan file proyek yang tersedia di/miwi/samr30/sensor_mod1.
Alat Monitor WSN
Alat monitor WSN adalah alat kepemilikan microchip untuk 802.15.4 Monitor Jaringan dan CONTORL. Di alat ini, koneksi jaringan MIWI dengan masing -masing node akan ditampilkan. WSN Monitor Toll juga menampilkan suhu, RSSI VLAUE dari node jaringan, dan pemberitahuan daya baterai. Untuk terhubung dengan EC2 Server, diperlukan alamat IP publik EC2. EC2 Instance Alamat IP Publik tersedia di halaman instance EC2 seperti yang disebutkan di atas. Nomor port untuk koneksi alat monitor WSN adalah $ 8080 setelah alat monitor WSN terhubung, server EC2 akan meneruskan paket yang diterima dari jaringan MIWI Clinet.
Setelah koneksi yang berhasil dengan server EC2, Monitor WSN mulai menerima data dan tampilan jaringan MIWI.