Alios-Thins教程连载 ③ 图文并茂教你使用乐鑫esp8266轻松连接阿里飞燕平台,个人设备实现轻松对接天猫精灵 。(上篇)(附带demo)
2018-09-13 17:54
1881 查看
版权声明:本文为博主半颗心脏一心一血敲出来的原创作品,未经博主允许不得转载,多谢支持。 https://blog.csdn.net/xh870189248/article/details/82692224
三、 设备端代码跑起; 四、 下载`APP`; 五、 我们的设备重新上电,开始配置;
2、项目里面包括多个产品,我们需要新建一个产品《灯》,协议选择
3、新产品的建立之后,我们需要为他配置控制面板,我们选择公版
四、 下载
-
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。
- 本博文目录:
文章目录
- 一、 前言;
- 二、 飞燕平台新建产品并配置控制面板;
- ①:登录后台;
- 1、先登录官网[飞燕平台](https://living.aliyun.com),新建项目,成功之后如下:
- 2、项目里面包括多个产品,我们需要新建一个产品《灯》,协议选择`iCA`,成功之后列表会有一个产品信息列表:
- 3、新产品的建立之后,我们需要为他配置控制面板,我们选择公版`APP`,之后点击设置面板:
- 4、配置控制面板,下面几个属性是根据您定义什么属性自动生成的,编辑之后,记得保存并且发布到《智能家居》:
- 5、因为正式生产是一码一设备,阿里提供给我们50个测试设备数量,这50个测试设备需要手动去获取设备码,之后成功之后,打开这个设备,会出现阿里分配给我们的信息,注意这几个参数后面我们会用到哦!
- 6、其他的什么配网步骤,语言设置,我们先不管,我们到此为止,基本的产品新建就此弄好了!
一、 前言;
阿里巴巴出来的
天猫精灵x1早已经出来一年多来了,今年还出来了方糖等智能音箱,在去年时候,我还写了esp8266如何直连阿里智能平台,那个是属于直连模式;而这篇文章主要还是介绍如何介入阿里物联网生活2.0,无非就是阿里智能平台的升级,我们也叫飞燕平台;升级的内容也是很强大的,支持很多芯片,目前我看到都有20多种了,而且还有demo提供给我们;最重要的是,它是一条龙服务;
- 飞燕平台的接入使用阿里巴巴提供开源的
alios-things
嵌入式系统,并且提供一个叫linkkitapp
的代码工程示范。 - 该
alios-things
嵌入式系统由阿里巴巴日常维护和适配各大芯片模组厂商,并且个人技术爱好者也可以贡献代码pull quest
到仓库,可谓是福音啊! - 阿里服务器的服务质量不容置疑,从
UI
到大数据都是一流的,有阿里服务器的支撑,可以实现如下功能: - 这么强大,那肯定是收费的!!使用一码一设备,多少钱一个激活码自己查询下吧!这样保证了强大的安全性!
- 在前端部分提供了
SDK
包,支持自主开发APP
,也可以支持公版APP
,话说这个这真的是大大减少了入门门槛! - 不足地方嘛!?部分芯片适配工作还没完全成熟,需要大家一起去开发和适配!不过底层的东西都是已经适配好了,不必担心!
二、 飞燕平台新建产品并配置控制面板;
①:登录后台;1、先登录官网飞燕平台,新建项目,成功之后如下:
2、项目里面包括多个产品,我们需要新建一个产品《灯》,协议选择iCA
,成功之后列表会有一个产品信息列表:
3、新产品的建立之后,我们需要为他配置控制面板,我们选择公版APP
,之后点击设置面板:
4、配置控制面板,下面几个属性是根据您定义什么属性自动生成的,编辑之后,记得保存并且发布到《智能家居》:
5、因为正式生产是一码一设备,阿里提供给我们50个测试设备数量,这50个测试设备需要手动去获取设备码,之后成功之后,打开这个设备,会出现阿里分配给我们的信息,注意这几个参数后面我们会用到哦!
6、其他的什么配网步骤,语言设置,我们先不管,我们到此为止,基本的产品新建就此弄好了!
三、 设备端代码跑起;
对于怎么搭建
alios-things的环境搭建以及怎么烧录固件到esp8266,这里我就不再累赘了!下面我们关注我们的核心工程<linkkitapp>;
-
首先,我们必须要打开
AliOS-Things\framework\protocol\linkkit\iotkit\sdk-encap\imports
的这个文件iot_import_product.h
,修改里面的信息: 把我们项目的产品key
和secret
以及我们新建的测试产品的name
和secret
如下图覆盖:
- 然后,我们要知道阿里的配网流程和我们之前不一样,先调取配网方法,再调取确认配网方法,以往我们是直接一个就可以了。具体的配网流程看这里点我 。我这里结合上篇的
gpio
的代码,实现按键确认配网。核心代码如下:
#define GPIO_INPUT_IO 5 gpio_dev_t input; static void gpio_enable_irq(){ hal_gpio_clear_irq(&input); } static void gpio_isr_handler(){ //for esp8266 ,need to disable interrupt hal_gpio_disable_irq(&input); printf("gpio_isr_handler()\n"); do_awss_active(); //delay 2s ,then enable interrupt aos_post_delayed_action(2000, gpio_enable_irq, NULL); } void aos_gpio_init(){ /* input pin config */ input.port = GPIO_INPUT_IO; /* set as interrupt mode */ input.config = IRQ_MODE; /* configure GPIO with the given settings */ hal_gpio_init(&input); /* gpio interrupt config */ hal_gpio_enable_irq(&input, IRQ_TRIGGER_FALLING_EDGE, gpio_isr_handler, (void *)GPIO_INPUT_IO); }
- 之后,我们编译一下工程,打印信息中可能有警告,可以忽略:
aos make linkkitapp@esp8266
- 最后,我们烧录固件,我的是
esp8266-12f
模块:
四、 下载APP
;
-
第一步:因为我们使用配置的是公版
APP
,所以,下载测试版APP
: https://living.aliyun.com/doc#muti-app.html -
第二步:我们需要手动为我们的产品设置二维码,百度任意一个自动生成二维码的网址,我这里选择草料二维码,文本信息是根据我们的项目和设备名字生成,格式如下:
比如我的项目的产品密钥是siod5624
,设备名字是xuhongTest
http://www.taobao.com?pk=siod5624&dn=xuhongTest
- 第三步:app扫码此二维码。之后的你懂的!
五、 我们的设备重新上电,开始配置;
- 该
linkkitapp
工程在首次运行时候,是默认进去配网模式的 ,首次运行之后2秒内我们要按键一下表示进去确认配网! 注意先让手机开始搜索设备,之后设备上电开启,然后2秒后按键一下确认配网,串口先打印下:
chan 6 chan 9 chan 11 chan 12 chan 1 chan 6 chan 11 chan 1 chan 2 chan 3 chan 4 chan 5 chan 6 chan 7 chan 8 chan 9 chan 10 chan 11 chan 12 chan 13 chan 1 chan 2 chan 6 chan 9 chan 11
- 然后,就会检测到手机发来的信号了,同时连接路由器,重启系统,手机提示连接成功,打开如下界面,是不是我们上面说的界面啊?
-
esp8266源代码学习汇总:https://github.com/xuhongv/StudyInEsp8266
-
esp32源代码学习汇总:https://github.com/xuhongv/StudyInEsp32
-
大家只需要下载这个文件替换文件就可以实现按键确认配网,注意还有一些驱动配置文件需要在我的
GitHub
的alios-Things
仓库获得哦!!
相关文章推荐
- Unity3D使用SqliteKit连接Sqlite数据库并在Android设备上读取简明教程
- Alamofire网络库基础教程:使用 Alamofire 轻松实现 Swift 网络请求
- 根据仿人人客户端教程,编程实现Demo(四)---个人主页的实现(已完结)
- Alamofire网络库基础教程:使用 Alamofire 轻松实现 Swift 网络请求
- 2018个人年度总结:我是如何从嵌入式开发到服务器开发对接天猫精灵、小爱智能音箱服务器!懵懂 | 奋斗 | 进阶 | 信心
- 轻松使用调整对象@GTK+ 2.0 中文教程连载
- Alamofire网络库基础教程:使用 Alamofire 轻松实现 Swift 网络请求
- clip-path 教程:使用 CSS 中的 clip-path 轻松实现多边形
- SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 SignalR 简单示例 通过三个DEMO学会SignalR的三种实现方式 SignalR推送框架两个项目永久连接通讯使用 SignalR 集线器简单实例2 用SignalR创建实时永久长连接异步网络应用程序
- 【工业串口和网络软件通讯平台(SuperIO)教程】八.SuperIO通讯机制与设备驱动对接的说明
- 使用花生壳、路由器、个人电脑进行站点部署并实现外网域名访问图文详解(花生壳设置方法 使用方法 使用教程)
- Android网络开发回顾之旅 ① 在Android手机集成使用MQTT协议 ,实现搞掂移动控制硬件端。(附带Demo)
- Jmeter系统入门教程(安装、组件使用、Demo展示、连接数据库、压测报告)
- 天猫精灵使用体验之二——家用电器的智能化改造(借助天猫精灵实现家用电器的语音控制)
- Esp8266 进阶之路31【外设篇】分享一个乐鑫esp8266 SDK编程使用 IIC总线驱动 0.96寸的OLED显示屏,显示天气预报信息。(附带Demo)
- Alamofire网络库基础教程:使用 Alamofire 轻松实现 Swift 网络请求(一)
- 使用SSH实现分页的详细demo(附带数据库,MYSQl和Oracle)
- Alamofire网络库基础教程:使用 Alamofire 轻松实现 Swift 网络请求
- 【工业串口和网络软件通讯平台(SuperIO)教程】八.SuperIO通讯机制与设备驱动对接的说明
- Esp8266学习之旅13 动手做个8266毕设小案例,smartConfig + MQTT协议轻松实现远程控制一盏LED。(附带demo)