Wifi- nodeMCU 之配置编译下载 alios-things 到 esp8266 实现天猫精灵语音控制 | 学习笔记

简介: 快速学习 Wifi- nodeMCU 之配置编译下载 alios-things 到 esp8266 实现天猫精灵语音控制

开发者学堂课程【嵌入式之 RFID 开发与应用2020版:Wifi- nodeMCU 之配置编译下载 alios-things 到 esp8266 实现天猫精灵语音控制】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/665/detail/11214


Wifi- nodeMCU 之配置编译下载 alios-things 到 esp8266 实现天猫精灵语音控制

演示

如何接入平台,首先注册账号,登录如下网页:

www. aligenie.com

我已经注册过账号,可以直接点立即开始。如果没有注册过,就需要点击右上角的注册,使用淘宝账号即可注册。登录完成之后,就可以开始创建自己的产品,

步骤如下:

控制台->产品开发->添加新产品->家装灯饰-灯->

品牌:任选一个

产品名称:智能灯

产吕型号:顶灯 001

接入方式:直接接入

通信协议:  wifi

数据格式:标准

登录完成之后直接选择首页-控制台 -iot 接入平台,然后选择控制台。进入之后,可以开始添加产品。选择家装灯源,选择灯,点击下一步。

品牌如果没有确定的第三方品牌,就随便选一个,名字也可以自定义。产品型号输入顶灯 001。通信协议选择 WiFi,点击标准,点击提交即可。

创建完成之后,主要有 4 条信息:

image.png

分别是产品密钥,三元组。产品密钥也就是标识符。如果要查看三元组,就需要进入到调试设备,调试设备当中,有三元组点击查看,一般会给普通用户提供 10 个设备,可以使用这 10 个设备进行测试:

image.png

将 3 个信息,产品 ID,设备,Mir 和设备名粘贴到后面需要修改的代码中:

example/ linkkitapp/ linkkit_ example_ _solo. C

#define PRODUCT KEY"a1WnjjL.. .”

#define PRODUCT SECRET"04omx06. . .”

#define DEVICE NAME"43TGkfp. . ."

#define DEVICE SECRET'qR13N2I. . .

文件开头加入两个头文件:

#include "espressif/esp common.h"

#include "gpio.h"

要修改的第一个文件如下:

源代码中找到 example,linkkitapp,solo.c,首先需要在开头加入头文件,因为要操作 8266,所以需要将 8266 相关的头文件加入:

#include "espressif/esp common.h"

#include "gpio.h"

接下来在三元组当中加上产品密钥。直接在网页中复制产品 ID,产品 ID 对应的是产品 key,第二个是 device secret,第三个设备名也相同,接下来产品密钥需要回到开头复制标识符,将修改进行保存,三元组就修改完毕。相当于是产品设备的唯一标识,否则不能够唯一的操作设备。

更改完成之后,还需要在回调函数当中进行相应的操作。在代码中进行搜索,搜索完成之后粘贴如下代码:

static int user_ property_ set_ event_ handler(const int devid, const char *request, const int

request_ len)

