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

 上一次我们的8266模组已经可以上电正常工作了。这次我们要做的是

1.更新设备固件:
2.初步验证设备远程控制的方式:
3.认识SDK和开发环境,实现我们的第一个程序,惯例输出 HELLO WORD:
在这次我们还要接触到一个词《透传》
因为我们的模组出厂时间不同,可能FW都不一样,为了方便调试和学习烧录FW,我们统一先给模组更新为官方最新AT固件,首先我们去安信可官网下载固件和烧录工具。
我们开始第一步:更新设备固件:
进入安信可官网,打开第一篇日记中的那个产品中心,进入12F的文档中心
12F文档中心
打开红色表示的几个地方
在2的打开页面内下载出厂默认AT固件,如下图
AT固件
在3的打开页面内下载烧录固件工具,如下图
烧录工具下载
在1的打开页面看下面两个地方
IO口模式
按照说明,在下载模式和工作模式时,GPIO0状态是不同的,在第一篇日记里我们也在这个位置接了一个接地开关
IO0接线
接着往下看如何确认是否进入下载模式
串口显示确认进入下载模式
现在我们按照官方说明,把GPIO0接地,上电看一下,串口显示什么,注意波特率要设定为74880
实际显示状况
可以看到已经显示为1了,说明已经进入下载模式
下面我们看看下载的AT固件解压后
解压后的ATA固件
由于我们使用的12F模组是32Mbit的模组,我们直接进入32Mbit的文件夹,打开里面的PDF文件
烧录说明
可以看到里面有一些烧录需要的信息,然后我们打开烧录软件
在这里插入图片描述
在这里插入图片描述
按照说明选择好相应的选项,在第一行里选择32M的固件,后面填0X00000,打钩,可以看到下面显示等待,按下下面的start,此时要关闭串口助手,不关闭串口助手可能会提示串口打开失败,然后短接GPIO0和地,给芯片上电,正常应该会显示如下信息
下载中
等到显示完成,模组断电,断开GPIO0和地的连接
烧录完成
关闭烧录软件,打开串口调试软件,点击打开串口
显示如下信心,和文档对比一致说明烧录成功了
烧烤成功启动信息
到这里我们第一步的工作完成,成功给模组更新了固件,下面我们开始今天的第二项工作,初步验证设备远程控制的方式,这里用到一个概念–透传,我们不用管专业的解释,通俗的理解就是透过网络传输数据的意思。下面我们看看怎么透过网络和8266模组传输数据,只要能传输数据,就能控制
我们再去安信可官网,打开文档中心,找到AT指令集下载
AT指令集
下面我们需要AT指令集中几个指令
AT+GMR
设置工作模式为SoftAP+Station 模式
设置工作模式
设置WIFI
已经连接上WIFI
设置多连接
建立TCP服务器
开启TCP服务器

这里所用的几个指令在指令集里有详细说明,我们就不一一说明了。到这里已经成建立了TCP服务器,可以用手机或者电脑直接和模组通讯了,需要用到网络调试助手软件

  1. 在同一个局域网内直接输入IP和端口就可以通讯了,这样对我们需要远程控制肯定是不够的
  2. 如果需要远程通讯,还需要在入口路由器设置端口转发和和DDNS绑定,完成后就可以通过域名和端口进行通讯了
  3. 由于后面我们成品不采用这个方案,这里就不具体讲怎么做转发和DDNS了,我们以局域网通讯内做示例
    透传示意图
    完成这一切后就可以使用手机APP和模组进行通讯了,注意通讯地址是DDNS的域名+对外端口
    如果是局域网内可以使用模组IP+模组端口,用这个命令查询设备IP
    查询设备IP
    连接模组
    给模组发信息
    模组收到的信息
    可以看到模组显示1个连接,并收到了手机发过来的信息,这样就实现了手机和设备的通讯,设备收到了手机的信息,就可以按照信息作出相应的反应了
    下面我们进行第三部分的内容,初步认识一下安信可的编程环境和SDK,并让设备输出hello world
    我们回到安信可官网,下载一体化开发环境

    安装说明
    下载完成后按照操作说明进行安装,安装完成后,我们再去下一个SDK,我们首先去安信可的文档中心找到如何使用开发环境
    选择如何使用开发环境
    找到后打开下载SDK的连接,打开连接后目前最新的版本为ESP8266_NONOS_SDK-3.0.3
    下载SDK3.0.0
    按照这个页面的使用的示例一说明一步一步操作
    示例一
    直到最后一步开发环境输出这个界面
    编译成功
    下面我们去乐鑫的官网找到这个SDK的开发文档并下载
    API文档下载
    下载后找到这两个地方 第一个说明了在哪里写我们的程序 user_main.c
    在哪里写我们的程序
    第二个说明怎么输出我们的内容
    输出函数用法
    好了,了解了这两个地方,我们再去开发环境中写一行输出hello word试试
    helloword代码
    然后编译前注意一个地方,在项目右键属性上修改map=4
    map=4
    然后保存,编译项目
    先clean,然后build
    等待编译成功
    编译成功
    然后按照说明烧录
    在这里插入图片描述
    等待烧录成功
    烧录成功
    烧录成功后,断开GPIO0和地,打开调试助手,波特率选择74880,打开串口,给模组上电
    在这里插入图片描述
    可以看到模组成功输出了我们写的一行星号和helloword。
    到这里我们完成了设备的初步调试,透传,和程序员的第一步输出了helloword。
    到这里我们可以修改程序接收到远程的透传指令时,执行一个动作就可以实现远程控制了。
    但是仍然存在几个问题
    1.手机远程控制界面仍然不太美观和方便。
    2.如果想要方便就需要专门定制APP,需要大量的编程工作。
    3.远程需要设置端口转发和DDNS绑定。
    4.模组上也需要完成大量的编码工作。
    对于我们只是需要一个远程控制功能的需求,进行专门的大量开发工作有点太麻烦了。
    那么有没有简单,代码少,又控制方便的方法呢?
    当然是有的,我们最终需要的是一个美观好用的APP和少量的代码即可完成的一个小项目,又不需要太多的设定 ,也不需要做转发和DDNS绑定。
    在下一次我们就开始利用一个开源项目的平台来实现我们最终的目的。
    在这里我们先透露一下最终的APP什么样子
    登录页面
    设备显示页面
    设备控制页面

Published by

风君子

独自遨游何稽首 揭天掀地慰生平