收藏官网首页
查看: 27857|回复: 8

[经验作品] ESP-01+arduino+机智云的WIFI插座(新手作品,大神勿喷!)

1

主题

26

帖子

333

积分

中级会员

Rank: 3Rank: 3

积分
333
跳转到指定楼层
楼主
发表于 2018-5-26 19:31:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
免费使用STM32、APP自动代码生成工具
准备工具:

1.      ESP-01模块
首先就是ESP-01刷机智云的固件,这一步很关键,网上说ESP-01刷不了机智云的固件,因为这个模块价格低所以就买来试试了。在失败了很多次后终于刷成功了,还是有些成就感的。
购买的是安信可的ESP-01,基于esp8266的WIFI模块,价格十元以内就搞定了。下面是官网给的这个模块的参数:


接下来短接VCC和EN脚,也就是在上电后使能模块,如上实物图中的两个画红线的引脚短接。

2.      准备工具和固件
乐鑫官网下载刷固件工具:
https://www.espressif.com/zh-hans/support/download/other-tools
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg
机智云官网下载固件:
https://download.gizwits.com/zh-cn/p/92/94
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image009.png

3.      开始刷固件了(关键步骤)
首先准备好串口下载工具,如下图连接ESP-01,注意有的串口工具提供的电流无法满足模块的正常工作,这时需要外部3.3V电源供电了,使用外部电源时0V要接到一起。如下图两种接线方式的示意图(我没用外部电源也刷成功了):
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image011.jpg
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image013.jpg
如下图打开下载的乐鑫FLASH下载工具,选择ESP8266这一项。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image015.png
下面按照图示的步骤选择:
  • 1 这一步选择固件,点击右边3个点按钮,选择上面下载的机智云固件,注意ESP-01选择8Mcombine这个固件,然后勾选这一项前面的选框。
  • 2填写固件下载的起始地址0
  • 3这一步选择模式,这里我用的QIODIODOUT我也试了,但是没有成功。
  • 4FLASH选择8M
  • 5这一项选择COM口,也就是串口下载工具插到电脑里会对应有一个COM口,不知道的可以BD一下。(我这里是COM1
  • 6波特率选择115200
  • 7点击START开始下载固件
点击开始下载固件之前,确保硬件连接正确:ESP-01模块的IO0一定要接GND,下载完固件正常使用时断开。点击START开始下载,这时把模块的RST引脚接GND一下,也就是复位一下模块,之后会看到蓝色进度条开始前进了,直到绿色提示框提示FINISH完成即表示固件下载成功。

file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image016.pngfile:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image018.png
我这里失败了几次的原因是点击START开始下载时没有把RST引脚接GND,这里只需要接地一下即可。还需要注意的是当刷完固件后断开IO0和GND,正常使用模块IO0不能接地。

4.      机智云创建产品
这里有官方详细的MCU方案教程:http://docs.gizwits.com/zh-cn/quickstart/UseMCU.html
下面我就简单的描述下这个过程,不懂的可以看官方教程。首先进入机智云开发者中心,选择个人项目,
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image019.png
点“创建新产品”,如下图填写产品名称等信息,这里选择WIFI/移动网络方案。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image021.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png
点击“保存”后,产品就创建成功了,点左侧边栏的“开发向导”,找到页面里面的“去添加数据点”。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image025.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image027.png
如上图所示,可以自己新建数据点,也可以点“管理”使用里面的模板,这里为了节省时间,我选择了模板。关于什么是数据点可以参考官方教程:
http://docs.gizwits.com/zh-cn/quickstart/datapoint_tutorial.html
选择模板后如图:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image029.png
选择机智云插座,应用此模板。弹出提醒后,点击“添加”。之后就可以看到添加的数据点了。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image031.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image033.png
对于用不到的可以删除,也可以自己再添加。
到此机智云产品就创建完成了。

5.      arduino程序生成
机智云给我们提供了非常方便的代码生成功能,也就是说这部分程序机智云已经给我们生成好了,我们只需要关注产品功能就行了。下面我就利用机智云代码生成功能生成arduino程序。
点击左边栏的“进入MCU开发”,选择“MCU独立开发方案”,选择硬件开发平台
这里我用的是arduinouno R3,因此选择ArduinoUNOR3,对于其他版本的arduino也可以选择这个然后在IDE里面选择相应的arduino版本编译,例如arduino nano等。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image035.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image036.png

产品的“Product Secret”在产品基本信息里面可以找到,点“显示完整密匙”,根据提示操作就可以了。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image038.png
填写完成后点击“生成代码包”,很快代码就生成完成了。下载下来就好了。
解压后得到“Gizwits”文件夹,首先将这个文件夹复制到arduino IDE的安装目录下的“libraries”文件夹下,如下图所示:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image039.png
这样使用arduino IDE编译就不会出错了。
如何写程序呢?其实很简单,使用机智云生成的程序,稍作修改就可以使用了。
打开刚才解压出来的“Gizwits”文件夹,里面有个“examples”文件夹,打开后如下图两个文件夹,这里面就是我们要用到的程序了。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image040.png
打开arduino IDE新建一个程序文件并保存,可以任意命名,建议英文名称。
同时打开networkConfig.inosimpleTry.ino这两个文件,将两个程序合一起,添加下图程序即可控制插座有电和断电,使用的是arduino uno9脚。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image041.png
完整程序见附录,目前只实现了插座的开关功能,未添加定时等功能。

6.      机智云调试
如果熟悉Android 开发的可以直接使用APP代码生成工具进行APP的开发,我是Android 菜鸟,因此直接使用了机智云的产品调试APP进行调试开发。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image043.png

下载后安装到手机上,电脑端在个人项目中选择创建的产品点击“在线调试设备”。
然后选择“启动虚拟设备”。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image045.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image047.png
启动虚拟设备后选择“显示二维码”。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image049.png
手机端进入APP选择右上角的“扫码添加设备”扫描电脑端显示的二维码进行虚拟设备的绑定。如下图:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image051.png
绑定设备后就可以操作手机端APP进行插座的开关定时等操作,电脑端会同步更新了。
设备调试也可以参考官方教程:http://docs.gizwits.com/zh-cn/quickstart/README.html
教程里有详细的虚拟设备调试指导。

7.      硬件调试
硬件连接示意图如下,继电器模块采用高电平触发,继电器触点控制插座的火线接通可断开。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image053.jpg
给开发板上电,arduinouno的7脚接地大于3秒,此时模块进入配网模式,手机右上角选择“添加设备”搜索设备,选择模块要连接的WIFI名称并输入密码,手机会搜索设备并连接设备。设备联网成功后手机上既能看到这个设备了,点击进入即可对设备进行控制。如果手机一直无法搜索到设备,开发板7脚接地一下(不要一直接地,小于2秒),此时模块进入AP配网模式,也就是手机先连接到模块的WIFI,然后模块通过手机连接到联网WIFI。
总之,连接成功后手机即可对设备进行控制了,也可以查看设备的活跃状态。

终于写完了,等有空的话拍一段我改装的插座视频。

新手作品,大神勿喷!
附件源程序和教程文档。

28.png (56.42 KB, 下载次数: 333)

28.png

Socket.zip

1.69 KB, 下载次数: 143, 下载积分: 威望 1

WIFI插座程序

ESP-01 arduino 机智云的WIFI插座.pdf

996.33 KB, 下载次数: 94, 下载积分: 威望 1

说明

1

主题

26

帖子

333

积分

中级会员

Rank: 3Rank: 3

积分
333
沙发
 楼主| 发表于 2018-5-26 19:37:44 | 只看该作者
准备工具:
  • 串口下载工具USB转TTL
  • arduino UNO R3开发板
  • 继电器模块(高低电平触发均可)
  • 带改装的插座或者网购成品插座
  • ESP-01(安信可基于ESP8266的WIFI模块,成本低)
  • arduino IDE
  • ESP8266 FLASH固件下载工具
  • 机智云固件
  • 机智云调试APP
  • 9V/5V电源或者AC220转9V/5V电源

0

主题

16

帖子

544

积分

高级会员

Rank: 4

积分
544
板凳
发表于 2018-6-12 22:44:51 | 只看该作者
楼主的Socket.ino编译下面一堆错啊

点评

1.确认生成的Gizwits文件夹有没有放到arduino的libraries文件夹下。 2.我用的是arduino-1.8.6  详情 回复 发表于 2018-6-13 09:05

1

主题

26

帖子

333

积分

中级会员

Rank: 3Rank: 3

积分
333
地板
 楼主| 发表于 2018-6-13 09:05:41 | 只看该作者
机智Boy 发表于 2018-6-12 22:44
楼主的Socket.ino编译下面一堆错啊

1.确认生成的Gizwits文件夹有没有放到arduino的libraries文件夹下。
2.我用的是arduino-1.8.6

点评

我中午回去再试试  详情 回复 发表于 2018-6-13 10:05

0

主题

16

帖子

544

积分

高级会员

Rank: 4

积分
544
5#
发表于 2018-6-13 10:05:50 | 只看该作者
校园创客福利
caikan 发表于 2018-6-13 09:05
1.确认生成的Gizwits文件夹有没有放到arduino的libraries文件夹下。
2.我用的是arduino-1.8.6 ...

我中午回去再试试

0

主题

4

帖子

70

积分

注册会员

Rank: 2

积分
70
6#
发表于 2019-2-28 21:01:36 | 只看该作者
caikan 发表于 2018-5-26 19:37
准备工具:
  • 串口下载工具USB转TTL

  • 请问必须要用机智云的开发板吗?我现在就差把和arduino连接的esp8266配置入网了,不知道怎么告诉8266路由器的密码和名称啊

    0

    主题

    4

    帖子

    49

    积分

    新手上路

    Rank: 1

    积分
    49
    7#
    发表于 2019-4-26 10:57:07 | 只看该作者
    楼主烧固件一直停在等待上电这里,RST也接地了,怎么解决

    2

    主题

    16

    帖子

    430

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    430
    8#
    发表于 2019-6-2 17:22:17 | 只看该作者
    hahahhadadgey 发表于 2019-2-28 21:01
    请问必须要用机智云的开发板吗?我现在就差把和arduino连接的esp8266配置入网了,不知道怎么告诉8266路由 ...

    你调好没,我也不知道怎么配网

    1

    主题

    8

    帖子

    59

    积分

    注册会员

    Rank: 2

    积分
    59
    9#
    发表于 2019-11-12 13:43:10 | 只看该作者
    如果手机一直无法搜索到设备,开发板7脚接地一下(不要一直接地,小于2秒),此时模块进入AP配网模式,也就是手机先连接到模块的WIFI,然后模块通过手机连接到联网WIFI。   请问这句是什么意思?我的也是不成功,但是没有这个操作,请问7号端口在哪里设置的?
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    加入Q群 返回顶部

    版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

    快速回复 返回顶部 返回列表