{

intres= 0;

cJSON *root,* prop;

user_ example_ _ctx_ t *user_ example_ ctx = user_ example_ get_ _ctx();

root = cJSON_ Parse(request);

if(root == NULL) return res;

prop = cJSON_ _GetObjectltem(root,' powerstate");

if(prop != NULL && cISON_ lsNumber(prop))

{

if(prop->valueint== 1)

{

GPIO_ OUTPUT(GPIO_ Pin_ _2, 0);//D4

}

else if

{

(prop->valueint == 0)

GPIO_ OUTPUT(GPIO_ Pin_ 2, 1); //D4

}

else

}

res = IOT_ Linkkit_ Report(user_ example_ _ctx->master_ devid, ITM_ MSG_ _POST_ PROPERTY,

(unsigned char *)request, request_ len);

return 0;

}

将代码直接覆盖即可。

此时指定的灯是 D4,D4 对应的是面板灯,此时 D4 的 io 口是 gpio2,需要操作D2 对应的 io 口,就是 gpio4,所以就要将 io 口改为 4,改为 4 表示可以直接控制具体的实际产品,接下来需要修改初始化代码,初始化代码是 LinkkitAPP 中的entry,也就是在启动函数加初始化代码。

首先需要定义连接 WiFi 的基本账号信息:

netmgr_ ap_ config_ t config = {{"ChinaNet- fTVU"}, {""}, {"hgd4de5a"};

接下来添加初始化代码。加入到网络初始化后:

netmgr_ set_ ap_ config (&config) ;//配置 wifi 网

netmgr_ start (false) ;//配置 wifi 网相关

linkkit_ check_ awss() ;//自动配网,代码自己添加

前面两句是配置 WiFi 网络,后面的代码需要实现,所有操作在官方文档当中都有讲解,将函数加入上去,就可以完成自动配网。接下来重新生成,编译一次。此时出现错误,系统提示 165 行错误,将多余的 else 删除即可。接下来将程序下载。复制代码之后,进入目录:

OUT-LINK -banary-bin

将文件复制在文件夹中。回到如下目录。:

Platform-MCU-ESP 8266-BSP中。

将以下文件复制在文件夹中:

image.png

接下来将下载工具打开,打开下载工具之后,还需要配置。因为不只有一个镜像有许多镜像需要将地址修改。

首先修改 0 地址:

0x0000 地址:  boot_ v1. 7. Bin

其次,修改 ESP:

0x3FC000 地址: esp_ init_ data_ default. Bin

最后修改 BLACK:

0x3FE000 地址: blank. Bin

然后修改地址。第一个地址不用修改,第 2 个地址是 3FC,之后是 3FE,最后是01。效果如下:

image.png 

要注意在开头打勾,第一次下载完成之后,第二次只需要下载最后一个即可。

配置完成之后,将设备连接:

image.png

点击 Flash。出现二维码,

进行烧录:

image.png 

烧录完成之后,打开串口调试助手,查看输出信息,串口调试助手需要记住波特率是最大波特率,此时无任何信息输出:

image.png

复位之后,进行扫描热点。连接完成之后。用户说出如下词汇:

“天猫精灵”,“搜索设备”,效果如下:

image.png

用户说出如下词汇:

“天猫精灵”,“开灯”,效果如下:

image.png

此时没有现象是因为没有连接继电器。连接继电器之后,用户说出如下词汇:

“天猫精灵”,“开灯”,效果如下:

image.png

用户说出如下词汇:

“天猫精灵”,“关灯”,效果如下:

image.png

此时发现引脚连接相反,更改代码如下:

if (prop != NULL && cJSON_ I sNumber (prop) )

{

if (prop->valueint == 1)

{

GPIO_ OUTPUT (GPIO_ Pin_ 4,1) ; //D4

}else if (prop->valueint == 0)

{

GPIO_ OUTPUT (GPIO_ Pin_ 4,0) ;

/ /D4

}

}

代码更改完成,连接到具体硬件上查看效果,连接方法与之前相同。连接方法如下:

插头夹了几根线:

image.png

以下是开发板:

image.png 

用户说出如下词汇:

“天猫精灵”,“开灯”,效果如下:

image.png

用户说出如下词汇:

“天猫精灵”,“关灯”,效果如下:

image.png

以上是通过 8266 完成从普通的 LED 灯到家中的实际灯泡,再从本地云端到第三方阿里云云端。将来也可以接百度、腾讯等第三方,原理相同。

以上是 8266 接入天猫精灵的内容讲解。

相关文章
|
物联网 开发者
Wifi-nodeMCU-esp8266 固件库下载与调试工具介绍 | 学习笔记
快速学习 Wifi-nodeMCU-esp8266 固件库下载与调试工具介绍
Wifi-nodeMCU-esp8266 固件库下载与调试工具介绍 | 学习笔记
|
5月前
|
网络协议
了解AT指令以及STM32F103如何通过ESP8266连接到WiFi
AT指令是一组用于控制调制解调器的命令,最早由Hayes公司为其智能调制解调器开发。如今,AT指令已被广泛应用于各种通信模块中,包括GSM、Bluetooth和WiFi模块。AT指令通常以“AT”开头,后跟特定的命令和参数。通过这些指令,我们可以执行一系列操作,如设置网络参数、发送数据和查询状态等。
223 0
|
开发框架 JSON 物联网
Nanoframework 操作单片机蓝牙配置WIFI的案例
通过`Nanoframework`的蓝牙配置Wifi的名称和密码
135 0
|
Ubuntu Linux 芯片
linux系统中wifi驱动的配置与编译实现方法
linux系统中wifi驱动的配置与编译实现方法
724 1
|
存储 网络协议 开发工具
WIFI DTU产品设计与实现(基于STM32F103+QT配置上位机案例设计分享)
WIFI DTU产品设计与实现(基于STM32F103+QT配置上位机案例设计分享)
295 0
|
传感器 网络架构 智能硬件
STM32通过esp8266连接WiFi接入MQTT服务器
STM32通过esp8266连接WiFi接入MQTT服务器
962 1
|
数据采集 网络协议 人机交互
【STM32】ESP8266 wifi模块创建阿里云产品
什么是ESP8266呢?这个是WiFi模块,是一个由安可信科技公司开发出来的模块,这个模块的核心处理器ESP8266在比较小的尺寸封装中集成了业界领先的微型的MCU,它带有了16位精简的模式,主要的频率支持80MHz和160MHz,支持RTOS,集成WiFi,板载天线。
【STM32】ESP8266 wifi模块创建阿里云产品
|
网络协议 安全 开发工具
ESP8266 wifi 模块配置,Wechat+APP控制实现
ESP8266 wifi 模块配置,Wechat+APP控制实现
193 0
|
智能硬件
STM32智能家居(4)ESP8266连接WIFI
STM32智能家居(4)ESP8266连接WIFI
694 0
|
网络协议 算法 安全
ESP8266 WIFI模块的使用
ESP8266 WIFI模块的使用