赞
踩
1、esp32接入阿里云物联网平台,实现天猫精灵语音控制;
2、esp8266直连接入阿里云物联网平台,实现天猫精灵找队友零配网功能和语音控制;
3、esp32 sdk 直连接入天猫精灵IOT开放平台,实现天猫精灵找队友零配网功能和语音控制;
4、如何在天猫精灵IOT开放平台二次开发智能设备的 H5控制面板;
5、分享可商用的ESP8266 SDK连接阿里云物联网生活平台的在线远程升级OTA笔记。
我写过很多物联网控制的博文系列,包括微信公众号、微信小程序控制硬件,私有云对接天猫精灵服务器,抑或是硬件端 esp8266/esp32
等系列博文,这是一个一个专题是写下我们如何在阿里云物联网上全栈开发我们的应用专题,让我们无须企业账号也可以体验设备-云端-App” 的过程;让我们变得更强,一个人担任一个公司的全部职责,全栈开发物联网攻城狮前进;
我会带领大家轻轻松松地把自己的设备接入天猫精灵,告别 “单机时代”,走进语音控制物联网时代。 有疑问请留言区留言,或者加群大伙们讨论;写总结,写博文不容易,望大家多多体谅!
应各位小伙伴需求,《乐鑫esp8266直连天猫精灵iot开放平台》教学视频已经推出,欢迎前来学习:传送门
为什么我要选择乐鑫这个 wifi 芯片作为我们专题的硬件端,因为乐鑫的东西是开源的,芯片上 SDK 开发包等资料都已经开放在 GitHub 上,而且硬件开发板在 tao宝上随地可见,价格很便宜。咳咳,我不是乐鑫官方人员,也不在阿里云工作,我只希望带来的教程,让我们国内物联网开发者体验当前 AI语音控制的快乐与开发便捷,助国内物联网蓬勃发展;
首先先贴出2者的官网,阿里云生活物联网平台:https://living.aliyun.com ,而阿里云物联网平台:https://iot.console.aliyun.com/ 。
在2017年抑或再之前,阿里云生活物联网平台是还没问世的,我们那时候用的是 阿里云物联网平台(也叫 阿里云物联网套件),那时候我也是没接触哈哈!
虽然2者之间只有2字之差,其实很多东西都是一样的,服务于物联网,下面引用官网的解释:
生活物联网平台和物联网平台均为阿里云IoT提供的云服务平台,两个平台各自优势和使用场景如下。
物联网平台,提供原子化的设备接入能力,适用于云开发能力较强的用户,可以在各个行业领域使用。单击什么是物联网平台了解更多详情。
生活物联网平台,提供了设备接入能力、移动端的SDK以及免开发的公版App和界面,更适用于消费级的智能设备开发者,开发门槛较低,可以快速实现消费级设备的智能化,如智能家电、穿戴、家装领域等。
总结:
ICA
标准数据格式;而生活物联网平台只能是ICA标准数据格式;esp32 是一个支持 ble+wifi 双模共存的芯片,具体的参数我不再多说,请自行查阅官网;
乐鑫从去年2018年就已经自研了一个自主研制开发乐鑫自主产品的iot
框架,适合 esp32和esp8266开发,乐鑫新出来一个名字叫Espressif IoT Development Framework
,简称esp-idf
,包括配置、编译、下载固件到开发板等步骤,一条龙服务。其实是基于freeRtos
实时系统的,同时开发时候是模块化的,这样以来比传统开发节省开发周期。更详细的说明请点击我看看:来自网上
esp32
工具链框架 3.2 分支 !因为做产品抑或正式版SDK,基本是基于稳定版开发的;所以,官网提供阿里云物联网接入是基于 3.2 分支开发的,那么我们需要克隆指定的分支或者在自身的代码中切换分支到3.2;
因为国内拉取 GitHub
仓库是在太慢了,我为大家提供下一个国内码云的镜像,仓库我是同步官网的;
git clone -b v3.2 https://github.com/espressif/esp-idf.git
git clone -b v3.2 https://gitee.com/xuhongv/esp-idf.git
毕竟这个 git 仓库里面有很多子模块,但是子模块也是链接到 GitHub
,所以:大家还要更新下子模块;
git submodule update
esp-idf
文件夹下面的 .gitmodules
文件,全部修改替换为下面代码;[submodule "components/esp32/lib"] path = components/esp32/lib url = https://gitee.com/xuhongv/esp32-wifi-lib.git [submodule "components/esptool_py/esptool"] path = components/esptool_py/esptool url = https://gitee.com/xuhongv/esptool.git [submodule "components/bt/lib"] path = components/bt/lib url = https://gitee.com/xuhongv/esp32-bt-lib.git [submodule "components/micro-ecc/micro-ecc"] path = components/micro-ecc/micro-ecc url = https://gitee.com/xuhongv/micro-ecc.git [submodule "components/coap/libcoap"] path = components/coap/libcoap url = https://gitee.com/xuhongv/libcoap.git [submodule "components/aws_iot/aws-iot-device-sdk-embedded-C"] path = components/aws_iot/aws-iot-device-sdk-embedded-C url = https://gitee.com/xuhongv/aws-iot-device-sdk-embedded-C.git [submodule "components/nghttp/nghttp2"] path = components/nghttp/nghttp2 url = https://gitee.com/xuhongv/nghttp2.git [submodule "components/libsodium/libsodium"] path = components/libsodium/libsodium url = https://gitee.com/xuhongv/libsodium.git [submodule "components/spiffs/spiffs"] path = components/spiffs/spiffs url = https://gitee.com/xuhongv/spiffs.git [submodule "components/json/cJSON"] path = components/json/cJSON url = https://gitee.com/xuhongv/cJSON.git [submodule "components/mbedtls/mbedtls"] path = components/mbedtls/mbedtls url = https://gitee.com/xuhongv/mbedtls.git [submodule "components/asio/asio"] path = components/asio/asio url = https://gitee.com/xuhongv/asio.git [submodule "components/expat/expat"] path = components/expat/expat url = https://gitee.com/xuhongv/libexpat.git [submodule "components/lwip/lwip"] path = components/lwip/lwip url = https://gitee.com/xuhongv/esp-lwip.git [submodule "components/mqtt/esp-mqtt"] path = components/mqtt/esp-mqtt url = https://gitee.com/xuhongv/esp-mqtt.git [submodule "components/protobuf-c/protobuf-c"] path = components/protobuf-c/protobuf-c url = https://gitee.com/xuhongv/protobuf-c.git
git submodule update
配置较多, 如果不太懂, 也不用纠结, 后续都可以修改;官网的demo是 RGB 调色功能,所以我们的产品配置这样:
然后,我们需要模组选择为 esp32 ,然后我们新建一个调试设备,我们要拿到一个设备的四个参数:
选择面板, 手机 APP 上会显示同样界面;;配网二维码是贴在产品包装上, 终端客户给设备配网中需扫描此二维码;调试阶段,可以使用公版APP来控制配网;
选择面板时, 主题面板在手机上仅能显示标准界面, 没有 RGB 调色功能. 我们选择自定义面板, 增加 RGB 调色;
安装公版APP调试配网控制;
最后一步就是配网文案了,我们使用默认就好了;
终于到了重点了啦;克隆下仓库就好了,老套路,大家可以去官网拉取,或者来我码云这拉取,代码一样的;
git clone --recursive https://github.com/espressif/esp-aliyun.git
git clone --recursive https://gitee.com/xuhongv/esp-aliyun
由于 esp32 和 esp8266 将会采用不同的 sdkconfig.defaults
和对应的 partitions.csv
,在对应的 make 命令中加入了对应的芯片选项,如 chip=esp32
或 chip=esp8266。
sdkconfig_esp32.defaults
以及 partitions_esp32.csv
。sdkconfig_esp8266.defaults
以及 partitions_esp8266.csv
。但是,本篇先讲 esp32 下篇再讲 esp8266 ,所以这样做在 esp-aliyun 目录下执行:
cd examples/solutions/smart_light
make chip=esp32 defconfig
make menuconfig
重要:配置代码默认时钟任务栈分配。Component config --->FreeRTOS ---> (2560) Timer stack size
,改为更大的 4096 或者 3072 ,视开发业务而定;否则提示错误重启:ERROR A stack overflow in task Tmr Svc has been detected.
最后:将 USB 线连接好 ESP 设备和 PC,确保烧写端口正确。配置烧录串口,然后编译并且烧录;
make flash
single_mfg_config.csv
文件,编辑,替换里面的参数;具体的原理,后面的博文会讲;single_mfg_config.csv
文件,编辑,替换里面的参数,就会生成 my_single_mfg.bin
文件;$IDF_PATH/components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py --input single_mfg_config.csv --output my_single_mfg.bin --size 0x4000
0x210000
:$IDF_PATH/components/esptool_py/esptool/esptool.py write_flash 0x210000 my_single_mfg.bin
配网是必须的,也是第一步,而且刚刚烧录成功第一次运行时候,就会启动配网模式;这时候,用公版APP扫描 配网二维码,就会进去配网界面,之后成功后就会进去控制界面;
如果配网失败,请检查运行日志,留言区写下:
这个 smart_light
的接线 rgb 灯如下:
/* Red LED 红色 */
#define LEDC_IO_0 (0)
/* Green LED 绿色 */
#define LEDC_IO_1 (2)
/* Blued LED 蓝色*/
#define LEDC_IO_2 (4)
根据你的配置,你会看到界面 rgb 灯大概如下:
安装天猫精灵app,修改这个 阿里智能 品牌的灯具的名称,我下面修改为 阳台灯 ,然后对天猫精灵说:
下篇将为大家开讲 《esp8266 sdk 直连接入阿里云物联网平台,实现天猫精灵语音控制;》,敬请期待!!
esp8266
带你飞、加群付费QQ
群,不喜的朋友勿喷勿加:434878850Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。