欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

机智云连接ESP8266--远程控制点亮RGB灯

程序员文章站 2022-04-15 15:56:37
概述 智能灯,是一个简单常见的智能产品,硬件电路简单,程序本身也不复杂;下面我们使用esp8266开发板和机智云云端,实现如何将一个传统的灯泡,改造成可以远程控制开关的智能灯。 1、准备工作 硬件: (1)esp8266开发板 (2)usb线 软件: (1)esp8266开发环境 eclipse I ......

概述

智能灯,是一个简单常见的智能产品,硬件电路简单,程序本身也不复杂;下面我们使用esp8266开发板和机智云云端,实现如何将一个传统的灯泡,改造成可以远程控制开关的智能灯。

1、准备工作

硬件:

(1)esp8266开发板

(2)usb线

软件:

(1)esp8266开发环境 eclipse ide

(2)vmwave 虚拟机 linux

2、开始开发

2.1 注册开发者账号

机智云开发者账号,用于产品接入、设备管理、ota服务、mcu开发等的功能使用。

注册链接:

 

2.2新建产品

注册完成后,登陆至机智云开发者中心后台后,点击开发者中心后台右上角的“创建新产品”菜单,在跳转页面新建一个名为“led灯”的产品,选择“wi-fi/移动网络方案”方式接入,并完成产品创建。如下图:

 机智云连接ESP8266--远程控制点亮RGB灯

 

 

 

2.3 新建数据点

本次的项目“led灯”,它需要实现的功能是远程开灯和关灯,那我们只需在云端建立一个“布尔值”的数据点即可完成这件事,如下图:

 机智云连接ESP8266--远程控制点亮RGB灯

 

 

 机智云连接ESP8266--远程控制点亮RGB灯

 

 

 添加数据点完成之后,点击“应用”,即可完成整个产品的数据点的新建工作。

 

 2.4 云端生成代码

 

如图,左边菜单栏选择mcu开发,需要填写的product secret看下面

 机智云连接ESP8266--远程控制点亮RGB灯

 

如图,左边菜单栏选择基本信息,点击显示完整密钥就行了

 机智云连接ESP8266--远程控制点亮RGB灯

 

 

 

下载代码包

 机智云连接ESP8266--远程控制点亮RGB灯

 

 2.5 修改代码

 在如下目录导入rgb的.c和.h文件

 

 机智云连接ESP8266--远程控制点亮RGB灯

 

 

 在主函数下初始化rgb灯

 机智云连接ESP8266--远程控制点亮RGB灯

 

 

设置回调函数

smartconfig 按键配网,长按和短按rgb颜色反馈

 机智云连接ESP8266--远程控制点亮RGB灯

 

修改app/gizwits/gizwits_product.c 下的 gizwitseventprocess

在之前设置的数据点(event_)对应的case下添加代码

 机智云连接ESP8266--远程控制点亮RGB灯

 

代码修改就完成了

还有一些细节如声明头文件就不发出来了,各位自行添加

2.6 编译

 

因为电脑使用的x86编译器生成的机器码是无法在esp8266上运行的,需要交叉编译工具链编译,所以要在虚拟机linux系统上进行

具体操作参考机智云的开发平台搭建,这里就不再赘述

http://docs.gizwits.com/zh-cn/devicedev/wifisoc/gokit3s%e4%ba%8c%e6%ac%a1%e5%bc%80%e5%8f%91.html#gokit3-s-%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e5%87%86%e5%a4%87

 

注意事项:

要使当前编译的环境变量生效,执行source /etc/environment,这样在当前命令行终端下该编辑的环境变量有效,换个命令行终端就无效了!当然更好的方式就是重启系统了

 检查编译器

1、cd ~

2、执行echo $path,查看当前环境变量,是否已经存在/opt/xtensa-lx106-elf/bin。

3、在命令行终端执行xtensa-lx106-elf-gcc -v,如可看到版本号,表示当前交叉编译器安装成功

 

如图表示编译完成

 机智云连接ESP8266--远程控制点亮RGB灯

 

 

 

2.7 烧写固件

下载烧写软件

https://www.espressif.com/sites/default/files/tools/flash_download_tools_v3.6.4.rar

 

esp_init_data_default.bin 0x3fc000
blank.bin 0x3fe000
boot_v1.6.bin 0x00000
user1.4096.new.6.bin 0x01000

开发板进入烧录方式

如图,开关拨到下载位置,开发板关闭

 机智云连接ESP8266--远程控制点亮RGB灯

 

点击烧录软件的开始按钮后,给开发板上电

烧录完毕后记得将开关拨回运行

bin 文件的烧录地址看下面

 机智云连接ESP8266--远程控制点亮RGB灯

 

 

2.8设备开始连接云

下载配网app

到这个网址去下载app用来给esp8266配网,ios还是安卓看个人手机

https://download.gizwits.com/zh-cn/p/98/99

登陆开发者账号

软件需要登陆的,就先前创建的账号

设备配网

如下面几个图操作

机智云连接ESP8266--远程控制点亮RGB灯

机智云连接ESP8266--远程控制点亮RGB灯

机智云连接ESP8266--远程控制点亮RGB灯

 

开发板调至待连接状态:长按smartconfig键,直到rgb灯变绿

  机智云连接ESP8266--远程控制点亮RGB灯

机智云连接ESP8266--远程控制点亮RGB灯

 

 

设备已连接

 机智云连接ESP8266--远程控制点亮RGB灯

远程控制led灯

机智云连接ESP8266--远程控制点亮RGB灯

 

 机智云连接ESP8266--远程控制点亮RGB灯

 

 

 

至此,实现了手机远程控制led灯

刚开始会遇到各种各样的问题

比如手机连不上开发板,检查rgb灯是否变绿,家里wifi是否正常,注意:5g wifi是无法连接上esp8266的

还有ununtu修改了环境变量后重启显示空白桌面的情况,要重新安装gnome

等等等等。。

加油,共勉吧