创建Wi-Fi / Miwi(15.4) / Lora无线传感器网络,以监视覆盖酒店或工厂等广阔区域的温度。
案例研究:在AZ JW Marriot Desert Ridge举行的微芯片大师会议期间的教室温度监测
查看演示(仅在硕士会议上进行)
监视传感器数据(温度,电池水平和RSSI)
在大约大面积上覆盖34-35个位置。 1 km2
确保与AWS IoT进行Wi-Fi和Miwi的沟通
设备独立的Web界面可轻松查看数据
数据记录到CSV文件
电池操作的设备
展示解决相同任务的不同技术
智能安全连接
在2018年MASTERS上,我们使用3个不同的网络同时报告了一个易于访问的仪表板,以在线托管,以查看34个位置的信息。此外,对于Lora实施,我们添加了一个高尔夫球场节点,该节点位于酒店外面,以展示Lora的远程功能。
该系统主要由两个部分妥协:
使用三种技术中的任何一个都可以实现相同的演示和功能。但是,每种技术都有自己的优势和缺点。我们提供此解释和支持代码,以帮助微芯片客户选择最适合其应用程序的技术。
注意:此处的代码按原样提供,并且未对生产质量进行测试。它在以后提到的云部分中有一些知识问题。您完全负责测试和调整自己的系统中的代码。
用户需要门户来查看数据。为了使平台独立视图不需要安装或密码,我们选择在HTML + JavaScript网页上显示数据。
该网页只是从数据终点检索数据的工具,可以用电话应用程序替换或在最终产品中添加到每个用户视图中。
使我们的应用程序模块化和独立的前端实现,无论是网站还是移动应用程序。我们决定使用烧瓶实现一个安息的API
数据从端点返回为JSON对象,可以在此处查看。
出于此演示的目的,我们使用了Amazon EC2 Ubuntu虚拟机实例(因为我们已经使用了AWS IoT Core)来轻松管理同一接口上的所有服务。
但是,Digitalocean可以作为替代方案来实现同样的成就。在商业现实世界的应用程序中,您可能会拥有自己的服务器,并且此步骤不确定。
为了进行此演示,使用Wi-Fi或802.15.4(MIWI)时,我们决定与Amazon AWS IoT Core一起使用。
使用Lora&Lorawan时,您必须注册并使用Lorawan服务提供商之一,例如** Things Network(TTN)**或Senet。
出于这个演示的目的,我们与TTN一起去了。我们在将此演示转换为印度Senet方面也取得了成功,但这超出了此页面的范围。
最终节点中使用的设计和技术都可以是:
选择End Nodes时,用户需要考虑:
这些点中的每一个都在下面的末端节点部分中进行了讨论。
上图总结了系统。结束节点处于睡眠模式,直到给定时间醒来,将数据发送到网关,然后返回睡眠。
Lora和Miwi需要一个专门的网关,直到将数据发送到云之前,从Lora/Miwi到Wi-Fi。 Wi-Fi的优势是,如果已经有Wi-Fi覆盖范围,那么我们的酒店位置就是这种情况,它不需要专用的网关。
数据发送给云服务提供商。 Wi-Fi和Miwi和TTN的AWS IoT for Lora。然后,我们的烧瓶应用程序将获取数据,并提供一个模块化数据终点,我们的网页可以呈现。烧瓶应用程序和Web界面都在我们的AWS EC2实例上进行了共同分配。
然后,用户可以从他想要的任何设备访问我们的网页。
在本节中,我们将讨论如何设置演示的云部分。
我们在此演示中利用AWS的两项服务,AWS EC2作为服务器托管平台。以及Wi-Fi和Miwi End Nodes MQTT经纪人的AWS IoT。
要托管您的服务器,您将必须在将Apache部署到其中之前创建虚拟机EC2实例。一旦准备好了AWS帐户,该过程就很容易且直截了当。
有关逐步指南,请在此处遵循《亚马逊指南》。
对于我们的演示,我们使用了免费此实例类型的免费: Ubuntu Server 16.04 LTS免费层(会议期间升级到中型,以适应需求)
在安全设置,允许访问入站和出站HTTP,HTTPS和SSH流量。您还可以根据自己的喜好调整安全设置。另外,请保留私钥以安全地访问实例,以便您可以将数据推入其中并控制服务器。
要访问服务器,请在此处关注Amazon网站上可用的指南。 ### AWS IoT Wi-Fi和Miwi End节点需要连接到AWS IoT Core,以通过MQTT发送传感器数据。
要设置AWS IoT Cloud,您可以遵循AWS零触摸套件项目的用户指南(从第2节软件安装到第5节AWS IOT即时注册设置)用户需要创建LAMBDA功能,AWS IOT规则和IAM角色,以适用于AWS PROFISION。
AWS Zero Touch Provisioing套件是一个针对配置零触摸安全的配置套件的项目,以与Amazon Web Services(AWS)IoT服务连接和通信。 AWS零触摸的用户指南可以从下面找到:http://microchipdeveloper.com/iot:ztpk
在遵循上述步骤后,将EC2实例启动并运行后,您将需要安装Apache并指向其托管我们的网页和烧瓶应用程序。
EC2实例已经随附Python,请确保您以稍后需要的方式进行git pip。 $ sudo apt-get update和sudo apt-get install python3-pip
首先,在您的EC2实例上安装烧瓶: $ pip3 install Flask
将“服务器/wsn_server.py”文件复制到EC2实例。
现在,让我们描述您要修改并适应应用程序的代码的一部分:
您会发现名为“ USMasterSnodeLocation”和“ IndiamastersNodeLocation”的字典。原因是,我们希望我们的板重新使用多个演示位置的板,而无需更改板上的代码,因此我们给每个节点一个数字,并使用此字典将节点映射到内部的房间。
例如,在美国硕士“沙漠套房4”上的Node4。然后,我们将同样的节点运送到印度,并将其放在“ Dominion”房间上。这样,相同的节点,具有相同代码可以通过更改烧瓶应用程序而无需物理编程设备来用于不同位置。
在现场,在板上进行物理更新的代码并不总是方便的。我们鼓励您考虑这种方法,并提前计划,以避免更新董事会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 )要从End Node获取通知,应用程序需要订阅AWS IoT Core和TTN服务器(或您选择的任何服务器)
我们为AWS IoT使用了公开提供的Pythond代码。要使用它,请在此处访问Amazon Github回购。
如果您用证书路径替换证书路径,我们的代码可以使用。
# 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一样连接,而是依靠用户名和密码。因此,我们展示了如何使用“ blask_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在End Node有效载荷中添加了一些信息,并且由于我们试图尽可能最大程度地减少使用功率的付费负载,以降低使用的功率并提高效率。请参阅下面的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个虚拟主机,一个用于数据终点,一个用于OUT网站。
下面的第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”映射到EC2实例的公共IP地址。
完成此操作后,继续以类似的链接查看您的数据: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板睡一段时间可配置。当它醒来时,它会检查以查看自上次报告以来的传感器读数是否发生了变化。如果它选择更新读数,它将连接到AP USNing Wi-Fi模块,并使用Crypto-Auth芯片(ECC508)在AWS Cloud进行身份验证,并发送更新的值。
董事会仅在使用董事会才能使用之前就需要第一次进行,我们在下面浏览此问题。
对于演示,我们使用了包含MCU(SAML21)和Microchip Wi-Fi模块(ATWINC1500)和其他传感器的IoT传感器bord。
有关HW的更多信息,请转到此页面。
目前@microchip Direct目前无法购买该董事会。它是免费分发给硕士会议与会者的,稍后将添加以购买选项。同时,您可以使用AWS零触摸套件进行相同的操作。
要将固件刷到板上,请在此处浏览选项。
请转到此页面安装必要的工具。
现在。如果要使用Wi-Fi,则类似的步骤是:
第一步在云部分中介绍。您也可以继续访问aws.amazon.com并遵循他们的指南,即他们更改了步骤。我们将在此处介绍第二和第三步。
ECC608设备是保护您的设备身份并使用AWS云进行身份验证的valut设备。
要提供您的ECC608设备,请在此处执行步骤。
一旦完成了上述步骤,就可以提供ECC608。其余部分是将设备证书存储在WINC1500上。
可以通过调用以下方式从应用程序侧进行编程完成: m2m_ssl_send_certs_to_winc上面适合生产。另一种方法是在本指南中使用该工具。
一旦提供ECC608和WINC1500。您最终可以使用真实的应用程序刷新板。
Wi-Fi文件夹上的应用程序示例包含参考代码。
那里有项目:
您可以更改要在Main.H上的第61/63行上连接到的AP SSID和密码
节点名称在第73行,在main.h上
SAML21入睡,醒来RTC中断。 MCU将在打电话给以下电话时入睡: system_sleep();并在收到RTC中断时醒来。要控制RTC中断的持续时间,请在rtc.c上的“ configure_rtc_count”函数中配置计数,睡眠持续时间取决于您想要刷新数据和功率预算的频率。
您必须输入MQTT客户端ID才能类似于设备证书中的主题ID。在“ winc15x0.c”的第95行中输入客户ID中的“ gawsmqttclientid”变量
现在几乎就是这样,现在转到main.c文件,读取主功能并熟悉它,当您准备就绪时,用代码构建并刷新SAML21。
如果您已登录到上面提到的Wi-Fi主题的AWS测试consle ans ANS(/microchip/wsn_demo/wifi),则一旦板运行,就应该看到收到的新消息。
简介洛拉(Lora)代表远距离。 Lorawan代表远距离大区域。 Lorawan是Lora运营的网络。 Lorawan是媒体访问控制(MAC)层协议,但主要是用于管理LPWAN网关和端节设备之间的通信作为路由协议,由Lora Alliance维护的路由协议。 Lorawan规范的1.0版可以使用LORA完成的一些应用程序,包括智能停车和车辆管理,设施和基础设施管理,消防探测和管理,废物管理,用于物联网的家庭自动化启用智能家具,智能农业和牲畜管理,温度和水平监测,水位传感器和灌溉控制器,水平传感器和灌溉控制。
Lorawan的优势
演示介绍散布在巨大度假胜地的房间温度是使用洛拉(Lora)监测的。可以通过拥有4个组件End设备,网关,网络服务器和应用程序服务器来开发典型的LORA应用程序。带有温度传感器的最终设备(在电池上运行)用于证明Lorawan的优势,例如低功率,安全和远距离。
硬件
软件
逐步的步骤复制演示
在Arduino安装中的SODAQ板软件包中找到您的变体。CPP文件。我的variant.cpp文件位于此目录C: users cxxxx appdata local arduino15 packages sodaq hardware samd samd 1.6.18 variants sodaq_explorer。根据您的Arduino安装和版本,它可能略有不同。
打开带有任何编辑器的打开variant.cpp文件,并进行以下添加:在文件中找到此名称的表:const pindescription g_apindescription [] =在表中的最后一行之后,添加以下几行,添加以下几行:// 48 vbat {portb,portb,portb,5,pio_analog,pin_Analog,pin_attr_analog,pin_analog,adc_channalel13,dotext _ not__en_on_on_on_pemnim,not_on_pwm, // VBAT用户完成文件的更改时,表的结尾应看起来像这样:// 47按钮{Porta,14,pio_output,pin_attr_digital,no_adc_channel,no_adc_channel,not_on_pwm,not_on_pwm,not_on_timer,not_on_timer,external_int_int_14} pin_attr_analog,adc_channel13,not_on_pwm,not_on_timer,external_int_none},// vbat
然后,用户可以将以下行添加到与variant.cpp或用户相同的路径上的文件variant.h中#define vbat_measure(48U)可能只能在主要草图中添加#define vbat_measure 48。然后保存文件。
然后,用户可以使用此代码读取电池电压(MV):
'#define ADC_AREF 3.3f'
'#define BATVOLT_R1 4.7f'
'#define BATVOLT_R2 10.0f'
'#define VBAT_MEASURE 48'
pinMode(VBAT_MEASURE, INPUT);
uint16_t getBatteryVoltage()
{
pinMode(VBAT_MEASURE, INPUT);
uint16_t voltage = (uint16_t)((ADC_AREF / 1.023) * (BATVOLT_R1 + BATVOLT_R2) / BATVOLT_R2 * (float)analogRead(VBAT_MEASURE));
return(voltage);
}
提示:如果报告的电压略有熄灭或可变/嘈杂,则用户可以对ADC读数进行一些平均
网关注册和配置最终设备将使用户能够创建网络服务器帐户,注册其网关和END设备。创建/注册帐户后,将您的网关连接到Things Network网络服务器。按照以下链接进行网关注册的步骤
网关在线后,“创建应用程序”,然后是“创建新设备”部分,用于在TTN中创建应用程序和END设备时注册应用程序和End设备。以下是在此应用中在TTN中创建EUI和键时要注意的事情。选择自动创建任何应用EUI和Dev EUI。 App键(16个字节)应为AppKeypRefix + Dev EUI,它是项目JW_Marriot_Desert_ridge Proj中源代码的一部分。注意:应用程序可以是用户选择的任何东西。 Demo使用一种取消方法来推导App密钥,并且应用程序开发人员不得强制使用此方法。默认情况下,AppKeypRefix为{0xff,0xee,0xdd,0xcc,0xbb,0xaa,0x99,0x88}; Dev EUI可以按照图中突出显示。
一旦在“事物”网络控制台中创建了终端设备后,并在DEVEUI和APPEUI的应用程序源代码中进行了必要的代码更改。我们将使用OTAA加入方法作为我们的应用程序。
在将源代码编程到SADAQ板上的SAMD21之前,请确保在董事会经理中安装了1.6.11版,以用于SODAQ XPLORER董事会的董事会包装支持。
使用Bootloader模式为SODAQ XPLORER套件编程。快速连续点击重置,并使用Arduino对SODAQ XPLORER套件进行编程。 TTN具有称为TTN功能的功能,该功能允许用户更改通过Things 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,
};
}
}
在配置解码器并使用应用程序源代码编程后。应用数据应开始出现。
简介MIWI代表微芯片无线。 MIWI是由Microchip技术设计的专有无线协议,该协议使用IEEE 802.15.4无线个人区域网络(WPAN)标准使用小型低功率数字收音机。它专为数据传输速率和短距离,成本约束网络(例如工业监控和控制),家庭和建筑自动化,遥控器,低功耗无线传感器,照明控制和自动仪表读数而设计。 MIWI协议支持三个网络拓扑
Miwi的优势
使用MIWI Star Network拓扑监测了散布在巨大度假胜地的房间的演示介绍温度。
可以通过拥有2个组件来开发典型的MIWI应用程序。 PAN协调器和最终设备。 END设备可以FFD/RFD类型。由于能够入睡,因此使用RFD端设备是为了进行此演示的目的。带有温度传感器(电池运行)的最终设备用于证明
硬件
软件
通用信息什么是AWS物联网? AWS IoT是一个托管云平台,可让连接的设备轻松,安全地与云应用程序和其他设备进行交互。什么是AWS Lambda? AWS Lambda是一项计算服务,可根据事件运行代码,并自动管理该代码所需的计算资源。设备注册:“ JITR”在每个新设备lambda函数lambda函数的开始时一次发生一次。当带有已知CA连接的未知设备摘要Lambda功能将处理的情况下,Lambda功能将触发
逐步复制MIWI演示的过程
创建AWS帐户
lambda设置的lambda设置遵循“v。AWSiotjust-In-time注册设置”链接中提到的步骤
为了此演示,我们创建证书生态系统,我们创建自己的信任链在此处运行脚本到:
以下证书将生成root-ca.crt/键签名ca.crt/key
在最后一步CA证书中向AWS IoT注册CA,AWS要求用户注册并激活它,以便当使用CA连接的设备连接到它时,它可以触发Lambda功能。注册的一部分要求用户证明用户确实具有CA的私钥。注册步骤
为了完成注册的步骤,用户必须 - 配置AWS CLI凭据打开命令提示符导航至“ C: Program Files Amazon Amazon Awscli”类型“ AWSCONFIGURE”类型“ AWSCONFIGURE”输入信息,从用户帐户凭据文件-RUN AWS_REGINGISTER.PY.PY.PY.PY.PY.PY.PY.PY.PY.PY.PY.PY
为提供ECC608用户提供的配置ECC608需要:
生成设备公共/私钥对,并为设备证书创建CSR。
在Atmel Studio 7上打开SAMR30 XPRO ECC解决方案,将EDBG USB ATWINC1500-XPRO在EXT1上和AtsAMR30-XPRO OPENT3的Ext3上的AtcryptoAuth-B XPro板上连接,并设置了以下设置为ATSAMR30-XPRO和TERMINICAL STECTINCE设置的设置,该解决方案将具有Publarited PublicAl distept expply expply expply expply expply和csr。
生成设备证书。生成WINC设备证书:
将证书数据存储到WINC1500中。将证书数据存储到WINC1500
连接到AWS iotCloud并发布到thingname