手把手带你制作WIFI智能开关.走进物联网-ESP8266学习日记(三)

2020-05-11 19:43:10

12点赞

137收藏

10评论

上一次我们初步认识了SDK编程和透传,给模组更新FW。

这一次我们直接用一个开源平台实现我们最终的目的,用一个APP远程控制模组开关。

我们使用的平台是机智云提供的开发平台。

开始之前我们先把硬件搭建起来,大概规划一下成品的样子电路规划示意图

产品线路图

1.模组焊接中,请忽略我凌乱的桌面

制作中

2.电源焊接中,使用了一个电源母头插座和三颗AMS11173.3给设备供电,为什么使用了三颗芯片呢,主要是因为

第一 这个芯片很便宜

第二 为了保持稳定,给模组供电使用一颗,还有两颗继电器各自使用一颗,单独供电

正面使用了电源插头母座

背面就是AMS11173V3了可以看到一共三颗

背面三颗LDO芯片

模组调试还是使用的可调电源

调试中

最后成品的初步规划,使用了一个常见的LED灯的驱动器外壳,正好可以放进去。那两颗蓝色就是继电器,

规格是5V低电平驱动,

输出端一个接灯作为灯的开关

一个接NAS的开机按钮

成品规划

电路搭建完后,我们开始进行软件的制作,为了减少工作量。

我们直接使用开源平台的代码生成功能来完成代码搭建,最后再根据需求简单修改一部分.

我们使用的开源代码是机智云提供的,机智云也是目前比较热门的物联网平台之一

首先我们打开机智云的官网,在开发者中心注册账号:

注册账号

注册完后登录开发者中心创建产品

创建产品

按照下图所示创建产品,名字写你自己想要的名字,然后保存

选择数据点

按照下图建立数据点,在这个产品我们只用到前两个数据点,所以只建立前两个就可以,后面的几个主要是学习,可以不用建立,建立也不影响

选择MCU开发,按下图所示,生成代码

生成代码后下载代码

然后解压开下载的压缩包,打开ESP8266_SoC_User_Guide _V0.5.pdf

我们去看红线标识的这个文件

由于我们这个项目只使用了LED1 和PC的功能,

所以我们只需要在这两个函数下的if后面的//user handle下面写上我们要处理的信息即可,

那么要写什么呢?还记得我们电路设计图吧,不记得了的去看一下我们第一张图,

我们在GPIO的12和13口接了两个继电器,那么在这里我们就要在接收的指令后,让12和13口输出相应的电平。

我们使用的是低电平触发的继电器,所以当我们输出低电平给继电器时,继电器会动作闭合,相对于打开开关,当输出高电平给继电器时,继电器会断开,相当于关闭开关。

知道了这些后我们就知道了怎么操作了。

我们的灯接在12口那么当我们给出了开灯的指令时,就需要12口输出低电平。当给出关灯的命令时,12口就要输出高电平

NAS接到了13口当我们给出了开机指令时,13口要给出低电平,但是开机按钮按下时一个短时间动作,如果一直按下的话,NAS会不断的重启,所以当我们按下半秒钟要自动松开开关,所以我们延时500ms后,让13口输出高电平,

那APP的开机指令给出后APP会保持开机状态,所以我们要把APP给出关机指令,那收到这个指令后我们都不需要做,这个指令只是让APP复位而已。

了解了这里,我们去写代码,写代码之前,我们还是先要去看SDK,看看怎么操作GPIO口那部分。

可以看到SDK里面的说明,在操作GPIO输出前要先做一个 管脚功能选择,然后就可以操作输出了,

使能函数里的参数都在我们从机智云下的压缩包里如下图的位置

由于我们只使用12和13脚,其他的我们就先不管了,参考SDK的说明,我们先给12和13脚做功能选择PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12);

PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, FUNC_GPIO13);

