本文是由开发者分享基于机智云物联网平台的一款开发设计,通过ESP8266模块、NodeMCU开发板,实现普通排插到Wi-Fi智能控制排插的改造升级,以下为开发者的分享内容。我买了某品牌的LED灯 ,可以通过手机App控制开关状态和亮度,晚上睡觉前躺着就能关灯,大大方便了我等懒人。拆开一看,发现其核心部分是一片Wi-Fi模块 ,电路也不算复杂,我觉得可以自己DIY一个,就去网上淘了几个ESP8266模块和基于该模块的NodeMCU开发板,打发空闲时间。本人有一点51单片机和Keil基础,但对于Wi-Fi模块来说还是个 “小白”,仅简单地了解过NodeMCU固件,后来发现了机智云平台能够根据需求在云端生成代码,下载后简单地改一下就能用了,平台还提供手机端App 。用了七八天的空闲时间,我终于完成了Wi-Fi插座的制作。ESP8266芯片是乐鑫生产的,而我们买到的ESP-XX模块是安信可用乐鑫的模块再加上必要电路形成的一个单片机最小系统。机智云提供了云平台并可在云端生成代码,生成的代码是建立在安信可SDK的基础上,然后又添加了自己的一些控制协议。下面我们就以控制一个LED的亮灭为例,看看具体怎么操作吧!>>>在线生成机智云代码在机智云官网注册一个账号,然后登录 ,进入开发者中心创建新产品。产品名称就叫LEDtest吧 ,选 择 “Wi-Fi/移动网络方案”,通信方式和数据传输方式保持默认即。
接着新建数据点。
本次制作只是控制一个LED的开关, 所以我只定义了一个最简单的可写布尔型数据点,也就是说只有开和关这两种状态。
在MCU开发页面中选择SOC方案和自己的硬件平台 ,注意这里的单位是 Mbit ( 4 MB= 32Mbit) 。在基本信息中复制 Product Secret后粘贴,然后生成代码包。
>>>搭建开发环境开发环境我选择了AiThinker_IDE, 因为它不需要安装 Linux,也不需要虚拟机,在Windows下直接解压就能使用。下载解压后先运行ConfigTool.exe,单击“Default” 后 ,再选择 “Save” 。
打开AiThinker_IDE. exe,这里会用到DotNetFx40 Framework,以前没安装的话可能会提示安装。打 开 “File”, 单 击 “Import”,选择下图所示的文件。
然后单击 “Next”, 选择下载到的机智云代码主目录 。
>>>修改程序打开主目录下的 Makefile,把下图所示的红框内容按照实际情况进行修改。
修改参数如下:BOOT?=none: 不使用 bootBOOT?=old: 用老版本的 boot_*v l . l 十BOOT?=new: 使用新版本的 boot_ v l.2+APP?=0: 不使用远程升级 F0TAAPP?=1: 使用FOTA, 生成 user1...binAPP?=2: 使用 FOTA, 生成 user2...binSPI 工速度和模式,一般不用改动,保持默认即可。SPI SPEED?=40SPI_MODE?=QIOSPI_SIZE_MAP: Flash映射方式注意:有人说用的是多少MB的Flash就写多少,本人试过2MB和4MB都没问题,但用1MB的Flash写SPI_SIZE_MAP?=1时,编译失败。这里还要修改几个选中的文件,我们一个一个来吧。
往下拉,找到 gizwitsEventProcess 函数。这个函数的作用是用云端数据点的值 CurrentDataPoint.valueLED 来控制LED等需要控制的实际电路,当云端为1时(ON),我们自己定义的变量STA=0,LED点亮;云端为0时(OFF),则STA=1,LED熄灭。
继续向下 ,修改userHandle用户定 时器的回调函数,默认为1000ms调用一次 ,也可以在 gizwits_ protocol.c文件中修改 USER_TIME_MS,此处调用时间修改为100ms。把 STA赋值给实际操作的 GPIO来完成 LED的亮灭 ,并把本地状态与云端完成同步。
文件最下面,初始化云端数据点的值。
接下来 ,打开 user_main.c文件, 找到下图所示的位置。
在user_main.c 文件中把与Key2有关的函数都删掉。在Key1ShortPress函数里添加 “STA= ! STA; ”, 即每次短按把STA取反,也就是说短按点亮 LED,再按一下LED灯灭 。Key1LongPress里还有—句“gizwitsSetMode(WIFI_ AIRLINK_ MODE)”, 其作用是在长按按键时让ESP8266模块进入配对模式,此时开发板右上角LED点亮 ,然后通过手机 App把模块接入Wi-Fi。
再往下就是GPIO 的初始化。ESP8266 模块右上角有一个 LED接到了 GPIO2 , 在程序中配置一下用作配对指示 。开发板靠近Micro USB的LED接在了 GPIO16 ,这就是我们最终要控制的指示灯了。值得注意的是,GPIO16的控制与其他端口的控制是不同的。
下图所示是按键与LED的电路图。
到这里程序就修改完了,仔细检查确认无误后保存。在最左侧C/C + + Projects窗口主目录上单击鼠标右键,选择 “Build Project”。如果没有错误,就会看到生成了 user1.4096.new.4.bin 等文件,如下图所示。没看到的话说明程序有错误,请仔细确认。
打开ESP8266烧写工具ESPFIashDownloadTool_ v3 .6.4,选择ESP8266 DownloadTool,按照图所示进行配置 。
设置好后单击 “START”,下载完成后按一下模块的 Reset,模块端配置完成。>>>手机端配置下载安装并打开机智云App。账号 、密码页面直接选跳过,点击右上角的 “ + ”号 ,选一键配置后输入当前手机所连接的 SSID和 Wi-Fi密码。进行下一步 ,模组类型选择乐鑫,在出现 “通电后按以下提示操作”后(如图所示) ,长按 NodeMCU开 发 板 Flash按键 ,右上角 LED点亮后,点 击 “我已完成上述操作”, 稍等一会儿会提示完成设备添加。
试着划动 “开启/关闭”按钮,看NodeMCU开发板上的LED是否可以正常亮灭。
按动NodeMCU开发板上的Flash按键,LED亮灭的同时,手机 App上的开关状态也应同步开关。
到这里,我们已完成了DIY—个Wi- Fi插座的所有知识介绍。接下来找出洞洞板,抄起电烙铁,开工制作。>>>实际制作我找出以前买来的3位插排。拆掉开关和接线端子,用腾出来的空间安装220V转 5V 开关电源、ESP8266控制板和继电器,把开关盖用热溶胶固定在原来的位置。在确定可以放下2个继电器后,我决定做2路的智能插座,剩下的1路用来做常通插座。
找一个手机5V适配器,去掉外壳和USB 接口以减小体积。
电路用洞洞板简单搭一下,ESP07 小板加上 LDO、阻容、继电器,一会就焊好 了 。
修改上面调试好的程序,把数据点改成 2个, 编译完成后烧写到模块,然后用热熔胶固定。高压 、低压之间记得用塑料片隔离,安全第一。
因为没有按键作AIRLINK,所以我将程序改为上电后30s未连接到Wi-Fi自动切换为AIRLINK配网模式,同时板载的蓝色LED点亮, 因为很少会用到此功能,且从侧面也能看到灯光,就没有额外开LED孔位。
在手机端输入Wi-R的SSID和密码就能把插排接入互联网,测试正常后,把插座装好,就可以投入使用了。
接着新建数据点。
本次制作只是控制一个LED的开关, 所以我只定义了一个最简单的可写布尔型数据点,也就是说只有开和关这两种状态。
在MCU开发页面中选择SOC方案和自己的硬件平台 ,注意这里的单位是 Mbit ( 4 MB= 32Mbit) 。在基本信息中复制 Product Secret后粘贴,然后生成代码包。
>>>搭建开发环境开发环境我选择了AiThinker_IDE, 因为它不需要安装 Linux,也不需要虚拟机,在Windows下直接解压就能使用。下载解压后先运行ConfigTool.exe,单击“Default” 后 ,再选择 “Save” 。
打开AiThinker_IDE. exe,这里会用到DotNetFx40 Framework,以前没安装的话可能会提示安装。打 开 “File”, 单 击 “Import”,选择下图所示的文件。
然后单击 “Next”, 选择下载到的机智云代码主目录 。
>>>修改程序打开主目录下的 Makefile,把下图所示的红框内容按照实际情况进行修改。
修改参数如下:BOOT?=none: 不使用 bootBOOT?=old: 用老版本的 boot_*v l . l 十BOOT?=new: 使用新版本的 boot_ v l.2+APP?=0: 不使用远程升级 F0TAAPP?=1: 使用FOTA, 生成 user1...binAPP?=2: 使用 FOTA, 生成 user2...binSPI 工速度和模式,一般不用改动,保持默认即可。SPI SPEED?=40SPI_MODE?=QIOSPI_SIZE_MAP: Flash映射方式注意:有人说用的是多少MB的Flash就写多少,本人试过2MB和4MB都没问题,但用1MB的Flash写SPI_SIZE_MAP?=1时,编译失败。这里还要修改几个选中的文件,我们一个一个来吧。
要实现控制LED的亮灭或继电器的吸合,需要用到一个变量,我们先在 gizwits_ ptoduct.h 中声明一下。因为只有开和关2个状态,用bool型就可以,这有点像KeilC51中的bit类型。
别忘了在gizwits_ product.c中进行初始化设置,这里设置LED是低电平点亮,上电初始化为高电平,默认不点亮。
往下拉,找到 gizwitsEventProcess 函数。这个函数的作用是用云端数据点的值 CurrentDataPoint.valueLED 来控制LED等需要控制的实际电路,当云端为1时(ON),我们自己定义的变量STA=0,LED点亮;云端为0时(OFF),则STA=1,LED熄灭。
继续向下 ,修改userHandle用户定 时器的回调函数,默认为1000ms调用一次 ,也可以在 gizwits_ protocol.c文件中修改 USER_TIME_MS,此处调用时间修改为100ms。把 STA赋值给实际操作的 GPIO来完成 LED的亮灭 ,并把本地状态与云端完成同步。
文件最下面,初始化云端数据点的值。
接下来 ,打开 user_main.c文件, 找到下图所示的位置。

