本帖最后由 wzx1994 于 2020-6-22 09:29 编辑
周末收到快递,打开包裹就看到两个板子
包装盒内有两块板子,一块白色的板子加一条数据线,好像是6月的主角,230VAC LED开发板组合套装。不过只有一个驱动控制板,LED灯板没有。(已经寄回)
另外一块就是主角,AVR_IOT开发板。
拿到手后,就跟着演示视频流程走了一遍。
第一步:在阿里云物联网平台里面添加设备,获取三元组密钥
三元组:PublicKey、DeviceName、DeviceSecret
PublicKey:物联网平台为产品颁发的唯一标识,在设备通信及认证中都要用到,需妥善保管。
DeviceName:在注册设备时,自定义的或者自动生成的设备名称,在通信及认证中都要用到,需妥善保管。
DeviceSecret:物联网平台为设备颁发的设备秘钥,和DeviceName成对出现,在设备认证时会用,需妥善保管。
第二步:配置WIFI及三元组信息
用数据线查到开发板上,可以看到可移动存储的设备多出来一个盘,里面有五个文件。
看视频里面放置了三个配置文件到该移动盘内,这三个配置文件是在阿里云的demo里面的Configuration_Files里面,根据配置文件配置好WIFI的名称和密码及阿里云的三元组信息。
第三步:下载安装编译环境atmelstudio 7(直接百度atmelstudio 7就可以下载)
下载完编译环境,就着重说明一下,Atmel Studio 7新建工程,下载阿里云的demo及三个CFG配置文件的配置。1、打开Atmel Studio 7然后选择File下的New,选择Atmel Start Example Project
2、在弹出的窗口会显示如下这个界面,可能会直接跳到下面第二张图的那个界面,如果没有自己跳转就选择BROWSE EXAMPLES跳转到指定界面
3、下载完成后,可以在右侧Solution Explorer窗口里看到阿里云的demo工程。其中主要的三个CFG的配置文件在Configuration_Files下面
4、按照配置文件,配置好相关信息。将阿里云服务器添加的设备三元组信息对应的填好(PublicKey、DeviceName、DeviceSecret),再把WIFI的配置文件的SSID和PASSWORD改成需要连接的WIFI。
5、配置好Tool下选择nDEBUG和UPID
然后直接下载到开发板上,下载过程中,开发板的DEBUGGER位置的黄色LED会慢闪,下载完了后就常亮
正常情况下,WIFI的蓝色LED应该会常亮,昨天晚上测试状态指示灯还是挺正常的,今天测试的时候,红色LED指示灯(ERROR)直接就点亮了。
而且阿里云平台上也没有任何数据,应该没有连接上阿里云服务器。
有时间再研究一下。。。
/********************************2020-6-20***********************************************/
虽然将阿里云的demo编译下载到开发板上,但是一直连不上WIFI,按照视频操作,将三个配置文件放到U盘里也连不上WIFI。
花了半天时间研究了一下阿里云demo的运行流程和代码结构,发现阿里云的demo里面有WIFI和三元组的配置信息。
1、配置WIFI的SSID和密码:config目录下的conf_winc.h中的CFG_MAIN_WLAN_SSID、CFG_MAIN_WLAN_PSK
2、配置三元组信息:config目录下的IoT_Sensor_Node_config.h中的CFG_PRODUCT_KEY、CFG_DEVICE_NAME、CFG_DEVICE_SECRET、CFG_MQTT_HOST_SUFFIX
3、将config目录下的IoT_Sensor_Node_config.h中的CFG_WRITE_DEVICE_SECRET 改为1
static void updateJWT(uint32_t epoch)
{
DEVICE_INFORMATION_read(productKey, deviceName);
// If the EEPROM is blank we use the default device information
if (productKey[0] == 0xFF || deviceName[0] == 0xFF) {
strcpy(productKey, CFG_PRODUCT_KEY); //拷贝CFG_PRODUCT_KEY
strcpy(deviceName, CFG_DEVICE_NAME); //拷贝CFG_DEVICE_NAME
strcpy(deviceSecret, CFG_DEVICE_SECRET); //拷贝CFG_DEVICE_SECRET
#if (CFG_WRITE_DEVICE_SECRET == 1)
CRYPTO_CLIENT_writeDeviceSecret(deviceSecret); //这个是三元组的DeviceSecret,CFG_WRITE_DEVICE_SECRET 默认为0,将这个写到flash里,开发板重新上电也可以直接连上阿里云服务器
#endif
}
/* 下面的步骤就是连接MQTT服务器必须的参数 ,因为阿里云服务器我们创建的设备是要密钥认证的 */
sprintf(clientId, "%s&%s_avr", productKey, deviceName); // clientId can be any string, just <= 64bytes
sprintf(mqttCid, "%s|securemode=2,signmethod=hmacsha256,timestamp=1539939251799|", clientId);
sprintf(mqttPublishTopic, "/sys/%s/%s/thing/event/property/post", productKey, deviceName);
sprintf(mqttSubscribeTopic, "/sys/%s/%s/thing/service/property/set", productKey, deviceName);
sprintf(mqttUsername, "%s&%s", deviceName, productKey);
sprintf(hashMsg, "clientId%sdeviceName%sproductKey%stimestamp1539939251799", clientId, deviceName, productKey);
size_t hashMsgLen = strlen(hashMsg);
CRYPTO_CLIENT_printHMACSHA256(hashMsg, hashMsgLen, mqttPassword);
}
做完上面的修改后,再编译下载到AVR_IOT开发板上,就可以连上WIFI,连上阿里云服务器了。
就算重新上电,也可以再次连上WIFI和阿里云服务器。
/**********************************************************************************************************/
经测试,AVR_IOT开发板可以连上阿里云服务器。可以实时看到温度传感器和光感上报的数据和黄色LED的状态。
进一步测试黄色LED灯的控制效果。
在线调试控制开LED灯,可以看到开发板上DATA指示的黄色LED亮了
在线调试控制关LED灯,可以看到开发板上DATA指示的黄色LED灭了
/******************************************************以上就是从拿到开发板到连接上阿里云服务器的步骤******************************************************/
|