然后做输入高电平和低电平的控制,由于SDK里定义的方式太麻烦,实际上在gpio.h和eagle_soc.h里定义了了一个简单的函数

GPIO_OUTPUT_SET(GPIO_ID_PIN(12),0); 12口输出低电平

GPIO_OUTPUT_SET(GPIO_ID_PIN(12),1); 12口输出高电平

GPIO_OUTPUT_SET(GPIO_ID_PIN(13),0); 13口输出低电平

GPIO_OUTPUT_SET(GPIO_ID_PIN(13),1); 13口输出高电平

我们还要用到两个函数delay_ms();毫秒延时函数

system_soft_wdt_feed();喂狗函数(SDK里第三页有说明)

知道了这些我们去修改gizwits_product.c 修改为下面的样子

修改完之后我们去编译这个程序,因为是使用的机智云提供的程序,所以我们要按照机智云推荐的编译方法去搭建开发环境,否则会出现各种错误

按照说明一步步来,最后生成我们需要的文件

然后我们再回到我们从机智云下载的的压缩包解压后的文件夹,按照烧录说明进行烧录

这些bin文件都在bin文件夹下,user1.4096.new.6.bin文件在bin文件夹下的upgrade文件夹内

到这里我们的硬件编程部分已经告一段落,我们已经可以使用机智云的测试公版APP进行远程控制我们的开关了。首先我们去机智云的下载中心去下载一个公版APP,安装在手机上

安装后打开APP注册账号

登录APP

点右上角的加号,选择一键配置

输入你的wifi和密码

选择乐鑫模块,并点确定,确定的同时给模块上电:等待出现添加设备的标志,等待一会就会出现新设备

点击进去

就出现了我们定义好的6个数据点,由于我们只定义了了第一个和第二个响应函数,

后面的四个都没有定义响应函数,所以后面4个都不起作用。

此时如果你的继电器都已经连接好了,

按下APP上的第一个开关,接在12口的继电器将会闭合,关闭第一个开关,12口的继电器断开

按下PC的开关,13口的继电器闭合半秒后自动断开,关闭第二个开关13口继电器是不响应的

到现在我们已经顺利实现了远程控制WIFI开关的功能。使用的时候我们会发现一个问题

公版APP可能会出现记不住账号,每次都需要输入账号密码,太麻烦了

并且APP界面不够美观和个性化

那么下一次我们再来利用机智云的开源APP定制一个个性化的APP。

