Wi-Fi / Miwi(15.4) / Lorawanワイヤレスセンサーネットワークを作成して、ホテルや植物のような広いエリアをカバーする温度を監視します。
ケーススタディ:アリゾナ州JWマリオットデザートリッジで開催されたMicrochip Masters Conference中の教室温度監視
デモを見る(マスターズ会議中にのみライブ)
モニターセンサーデータ(温度、バッテリーレベル、RSSI)
約の広大なエリアに34〜35の場所をカバーしています。 1 km2
Wi-FiのAWS IoTとの安全な通信
データを簡単に表示するためのデバイス独立したWebインターフェイス
WSNモニターGUIのMIWIメッシュトポロジの表示
CSVファイルへのデータロギング
バッテリー操作デバイス
同じタスクに取り組むさまざまなテクノロジーを紹介します
スマートセキュア接続
Masters 2019では、3つの異なるネットワークを使用して、3つの場所の情報を表示するためにオンラインでホストされた1つの簡単にアクセス可能なダッシュボードに同時に報告する3つの異なるネットワークを使用して、気温を監視しました。さらに、LORAの実装には、LORAの長距離機能を紹介するためにホテルの外側に配置されたゴルフコースノードを追加しました。
システムは主に2つの部分で損なわれています。
同じデモと機能を3つのテクノロジーのいずれかを使用して実現できます。ただし、各テクノロジーには独自の強みと欠点があります。この説明と、マイクロチップの顧客がアプリケーションに最適なテクノロジーを選択するのを支援するサポートコードを提供します。
注:ここのコードはそのまま提供され、生産品質についてはテストされていません。クラウドセクションには、後で言及するいくつかのKnowmの問題があります。お客様は、自分のシステムでコードをテストおよび適応させることを完全に責任を負います。
ユーザーは、データを表示するためにポータルを必要とします。インストールやパスワードを必要としないプラットフォームに独立したビューを作成するには、HTML + JavaScript Webページにデータを表示することを選択します。
Webページは、データエンドポイントからデータを取得するツールのみであり、電話アプリケーションに置き換えたり、最終製品のユーザービューごとに追加されたりできます。
Webサイトであろうとモバイルアプリケーションであろうと、アプリケーションをフロントエンドの実装でモジュール化し、独立させるため。フラスコを使用してRESTFUL APIを実装することにしました
データはエンドポイントからJSONオブジェクトとして返され、ここで表示できます。
このデモの目的のために、 Amazon EC2 Ubuntu Virtual Machineインスタンス(すでにAWS IoTコアを使用していたため)を使用して、同じインターフェイスですべてのサービスを簡単に管理しました。
ただし、代替としてDigitalOceanでも同じことが達成できます。商業的な現実世界アプリケーションでは、おそらく独自のサーバーを持っているでしょう。このステップは不可能です。
このデモのために、 Wi-Fiまたは802.15.4(MIWI)を使用する場合、Amazon AWS IoT Coreを使用することにしました。
Lora&Lorawanを使用する場合、** The Thing Network(TTN)**やSenetなどのLorawanサービスプロバイダーの1つを登録して使用する必要があります。
このデモの目的のために、TTNを使用しました。また、このデモをインドのSenetに変換することに成功しましたが、これはこのページの範囲外です。
エンドノードで使用される設計とテクノロジーは次のとおりです。
エンドノードを選択するときは、ユーザーが考慮する必要があります。
これらの各ポイントについては、以下の最後のノードセクションで説明します。
上の図はシステムを要約します。エンドノードは、目が覚める時間までスリープモードで、データをゲートウェイに送信してから睡眠に戻ります。
LoraとMiwiは、データをクラウドに送信する前に、Lora/MiwiからWi-Fiに橋を架けるための専用のゲートウェイが必要です。 Wi-Fiには、ホテルの場所に当てはまるWi-Fiカバレッジがすでにある場合、専用のゲートウェイは必要ないという利点があります。
データはクラウドサービサープロバイダーに送信されます。 Wi-FiのIoTおよびMiwiおよびLORAのTTN。 Flaskアプリケーションはデータを取得し、Webページが提示できるモジュラーデータエンドポイントを提供します。 FlaskアプリケーションとWebインターフェイスは、AWS EC2インスタンスの両方でColocateです。
ユーザーは、必要な場所であらゆるデバイスからWebページにアクセスできます。
このセクションでは、デモのクラウド部分をセットアップする方法について説明します。
このデモでは、AWSの2つのサービスを使用して、AWS EC2をサーバーホスティングプラットフォームとして使用しています。 Wi-FiおよびMiwi End Nodes MQTT Broker用のAWS IoT。
サーバーをホストするには、Apacheを展開する前に、仮想マシンEC2インスタンスを作成する必要があります。 AWSアカウントを準備したら、このプロセスは簡単で簡単です。
ステップバイステップガイドについては、こちらのAmazonガイドをフォローしてください。
デモのために、このインスタンスタイプを無料で使用しました: Ubuntu Server 16.04 LTS Free Tier (需要を伴うために会議中にミディアムにアップグレード)
セキュリティ設定では、インバウンドおよびアウトバウンドHTTP、HTTPS、SSHトラフィックへのアクセスを許可します。また、セキュリティ設定を好みに合わせて調整することもできます。また、インスタンスに安全にアクセスするために秘密キーを保持してください。そうすれば、データをプッシュしてサーバーを制御できます。
サーバーにアクセスするには、こちらのAmazon Webサイトでご利用いただけます。 ### AWS IoT Wi-Fiノードは、MQTTを介してセンサーデータを送信するためにAWS IoTコアに接続する必要があります。
AWS IoTクラウドをセットアップするには、AWS Zero Touch Provisioing Kitプロジェクト(セクション2ソフトウェアのインストールからセクション5 AWS Just-in-Time登録セットアップまで)のユーザーガイドに従うことができます。
AWS Zero Touch Provisioing Kitは、Amazon Web Services(AWS)IoTサービスと接続および通信するためのZero Touch Secure Provisioningキットのプロビジョニングに関するプロジェクトです。 AWS Zero Touch Provisioing Kitプロジェクトのユーザーガイドは、http://microchipdeveloper.com/iot:ztpkからご覧いただけます。
上記の手順に従ってEC2インスタンスを稼働させたら、Apacheをインストールし、WebページとFlaskアプリケーションをホストするように指している必要があります。
EC2インスタンスには既にPythonが付属しています。後で必要になるので、PIPPをgitしてください。 $ sudo apt-get updateとsudo apt-get install python3-pip
まず、EC2インスタンスにフラスコをインストールします: $ pip3 install Flask
「server/wsn_server.py」ファイルをEC2インスタンスにコピーします。
次に、コードの一部を説明し、アプリケーションに適応したいと考えています。
「usmastersnodelocation」と「indiamasterstersnodelocation」という名前の辞書があります。その理由は、ボード上のコードを変更せずにボードを複数のデモの場所に再利用することを望んでいたため、各ノードを提供し、この辞書を使用してノードを内部に置いた部屋にマッピングしました。
たとえば、「Desert Suite 4」のUSマスター中のNode4。次に、同じノードをインドに出荷し、「ドミニオン」の部屋に置きました。このようにして、同じノードを使用して、デバイスをプログラムする必要なくフラスコアプリケーションを変更するだけで、同じコードを異なる場所に使用できます。
ボード上の物理的にコードを更新することは、フィールドで必ずしも便利ではありません。このような方法を考え、ボード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"
}受信したデータをCSVファイルに保存します。ファイルの場所と名前は、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 )エンドノードから通知を取得するには、アプリケーションはAWS IoTコアおよびTTNサーバー(または選択したサーバー)にサブスクライブする必要があります
AWS IoTにPublickly提供されたPythondコードを使用しました。それを使用するには、こちらのAmazonGithubリポジトリにアクセスしてください。
証明書パスを証明書パスに置き換える場合、コードを使用できます。
# 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 ()このコードは、トピックが既知であり、テクノロジーごとに1つのトピックが既知であることを期待しています。ユーザーは、必要に応じて、異なるアクセスで異なるトピックを使用できます。
myMQTTClient . subscribe ( "/Microchip/WSN_Demo/WiFi" , 1 , WiFiCallback )
myMQTTClient . subscribe ( "/Microchip/WSN_Demo/MiWi" , 1 , MiWiCallback )コードは、形式を備えたJSONオブジェクトを期待します: {'nodeID': "Node1", 'Battery': "4.99V", 'Temperature': 81.46, 'RSSI': -55}
Thingネットワークは、AWSのように接続するために相互認証または証明書を必要としません。代わりに、ユーザー名とパスワードに依存しています。したがって、「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 ):LORAのメッセージペイロードはWi-FiやMiwiとは少し異なることに気付くでしょう。これは、TTNゲートウェイがエンドノードペイロードに情報を追加し、使用する電力を低下させ、有効性を高めるために可能な限り最小限に抑えようとするためです。以下のロラセクションを参照してください。
### apache
たくさんのApacheチュートリアルとコンテンツがありますが、ここで逸脱について言及しています。
まず、FlaskのApacheとWSGIを入手: sudo apt-get install apache2 libapache2-mod-wsgi-py3
WSGIファイルを作成します: vi wsn_demo.wsgi
これを上記のファイルに入れます:
import sys
sys . path . insert ( 0 , '/var/www/html/WSN' )プロジェクトディレクトリが/var/www/html: $ sudo ln -sT ~/WSN /var/www/html/WSNに表示されるようにシンリンクを作成します
WSGIを有効にする: sudo a2enmod wsgi
apache(ファイルを編集するにはsudoが必要です) $ sudo vi /etc/apache2/sites-enabled/000-default.conf
2つの仮想ホストを作成します。1つはデータエンドポイント用、もう1つはOut Webサイト用です。
以下の9行目と49行は、あなたのウェブサイト名を示しています。 14行目には、WSGIファイルの場所があります。
上記のようにホストの変更を行った後、これを「000-DEFAULT.CONF」に貼り付けます。
< 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 >サーバーの再起動: $ sudo apachectl restart
次に、「demo.microchip.com」& "demo2.microchip.com」からEC2インスタンスの公開IPアドレスにマッピングするDNSエントリを作成する必要があります。
それが完了したら、先に進み、http://demo2.microchip.com/wsn/data/lora/に似たリンクでデータを表示します。
ウェブサイトは次のようになります。( Apacheの構成方法とHTMLファイルの設定方法に応じて):http://demo.microchip.com/wsn/masters/
HTMLページを検査すると、「サーバー US IoTネットワーク IoTネットワーク」で提供します。
重要なファイルは「Scripts.js」で、上記のデータエンドポイントからデータを読み取ります。
残りは、ロケーションマップのテーブルとSVGファイルを含むHTMLファイルだけです。
このセクションでは、それぞれのテクノロジーを使用してセンサーデータの送信をクラウドに開始するために必要な手順について説明します。
あなたがあなたのエンドノードとしてWi-Fiを選択したいかもしれない理由:
** wifiの利点**
Wi-Fiを理想的なオプションにする理由:
Wi-Fiボードは、構成可能な一定期間眠ります。目が覚めると、クラウドに最後に報告されて以来、センサーの読みが変化したかどうかを確認します。読み取りを更新することを選択した場合、Wi-Fiモジュールを使用するAPに接続し、Crypto-Authチップ(ECC508)を使用してAWSクラウドで認証し、更新された値を送信します。
ボードは、使用する前に初めて条件付けられる必要があります。これを以下に説明します。
デモには、MCU(SAML21)、Microchip Wi-Fiモジュール(ATWINC1500)およびその他のセンサーを含むIoTセンサーボルトを使用しました。
HWの詳細については、こちらのこのページにアクセスしてください。
ボードは、@Microchip Directの現時点では購入できません。マスターズカンファレンスの参加者に無料で配布され、購入オプションのために後で追加されます。それまでの間、AWS Zero Touchキットを使用して同じことができます。
ファームウェアをボードにフラッシュするには、こちらのオプションをご覧ください。
このページにアクセスして、必要なツールをインストールしてください。
今。 Wi-Fiを使用したい場合は、手順は次のとおりです。
最初のステップは、クラウドセクションで説明されています。また、aws.amazon.comに進み、ステップを変更した場合にガイドをフォローすることもできます。ここでは、2番目と3番目のステップをカバーします。
ECC608デバイスは、デバイスのアイデンティティを保護し、AWSクラウドで認証するバラットです。
ECC608デバイスをプロビジョニングするには、こちらの手順に従ってください。
上記の手順が完了すると、ECC608がプロビジョニングされます。残りの部分は、winc1500にデバイス証明書を保存することです。
これは、[ m2m_ssl_send_certs_to_wincを呼び出すことにより、アプリケーション側からプログラムで行うことができます。上記は生産に適しています。別の方法は、このガイドのツールを使用することです。
ECC608とWINC1500の両方がプロビジョニングされると。最終的に実際のアプリケーションでボードをフラッシュできます。
Wi-Fiフォルダーのアプリケーションの例には、参照コードが含まれています。
そこにプロジェクトがあります:
main.hの61/63行で接続するAP SSIDとパスワードを変更できます。
ノード名は、Main.Hの73行目です
SAML21は眠りについて、RTC割り込みで目覚めます。 MCUは、 system_sleep(); RTC割り込みを受信すると目覚めます。 RTC割り込みの期間を制御するには、rtc.cの関数「Configure_rtc_count」のカウントを構成します。睡眠時間は、データと電力予算を更新する頻度に依存します。
デバイス証明書のサブジェクトIDと同様にするには、MQTTクライアントIDを入力する必要があります。クライアントIDを「winc15x0.c」の95行目の「gawsmqttclientid」変数に入力します
それはほとんどそれです。Main.Cファイルに移動し、メイン関数を読んで、それに精通し、準備ができたら、コードでSAML21を構築してフラッシュします。
上記のWi-Fiトピック(/Microchip/WSN_DEMO/WIFI)にサブスクライブするAWSテストConsle Ansにログインしている場合は、ボードが実行されたら新しいメッセージが受信されます。
ロラは長距離を表しています。ロラワンは、長距離広範囲のネットワークを表しています。 Lorawanは、Loraが動作するネットワークです。 Lorawanはメディアアクセスコントロール(MAC)レイヤープロトコルですが、主にLPWANゲートウェイとエンドノードデバイス間の通信をルーティングプロトコルとして管理するためのネットワークレイヤープロトコルであり、LORA Allianceが維持しています。 LORAを使用して達成できるアプリケーションの一部は、スマート駐車と車両管理、施設とインフラストラクチャ管理、火災検出と管理、廃棄物管理、IoT用のホームオートメーション、スマートアプライアンス、スマートファーミングと家畜管理、温度と水分の監視、水位センサー、灌漑制御を可能にします。
巨大なリゾートに広がる部屋の温度は、ロラを使用して監視されました。典型的なLORAアプリケーションは、4つのコンポーネントエンドデバイス、ゲートウェイ、ネットワークサーバー、アプリケーションサーバーを持つことで開発できます。温度センサーを備えたエンドデバイス(バッテリーでの実行)を使用して、低出力、安全、長距離などのロラワンの利点を実証しました。 Lorawanを使用したアプリケーションの開発に慣れていないユーザーは、ここでLorawanシステムアーキテクチャの概要を見つけることができます。
ゲートウェイがモングスネットワークサーバーに接続されていることを確認します - ここに記載されている手順
ゲートウェイがオンラインになったら、「アプリケーションの作成」に続いて、「新しいデバイスの作成」セクションを使用してアプリケーションとエンドデバイスをTTNに登録します
エンドデバイスがThing Network Consoleで作成され、DeveuiおよびAppeuiのアプリケーションソースコードで必要なコードの変更が行われました。アプリケーションにOTAA結合方法を使用します。
バッテリー電圧測定を有効にするには、PA15がGNDに短絡していることを確認してください。 I/OジャンパーとMCUジャンパーはバイパスモードである必要があります
EDBG電源を介してマイクロUSBケーブルを使用して、ATSAMR34-XPROをPCに接続します。 ATSAMR34-XPROはCOMポートとして列挙します。ターミナルアプリケーションの使用 @ baudrate 115200、データ-8ビット、パリティ - なし、停止-1ビットおよびフロー制御-NOESTINGSにより、ユーザーはファームウェアの例から情報を監視できます。
プロジェクトを開きます-ATMELスタジオを使用してAPPS_ENDDEVICE_DEMOを使用してDeveUI、Appkey、Appeuiを構成します。
開発されたアプリケーションがNA/AUバンドを使用している場合、使用はゲートウェイが聞いているサブバンドを選択できます。 NA/AUバンドでは、最大64のアップリンクチャネルが許可されています。ここでは8つのチャネルのみで人気のある安価なゲートウェイがあるため、サブバンドの選択が必要です。 Things Gatewayは、Lorawan Regional Parametersに従って、US902と呼ばれるNAのサブバンド-2に耳を傾けます。デモでは、OTAA(Aver the Air Activation)を使用しましたLorawanの方法論に参加しました
Atmel Studioで「デバッグなしで開始」オプションを使用してデモをプログラムします。デモのプログラミング後、エンドデバイス(ATSAMR34-XPRO)は、Lorawan Network Server(The Thing Network)に参加しようとします。ゲートウェイがオンラインであり、Things Network Serverに接続されている場合、Requestの参加はすぐに参加することになります。
TTNには、TTN関数と呼ばれる機能があり、ユーザーがバイトを変更してThing Networkを介して人間の読み取り可能なフィールドに送信できます。このデモのAPIを追加するには、アプリケーションに移動します - > xxxx->ペイロードフォーマットxxxxは、ユーザーアプリケーション名をデコーダーセクションに移動し、以下のデコーダー関数を保存します
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,
};
}
}
デコーダーを構成し、アプリケーションソースコードを使用してボードをプログラミングした後。アプリのデータは、ターミナルウィンドウとThings Network Consoleに表示される必要があります
その後のセンサートランスミッションは15分ごとに発生します
はじめにMiwiはMicrochipワイヤレスの略です。 MIWIは、ワイヤレスパーソナルエリアネットワーク(WPAN)のIEEE 802.15.4標準に基づいて、小型の低電力デジタルラジオを使用するマイクロチップテクノロジーによって設計された独自のワイヤレスプロトコルです。低データ送信レートと短距離、産業監視と制御、家庭用および建物の自動化、リモートコントロール、低電力ワイヤレスセンサー、照明制御、自動メーターの読み取りなどのコスト制約ネットワーク用に設計されています。 MIWIプロトコルは、3つのネットワークトポロジをサポートしています
ミウィの利点
デモは、 Miwi Mesh Networkトポロジを使用して、巨大なリゾートに広がる部屋の温度を監視しました。
典型的なMIWIメッシュアプリケーションは、3つのコンポーネントを持つことで開発できます。
PANコーディネーターとコーディネーターはFFD(フル機能デバイス)タイプであり、パケットをルーティングできますエンドデバイスはFFD(フル機能デバイス) / RFD(機能デバイスの削減)タイプです。 RFDエンドデバイスは、このデモの目的に使用され、睡眠をとることができます。温度センサーを備えたエンドデバイス(バッテリーでの実行)を使用して、低電力、自己治癒などのMIWIメッシュネットワークの利点を実証しました
Pan-CoordinatorノードはSAMA5D2 XPROボードに接続されており、Wi-Fi(インターネット)接続用のWILC3000があります。このデバイスの組み合わせは、このデモではMiwi Bridgeと呼ばれます。ルーターとエンドデバイスは、定期的なデータをPancoordinatorに送信します。 SAMA5D2は、Pancoordinatorからデータを読み取り、AWS EC2インスタンスに送信します。 AWS EC2インスタンスは、受信したデータをWSNモニターツールとWebサーバーに送信します。 WSNモニターツールは、ルーター、センサーノード、およびパン調整器から受信したデータから形成されたメッシュトポロジを示しています。 WSNモニターは、MIWIネットワークを監視するためにも使用できます。
ハードウェア
ソフトウェア
Linuxのat91sama5d27
ATWILC3000モジュールとファームウェア
$ /rootに追加されました。ファームウェアは$ /lib/firmware/mchpに追加されています。AWS Cloud EC2インスタンスサービス
WSNモニターツール
MIWIデモSAMA5D2 Linuxセットアップを複製するためのステップバイステップ手順
WiFiインターフェイスとWiFi接続を紹介します
$ root使用して、ターゲットシステムにログインします。$/root/mchp/フォルダーには、WILC3000ドライバーモジュールが含まれています。$/root/mchpフォルダーには、WILC3000ドライバーモジュールが含まれています。$ /lib/firmwae/mchp/wilc1000_wifi_firmware.binにロードされています$ viエディター変更スクリプトを使用します。AWS Cloud EC2インスタンスのセットアップこのデモにEC2(Amazon Elastic Compute Cloud)サービスを利用しています。 EC2インスタンスは、MIWIネットワークブリッジとWSNモニターツール用の2つのTCPサーバーをホストしています。 AWS EC2インスタンスPythonサーバーをホストするには、AMI Linux仮想マシンが必要です。 Amazon EC2インスタンスは、仮想Linuxマシンを提供します。 AWSアカウントを準備したら、このプロセスは簡単で簡単です。
nohup python miwi_wsn_server_4.py & cd iot nohup python iot_publish_2.py &ミウィセットアップ
MIWI WSN DEMOの場合、/MIWI/SAMR30/PAN_CORD_MODでプロジェクトファイルを使用してプログラムPAN-COORDINATORを使用します。 /miwi/samr30/cord_mod1で利用可能なプロジェクトファイルを使用してコーディネーターノードをプログラムし、/miwi/samr30/sensor_mod1で利用可能なプロジェクトファイルでセンサーボードをプログラムします。
WSNモニターツール
WSNモニターツールは、802.15.4ネットワークモニターとcontorlのマイクロチップ専有ツールです。このツールでは、それぞれのノードとのMIWIネットワーク接続が表示されます。 WSNモニターTOLLは、温度、ネットワークノードのRSSI Vlaue、およびバッテリー電源通知も表示します。 EC2サーバーに接続するには、EC2インスタンスパブリックIPアドレスが必要です。 EC2インスタンス上記のように、EC2インスタンスページでパブリックIPアドレスを使用できます。 WSNモニターツール接続のポート番号は$ 8080です。WSNモニターツール接続が接続されると、EC2サーバーはMIWI Clinetネットワークから受信したパケットを転送します。
EC2サーバーとの接続が成功した後、WSNモニターはMIWIネットワークデータとディスプレイの受信を開始します。