Создайте Wi-Fi / Miwi (15.4) / Lorawan беспроводной сенсорной сети, чтобы контролировать температуру, охватывающие широкую область, такую как отель или завод.
Тематическое исследование: мониторинг температуры в классе во время конференции Microchip Masters, проведенной в JW Marriot Desert Ridge, AZ
Посмотреть демонстрацию (живи только на конференции Masters)
Мониторирует данные датчика (температура, уровень батареи и RSSI)
Охватывает 34-35 мест на обширной площади ок. 1 км2
Безопасное общение с AWS IoT для Wi-Fi
Независимый веб -интерфейс, независимый от устройства, чтобы легко просмотреть данные
Отображение топологии сетки Miwi в Gui WSN Monitor
Живка данных в файл CSV
Аккумуляторные устройства
Демонстрировать различные технологии, решающие одну и ту же задачу
Smart Secure Connected
На Masters 2019 мы контролировали температуру по всей конференции, используя 3 различных сети, одновременно отчитывавшиеся в одну, легко доступную панель панели, размещенную в Интернете, чтобы просмотреть информацию о 34 местоположениях. Кроме того, для реализации LORA мы добавили узел для гольфа, который находится за пределами отеля, чтобы продемонстрировать возможности LORA Long Range.
Система скомпрометирована в основном из двух частей:
Такая же демонстрация и функциональность могут быть достигнуты с использованием любой из 3 технологий. Тем не менее, каждая технология имеет свои сильные стороны и недостатки. Мы предоставляем это объяснение и вспомогательный код, чтобы помочь клиентам Microchip выбирать технологию, которая лучше всего подходит для их приложения.
Примечание. Код здесь предоставляется как есть и не был проверен на качество производства. У него есть некоторые знания в разделе облаков, о которых мы упоминаем позже. Вы несете полную ответственность за тестирование и адаптацию кода в своей собственной системе.
Пользователю нужен портал для просмотра данных. Чтобы сделать независимое представление о платформе, которое не требует установки или пароля, мы выбираем для отображения данных на веб -странице HTML + JavaScript .
Веб -страница - это всего лишь инструмент, который извлекает данные из конечной точки данных, ее можно заменить телефонным приложением или добавлено в представление пользователя в конечном продукте.
Чтобы сделать наше приложение модульным и независимым на передней части реализации, будь то веб -сайт или мобильное приложение. Мы решили внедрить API Restful, используя колбу
Данные возвращаются как объект JSON из конечной точки и могут быть просмотрены здесь.
Для этой демонстрации мы использовали экземпляр виртуальной машины Amazon EC2 Ubunt
Тем не менее, то же самое может быть достигнуто с помощью DigitaloCean в качестве альтернативы. В коммерческом приложении в реальном мире у вас, вероятно, будет свой собственный сервер, и этот шаг не является неотъемлемой частью.
Ради этой демонстрации, при использовании Wi-Fi или 802.15.4 (Miwi) мы решили пойти с Amazon AWS IoT Core .
При использовании Lora & Lorawan вы должны зарегистрировать и использовать одного из поставщиков услуг Lorawan, таких как ** The Things Network (TTN) ** или Senet.
Для этой демонстрации мы пошли с TTN. Мы также добились успеха в том, чтобы преобразовать эту демонстрацию в Senet в Индии, но это не так.
Дизайн и технология, используемые в конечных узлах, могут быть:
При выборе конечных узлов необходимо рассмотреть пользователь:
Каждый из этих моментов обсуждается в разделе «Конечный узел» ниже.
Диаграмма выше суммирует систему. Конечные узлы находятся в спящем режиме до тех пор, пока он не просыпается, не отправит данные в шлюз, а затем снова засыпает.
Лоре и Миви нужны специальные шлюзы для моста из Лоры/Миви до Wi-Fi, прежде чем отправлять данные в облако. У Wi-Fi есть преимущество, что ему не нужны выделенные ворота, если уже есть покрытие Wi-Fi, что имеет место для нашего отеля.
Данные отправляются поставщику услуг Cloud Servicer. AWS IoT для Wi-Fi и Miwi и TTN для Лоры. Наше приложение Flask затем получит данные и предоставит модульную конечную точку данных, которую может представить наша веб -страница. Приложение Flask и веб -интерфейс оба колледжа на нашем экземпляре AWS EC2.
Затем пользователь может получить доступ к нашей веб -странице с любого устройства везде, где он хочет.
В этом разделе мы обсудим, как настроить облачную часть демонстрации.
Мы используем две службы от AWS в этой демонстрации, AWS EC2 в качестве платформы хостинга сервера. и AWS IoT для Wi-Fi и Miwi End Nodes Broker.
Чтобы разместить ваш сервер, вам придется создать экземпляр EC2 виртуальной машины, прежде чем развернуть в него Apache. Процесс прост и прост, как только вы готовы к учетной записи AWS.
Для пошагового руководства, пожалуйста, следуйте руководству Amazon здесь.
Для нашей демонстрации мы пошли с бесплатным типом этого экземпляра: Ubuntu Server 16.04 LTS Free Tier (обновленный до среднего во время конференции до удовлетворения спроса)
В настройках безопасности разрешайте доступ к входящим и исходящим HTTP, HTTPS и SSH трафик. Вы также можете настроить настройку безопасности по своему вкусу. Кроме того, пожалуйста, оставьте закрытый ключ для безопасного доступа к экземпляру, чтобы вы могли натолкнуть свои данные в нем и управлять сервером.
Чтобы получить доступ к вашему серверу, следуйте руководствам, доступным на веб -сайте Amazon здесь. ### AWS IOT Wi-Fi узлы должны будут подключиться к ядру AWS IoT, чтобы отправить данные датчика по MQTT.
Чтобы настроить AWS IoT Cloud, вы можете следовать руководству пользователя проекта AWS Zero Touch Supisioing Kit (от раздела 2 программного обеспечения до раздела 5 AWS IoT in-in-in-setup Registup) Пользователь должен создать функцию Lambda, правило IAT IAT IAT для предоставления AWS.
AWS Zero Touch Supisioing Kit - это проект о предоставлении комплекта Secult Secure Secult Secure для подключения и связи с услугами Amazon Web Services (AWS) IoT. Руководство пользователя проекта AWS Zero Touch Supisioing Kit можно найти ниже: http://microchipdeveloper.com/iot:ztpk
После того, как у вас появится экземпляр EC2 после выполнения следующих шагов, вам нужно будет установить Apache и указать его на размещение нашей веб -страницы и приложения Flask.
Экземпляр EC2 уже поставляется с Python, убедитесь, что вы Git Pip, так как он понадобится позже. $ sudo apt-get update и sudo apt-get install python3-pip
Сначала установите колбу на экземпляр EC2: $ pip3 install Flask
Скопируйте файл "Server/wsn_server.py" в экземпляр EC2.
Теперь давайте опишем части кода, которые вы захотите изменить и адаптироваться к своему приложению:
Вы найдете словари под названием «UsmastersNodelocation» и «IndiaMastersNodelocation». Причина в том, что мы хотели, чтобы наши советы были повторно использованы для нескольких демонстрационных местоположений, не изменяя код на доске, поэтому мы даем каждому узлу и использовали этот словарь, чтобы отобразить узел в комнату.
Например, Node4 во время американских мастеров на "Desert Suite 4". Затем мы отправили один и тот же узел в Индию и поместили его в комнату "Доминион". Таким образом, один и тот же узел, с одним и тем же кодом можно использовать для другого местоположения, просто изменяя приложение Flask без необходимости физической программы устройства.
Обновление кода Физически на плате не всегда удобно в полевых условиях. Мы призываем вас думать о подобных методах и планируем заранее, чтобы избежать обновления совета директоров 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. Чтобы использовать его, пожалуйста, перейдите в Amazon Github Repo здесь.
Наш код можно использовать, как есть, если вы замените путь сертификатов на путь сертификата.
# 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 ()Код ожидает, что темы будут известны и одну тему для каждой технологии. Пользователь может использовать разные темы с различным доступом, если он захочет.
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}
Сеть вещно не требует взаимной аутентификации или сертификатов для подключения, как 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 Gateway добавила некоторую информацию к полезной полезной нагрузке узлов и из-за того, что мы пытаемся минимизировать нагрузку на оплату как можно большую часть, чтобы уменьшить использованную мощность и повысить эффективность. Пожалуйста, обратитесь к разделу LORA ниже.
### apache
Существует множество учебных пособий и контента Apache, мы просто упоминаем о отклонениях здесь.
Во-первых, получить 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 виртуального хоста, один для конечной точки данных и один для веб -сайта.
Строка 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
Теперь вам нужно сделать запись DNS, которая будет отображаться из "demo.microchip.com" & "demo2.microchip.com" на публичный IP -адрес экземпляра EC2.
Как только это будет сделано, просмотрите свои данные по ссылке, похожей на: http://demo2.microchip.com/wsn/data/lora/
и веб -сайт будет признан: (в зависимости от того, как вы настроили Apache и где вы размещаете свои файлы HTML): http://demo.microchip.com/wsn/masters/
Когда вы осматриваете HTML -страницы, которые мы предоставляем на сети Server US IOT IOT »
Вам важный файл - это «scripts.js», который ищет данные из наших конечных точек данных выше.
Остальные - это просто файлы HTML, содержащие таблицу и файлы SVG для карты местоположения.
В этом разделе мы описываем необходимые шаги, чтобы начать отправку данных датчика в облако, используя каждую соответствующую технологию.
Причины вы можете выбрать Wi-Fi в качестве конечного узла:
** Преимущества Wi -Fi **
Причины, которые делают Wi-Fi менее идеальными вариантами:
Доска Wi-Fi спит в течение определенного периода времени, который можно настраивать. Когда он просыпается, он проверяет, изменилось ли чтение датчика с момента последнего сообщений в облако. Если он решит обновить чтение, он подключится к AP, использующему модуль Wi-Fi и аутентифицирует с помощью AWS Cloud, используя чип Crypto-Auth (ECC508) и отправит обновленные значения.
Доска должна быть оправдана в первый раз, только до того, как ее можно будет использовать, мы проходим это ниже.
Для демонстрации мы использовали борду датчика IoT, который содержат MCU (SAML21) и модуль Microchip Wi-Fi (ATWINC1500) и другие датчики.
Для получения дополнительной информации о HW, пожалуйста, перейдите на эту страницу здесь.
Правление не доступно для покупки в настоящее время @microchip Direct. Он был распределен среди участников Masters Conference бесплатно и будет добавлен позже для варианта покупки. В то же время, вы можете сделать то же самое, используя комплект AWS Zero Touch.
Чтобы пропустить прошивку на доске, пожалуйста, просмотрите варианты здесь.
Пожалуйста, перейдите на эту страницу, чтобы установить необходимые инструменты.
Сейчас. Если вы хотите использовать Wi-Fi, шаги такие:
Первый шаг рассматривается в разделе облаков. Вы также можете пойти дальше на aws.amazon.com и следовать за их руководством, если они изменили шаги. Мы рассмотрим 2 -й и 3 -й шаги здесь.
Устройство ECC608 - это Valut, который защищает идентификацию вашего устройства и аутентифицирует в облаке AWS.
Чтобы предоставить устройство ECC608, пожалуйста, выполните шаги здесь.
Как только вы закончите с приведенными выше шагами, ваш ECC608 предоставляется. Оставшаяся часть состоит в том, чтобы хранить сертификат устройства на WINC1500.
Это может быть сделано программатически со стороны приложения, позвонив: m2m_ssl_send_certs_to_winc Вышеуказанное подходит для производства. Альтернативой является использование инструмента в этом руководстве.
После того, как ECC608 и WINC1500 предоставляются. Наконец -то вы можете прошить доску реальным приложением.
Пример приложения в папке Wi-Fi содержит справочный код для этого.
Там есть проекты:
Вы можете изменить AP SSID и пароль, к которому вы хотите подключиться на строках 61/63 на main.h
Имя узела находится в строке 73 на Main.h
SAML21 ложится спать и просыпается при прерывании RTC. MCU пойдет спать при вызове: system_sleep(); и просыпается, когда прерывание RTC получено. Чтобы управлять продолжительностью для прерывания RTC, настройте счет в функции «configure_rtc_count» на RTC.C, продолжительность сна зависит от того, как часто вы хотите обновлять данные и свой бюджет мощности.
Вы должны ввести идентификатор клиента MQTT, чтобы быть похожим на идентификатор субъекта в сертификате вашего устройства. Введите идентификатор клиента в переменную "gawsmqttclientid" в строке 95 "winc15x0.c"
Это в значительной степени, теперь перейдите в файл main.c, прочитайте основную функцию и познакомьтесь с ней, и когда вы будете готовы, создайте и прошиваете SAML21 с кодом.
Если вы вошли в Test Consle AWS ANS, подписывающийся на тему Wi-Fi, упомянутую выше (/microchip/wsn_demo/wifi), вы должны увидеть новое сообщение, полученное после запуска платы.
Лора обозначает дальность. Лораван выступает как сети с широкой площадью дальних областей. Лораван - это сеть, в которой работает Лора. Lorawan является протоколом уровня управления доступом (MAC), но в основном является протоколом сетевого уровня для управления связи между шлюзами LPWAN и устройствами конечных узлов в качестве протокола маршрутизации, который поддерживается альянсом LORA. Некоторые из приложений, которые могут быть выполнены с использованием LORA, - это интеллектуальная парковка и управление транспортными средствами, средства и управление инфраструктурой, обнаружение и управление пожарами, управление отходами, автоматизация дома для IoT, обеспечивая интеллектуальные приборы, интеллектуальное сельское хозяйство и управление животноводством, температурный мониторинг и мониторинг влаги, датчики уровня воды и контроль над ирригацией.
Температура комнат, распространяющихся на огромном курорте, контролировалась с использованием LORA. Типичное приложение LORA может быть разработано с помощью 4 компонентов конечного устройства, шлюза, сетевого сервера и сервера приложений. Конечное устройство с датчиком температуры (работая на батареях) использовалось для демонстрации преимуществ Lorawan, таких как низкая мощность, безопасная и большой диапазон. Пользователи, которые являются новичками в разработке приложений, использующих Lorawan, могут найти обзор архитектуры системы Lorawan системной архитектуры.
Убедитесь, что шлюз подключен к вещам сетевого сервера - шаги, упомянутые здесь
Как только шлюз выйдет в сеть, «Создайте приложение», а затем раздел «Создать новое устройство» для регистрации приложения и конечного устройства в TTN
После того, как конечное устройство создано в сетевой консоли и необходимых изменениях кода в исходном коде приложения для DeVeui и Appeui. Мы будем использовать метод соединения OTAA для нашего приложения.
Чтобы включить измерение напряжения батареи, убедитесь, что PA15 заключен в GND. Джампер ввода/вывода и перемычка MCU должен быть байпаса
Подключите ATSAMR34-XPRO к ПК с помощью кабеля Micro USB через источник питания EDBG. ATSAMR34-XPRO будет перечислять как COM-порт. Использование терминального приложения @ Baudrate 115200, Data - 8 -битный, паритет - нет, остановка - 1 бит и управление потоком - нет настройки позволит пользователю контролировать информацию из примера прошивки
Откройте проект - apps_enddevice_demo с использованием Atmel Studio Настройте DeVeui, Appkey и AppeUi, используя файл conf_app.h, доступный в следующем каталоге - /src /config
Если разработано приложение использует полосы NA/AU, использование может выбрать поддионер, который прослушивает шлюз. Как группа NA/AU разрешает до 64 каналов восходящей линии связи. Популярные недорогие шлюзы здесь только на 8 каналах, поэтому требуется выбор поддиапазона. Gateway прослушивает поддистофу - 2 для NA, в противном случае называется US902 в соответствии с региональными параметрами Лоравана. Для демонстрации мы использовали методологию OTAA (над активацией воздуха) в Лораване
Программируйте демо, используя опцию «Start без отладки» в Atmel Studio. После программирования демонстрации конечное устройство (ATSAMR34-XPRO) попытается присоединиться к сетевому серверу Lorawan (The Things Network). Если шлюз находится в Интернете и подключен к сетевому серверу вещей, запрос на присоединение приведет к немедленному принятию.
У TTN есть функции, называемая функциями TTN, которая позволяет пользователям изменять байты, отправляемые по сеть вещам, в читаемые поля человека. Чтобы добавить 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,
};
}
}
После настройки декодера и программирования платы с помощью исходного кода приложения. Данные приложения должны начать появляться в окне терминала и на сетевой консоли вещей
Последующие передачи датчиков происходят каждые 15 минут
ВВЕДЕНИЕ Miwi означает Microchip Wireless. Miwi-это проприетарные беспроводные протоколы, разработанные технологией Microchip, в которых используются небольшие цифровые радиоприемники с низким энергопотреблением на основе стандарта IEEE 802.15.4 для беспроводных личных сетей (WPAN). Он предназначен для низких скоростей передачи данных и коротких расстояний, сетей с ограниченными стоимостью, таких как промышленное мониторинг и управление, автоматизация дома и здания, дистанционное управление, беспроводные датчики с низким энергопотреблением, управление освещением и автоматическое показание счетчика. Протокол Miwi поддерживает три сетевых топологии
Преимущества Миви
Демо введение температура комнат, распределенных по всему огромному курорту, контролировалась с использованием топологии сети сетки Miwi.
Типичное приложение Miwi Mesh может быть разработано с помощью 3 компонентов.
Координатор и координатор PAN имеют тип FFD (полнофункциональное устройство) и способны маршрутизации конечных устройств пакетов могут быть типом FFD (полное функциональное устройство) / RFD (Устройство по сниженной функции). Конечные устройства RFD использовались для целей этой демонстрации из -за возможности спать. Конечное устройство с датчиком температуры (работа на батареях) использовали для демонстрации преимуществ сети сетки Miwi, таких как низкая мощность, самолечение и т. Д.
Узел пан-координатора подключен к плате SAMA5D2 XPRO и имеет WILC3000 для подключения Wi-Fi (Интернет). Эта комбинация устройств называется мостом Миви в этой демонстрации. Маршрутизаторы и конечные репутации отправляют периодические данные в пан-координатор. SAMA5D2 считывает данные из пан-координатора и отправляет их в экземпляр AWS EC2. Экземпляр AWS EC2 отправляет полученные данные в инструмент WSN Monitor и WebServer. Инструмент WSN Monitor изображает топологию сетки, образованную из данных, полученных от маршрутизатора, узлов датчиков и панкоординатора. Монитор WSN также может использоваться для мониторинга сети Miwi.
Аппаратное обеспечение
Программное обеспечение
AT91SAMA5D27 на Linux
ATWILC3000 Модули и прошивка
$ /root из пакета Buildroot. Прошивка добавлена в $ /lib/firmware/mchp .AWS Cloud EC2 Службы экземпляра
WSN Monitor Tool
Пошаговая процедура для воспроизведения DEMO MIWI SAMA5D2 Linux Setup
Привлечь интерфейс Wi -Fi и соединение Wi -Fi
$ root в качестве имени пользователя.$/root/mchp/ папка содержит модуль драйвера Wilc3000.$/root/mchp содержится модуль драйвера Wilc3000.$ /lib/firmwae/mchp/wilc1000_wifi_firmware.bin$ vi для модификации учетных данных маршрутизатора.Настройка экземпляра AWS Cloud EC2 Мы используем сервисы EC2 (Amazon Elastic Compute Cloud) для этой демонстрации. Экземпляр EC2 организует два сервера TCP для Miwi Network Bridge и инструмента WSN Monitor. Экземпляр 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
Для демонстрации Miwi WSN, программы Pan-Coordinator с файлом проекта, доступным по адресу/miwi/samr30/pan_cord_mod. Программируйте узлы координатора с файлом проекта, доступными по адресу/miwi/samr30/cord_mod1 и программируйте доску датчиков с файлом проекта, доступным по адресу/miwi/samr30/sensor_mod1.
WSN Monitor Tool
Инструмент WSN Monitor - это проприетарное инструмент Microchip для 802.15.4 Сетевой монитор и Contorl. В этом инструменте будет отображаться сетевое соединение Miwi с соответствующими узлами. Свод WSN Monitor также отображает температуру, RSSI Vlaue сетевых узлов и уведомление о питании батареи. Для подключения с сервером EC2 требуется публичный IP -адрес экземпляра EC2. Экземпляр EC2 Публичный IP -адрес доступен на странице экземпляра EC2, как указано выше. Номер порта для подключения инструмента WSN Monitor составляет $ 8080 После подключения инструмента монитора WSN EC2 Server пересылает пакет, который будет получен в Clinet Network Miwi.
После успешного подключения с сервером EC2 монитор WSN начинает получать сетевые данные Miwi и отображения.