在user_main.c 文件中把与Key2有关的函数都删掉。在Key1ShortPress函数里添加 “STA= ! STA; ”, 即每次短按把STA取反,也就是说短按点亮 LED,再按一下LED灯灭 。Key1LongPress里还有—句“gizwitsSetMode(WIFI_ AIRLINK_ MODE)”, 其作用是在长按按键时让ESP8266模块进入配对模式,此时开发板右上角LED点亮 ,然后通过手机 App把模块接入Wi-Fi。
再往下就是GPIO 的初始化。ESP8266 模块右上角有一个 LED接到了 GPIO2 , 在程序中配置一下用作配对指示 。开发板靠近Micro USB的LED接在了 GPIO16 ,这就是我们最终要控制的指示灯了。值得注意的是,GPIO16的控制与其他端口的控制是不同的。
下图所示是按键与LED的电路图。
到这里程序就修改完了,仔细检查确认无误后保存。在最左侧C/C + + Projects窗口主目录上单击鼠标右键,选择 “Build Project”。如果没有错误,就会看到生成了 user1.4096.new.4.bin 等文件,如下图所示。没看到的话说明程序有错误,请仔细确认。
打开ESP8266烧写工具ESPFIashDownloadTool_ v3 .6.4,选择ESP8266 DownloadTool,按照图所示进行配置 。
设置好后单击 “START”,下载完成后按一下模块的 Reset,模块端配置完成。>>>手机端配置下载安装并打开机智云App。账号 、密码页面直接选跳过,点击右上角的 “ + ”号 ,选一键配置后输入当前手机所连接的 SSID和 Wi-Fi密码。进行下一步 ,模组类型选择乐鑫,在出现 “通电后按以下提示操作”后(如图所示) ,长按 NodeMCU开 发 板 Flash按键 ,右上角 LED点亮后,点 击 “我已完成上述操作”, 稍等一会儿会提示完成设备添加。
试着划动 “开启/关闭”按钮,看NodeMCU开发板上的LED是否可以正常亮灭。
按动NodeMCU开发板上的Flash按键,LED亮灭的同时,手机 App上的开关状态也应同步开关。
到这里,我们已完成了DIY—个Wi- Fi插座的所有知识介绍。接下来找出洞洞板,抄起电烙铁,开工制作。>>>实际制作我找出以前买来的3位插排。拆掉开关和接线端子,用腾出来的空间安装220V转 5V 开关电源、ESP8266控制板和继电器,把开关盖用热溶胶固定在原来的位置。在确定可以放下2个继电器后,我决定做2路的智能插座,剩下的1路用来做常通插座。
找一个手机5V适配器,去掉外壳和USB 接口以减小体积。
电路用洞洞板简单搭一下,ESP07 小板加上 LDO、阻容、继电器,一会就焊好 了 。
修改上面调试好的程序,把数据点改成 2个, 编译完成后烧写到模块,然后用热熔胶固定。高压 、低压之间记得用塑料片隔离,安全第一。
因为没有按键作AIRLINK,所以我将程序改为上电后30s未连接到Wi-Fi自动切换为AIRLINK配网模式,同时板载的蓝色LED点亮, 因为很少会用到此功能,且从侧面也能看到灯光,就没有额外开LED孔位。
在手机端输入Wi-R的SSID和密码就能把插排接入互联网,测试正常后,把插座装好,就可以投入使用了。
智能插排的用途可以自由发挥,只要是能用开关控制的电器都可以接入,比如USB小灯、 普通风扇、电动车充电(可以将程序改为开启后定时关闭)等 。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
物联网
+关注
关注
2951文章
48261浏览量
419635 -
机智云
+关注
关注
3文章
654浏览量
27865
发布评论请先 登录
相关推荐
热点推荐
【瑞萨RA6E2地奇星开发板试用】使用`RA6E2`驱动 `ESP8266 WiFi模块`,调试AT指令。
)
5. 工程运行效果
6. 总结
本文介绍了【瑞萨 RA6E2 地奇星开发板】驱动 esp8266 WiFi模块实现串口打印调用AT指
发表于 12-25 10:08
【瑞萨RA6E2地奇星开发板试用】使用RA6E2驱动 esp8266 WiFi模块进行串口通信【已修复】
1. 需求描述
使用RA6E2驱动 esp8266 WiFi模块,用串口调试助手显示 esp8266WiFi模块响应数据。
具体来说:
串口
发表于 12-17 10:13
晶科鑫 | 国产26MHz晶振匹配Espressif(乐鑫) ESP8285/ESP8266芯片案例
【应用】国产26MHz频率晶振应用于物联网WIFI物联网模块(串口转WiFi模块),Espressif(乐鑫)ESP8285/
ESP8266和ESP32开发板常见的2种下载方式
至240MHz CPU,而ESP8266是单核处理器,主频支持80MHz至160MHZ。
这些WiFi模块都带有GPIO,支持SPI,I2C,UART等各种协议。这两款芯片都有STA/AP/STA+AP的工作模式。E...
在蜂鸟处理器上进行RT-Thread+ESP8266 wifi模块开发
);
return RT_EOK;
}
INIT_APP_EXPORT(wifi_thread_init);
以上完成了指令的发送和字符接收,实现了板子和ESP8266模块
发表于 10-31 09:02
ESP8266和ESP32开发板常见的2种下载方式
协议,完整的 TCP/IP 协议栈以及蓝牙协议栈。用户可以使用这两款模块为现有的设备添加WIFI联网功能或蓝牙(ESP32),轻松的构建独立的网络控制器和远程
发表于 10-24 18:04
基于机智云平台的新疆农田气候检测系统设计与实现
本文设计了一种基于云平台的新疆农田气候检测系统,用于实时监测风速、温湿度和PM2.5等环境参数,提升农业生产智能化水平。系统采用STM32单片机与传感器采集数据,通过ESP8266Wi
【RA-Eco-RA4M2开发板评测】使用RA4M2和ESP8266实现MQTT协议上传传感器数据到云服务器并反向点灯控制
马上就到RA4M2开发板评测的结尾了,今天给瑞萨论坛线上最具创意的一篇帖子,通过RA4M2开发板,和ESP8266 WIFI模块,然后通过手
发表于 05-29 15:29
基于STM32 HAL库与标准库的esp8266接入机智云方案(二)
在《基于STM32HAL库与标准库的esp8266接入机智云方案(一)》中,我们详细介绍了硬件连接和机智云客户端的创建。本篇将重点讲解如何下
机智云自助开发平台+ESP8266 WiFi模块实现插排的智能控制
评论