esp8266 蓝牙耳机_手把手带你制作WIFI智能开关.走进物联网-ESP8266学习日记(三)...相关推荐

  1. 手把手带你制作WIFI智能开关.走进物联网-ESP8266学习日记(一)

    最初的目的是为了远程控制家里的一台NAS的开机,最终变成了一个小小的物联网项目,在折腾过程中踩了一个又一个的坑,作为记录,下面我来带大家解开一个小小的物联网项目神秘面纱.如果有一点电路和编程基础最好, ...

  2. 手把手带你制作WIFI智能开关.走进物联网-ESP8266学习日记(三)

    上一次我们初步认识了SDK编程和透传,给模组更新FW. 这一次我们直接用一个开源平台实现我们最终的目的,用一个APP远程控制模组开关. 我们使用的平台是机智云提供的开发平台. 开始之前我们先把硬件搭建 ...

  3. 手把手带你制作WIFI智能开关.走进物联网-ESP8266学习日记(四)

    今天我们将利用机智云的开源APP来生成我们独家定制的手机APP 首先我们打开机智云开发者中心 第一步,我们使用机智云生成APP代码,选择应用配置,填写你想要的APP名字.平台选择Android,添加 ...

  4. 手把手带你制作WIFI智能开关.走进物联网-ESP8266学习日记(二)

    上一次我们的8266模组已经可以上电正常工作了.这次我们要做的是 1.更新设备固件: 2.初步验证设备远程控制的方式: 3.认识SDK和开发环境,实现我们的第一个程序,惯例输出 HELLO WORD: ...

  5. esp8266 蓝牙耳机_走进物联网智能家居-手把手带你制作wifi智能开关-ESP8266学习笔记(二)...

    走进物联网智能家居-手把手带你制作wifi智能开关-ESP8266学习笔记(二) 2020-05-09 13:44:11 9点赞 72收藏 6评论 小编注:此篇文章来自即可瓜分10万金币,周边好礼达标 ...

  6. 群晖nas介绍文档_手把手带你玩转NAS 篇八:NAS文档随身带——多终端文件同步介绍(群晖drive篇)...

    手把手带你玩转NAS 篇八:NAS文档随身带--多终端文件同步介绍(群晖drive篇) 2020-01-08 15:23:44 24点赞 214收藏 31评论 你是AMD Yes党?还是intel和N ...

  7. Django网站实战——手把手带大家制作一个经典的网站

    一.前言 今天小编带大家制作一个经典的网站的案例,功能包括登录.注册.注销.改密.免密登录.忘记密码,那么下面就让我们开始吧. 二.创建项目并创建子应用 首先创建项目,然后在项目根目录下创建子应用,如 ...

  8. ac2100 反弹shell无法粘贴_手把手带你玩转NAS 篇二十一:小米Redmi AC2100路由器刷机padavan保姆级教程...

    手把手带你玩转NAS 篇二十一:小米Redmi AC2100路由器刷机padavan保姆级教程 2020-05-14 18:49:24 224点赞 1790收藏 241评论 你是AMD Yes党?还是 ...

  9. 威联通nas怎么更换大硬盘_手把手带你玩转NAS 篇一:无损转移硬盘数据(威联通篇)TS-453Bmini...

    手把手带你玩转NAS 篇一:无损转移硬盘数据(威联通篇)TS-453Bmini 2019-12-15 11:00:00 51点赞 694收藏 72评论 你是AMD Yes党?还是intel和NVIDI ...

最新文章

  1. PIC单片机精通_A/D转换异步串口通讯实例与详解
  2. BZOJ4771 七彩树(dfs序+树上差分+主席树)
  3. Android开发之百度地图距离判断(判断定位位置是否在圆的范围内)
  4. map与unordered_map
  5. bootstrap快速入门_在5分钟内学习Bootstrap 4-快速入门指南
  6. 在arm上运行x86动态库_苹果官宣:Arm取代英特尔
  7. CGLIB 和 JDK生成动态代理类的区别(转)
  8. ld: warning: cannot find entry symbol _start; defaulting to 00000000080481d8
  9. 02-监督学习应用.梯度下降
  10. C#串口介绍以及简单串口通信程序设计实现
  11. 想学一门计算机技术 Java和Python哪个前景好
  12. 重要极限二:x趋近于无穷大,(1+1/x)^x的极限
  13. Java实现简单四则运算
  14. 统计系统技术方案-clickhouse
  15. 胡说八道设计模式—观察者模式
  16. iphone同步android短信,如何从iPhone导入短信到Android手机?
  17. scrapy 爬取苏宁图书
  18. 张正友相机标定(全流程,含畸变,matlab源代码解析)
  19. 2022电气试验考试试题及答案
  20. 光标实现为员工涨工资

热门文章

  1. 【云计算】7_云安全产品介绍
  2. 在本机搭建自己的ftp服务器--最简单的方法(详细教程)
  3. java堆、栈、堆栈,常量池的区别,史上最全总结
  4. mysql executenonquery_mssql server ExecuteNonQuery()注意问题
  5. 解决安装QT后MSVC2015 64bit配置无编译器和调试器问题
  6. 32张世界杯海报,惊艳全场
  7. Python读取文件内容
  8. (转载)windows2019 server创建路由与访问服务(VPN),实现客户端的访问
  9. aws azure_Microsoft Azure击败AWS的13种方式
  10. SAP GRC – 企业风险合规治理 深入浅出