esp-12e折腾

摘要:
我在寒假前从Xbo购买了esp-12e和esp32s。我似乎想打开门升级我的蓝牙?它是两天前被取出来的,但在网上搜索并不那么容易。这反映了我购物时的不理智。我不知道为什么。最新的官方版本直接删除了esp12e文件。估计设计有缺陷?只剩下esp12f,然后百度文库找到了12e文档。

寒假前就从x宝买了esp-12e以及esp32s,当时似乎是想给自己的蓝牙开门升级换代?esp32s拿来过度linux?

寒假放在书包拿回去以为有时间会玩玩,没想到一直耽搁到现在。前两天才拿出来,网上搜了搜完全不是那么会事,反映了自己购物的时候多有不理智

不知道为什么,官方最新版本里面直接把esp12e的文档给删除了,估计是设计有缺陷?只留下了esp12f,之后再百度文库有找到12e的文档。

说下基本配置,东西虽小。内容却不简单。

mcu是Tensiliaca L106超低功耗32位微型mcu,主频支持80M和160M,板载的晶振是40M,有10 bit ADC,UART,SPI,GPIO,IR Remote Control,PWM

内置PLL,稳压器和电源管理组建

支持标准的IEEE802.11b/g/n协议,完整的TCP/IP协议栈

支持STA/AP/STA+AP 工作模式

支持AT远程升级以及云端OTA升级

支持Smart Config功能(Android IOS)

用户剩余RAM大致36Kb,板载4M spi flash


烧录固件:

12e出场自带了最新的安信可AT固件,然后偶然间看到网上有epush这么个网站,他们自己给自己的定位是这样的:

什么是ESPUSH

ES-PUSH是一个针对 乐鑫公司 http://espressif.com/ 的8266 WIFI物理网芯片开发的推送服务平台,具备实时远程数据及指令推送,数据收集与整理归纳,云端自动推送升级等功能。

ESP8266内置低功耗32位芯片,可兼作应用处理器,同时自带众多GPIO引脚,设置引脚复用后大大方便控制外部设备电路。这使得我们的物联网设备或其他需要wifi网络功能的设备模块无需额外集成CPU即可实现大部分功能,无疑是开发者的福音。

但ESP8266使用的TCP/IP编程与通常的Socket方式不同,其网络控制结构 struct espconn 基于对lwip的浅层封装实现,使用异步回调机制,给开发带来了诸多不变,往常的大量的基于socket的网络编程库与经验得不到重复使用。故此开发了这样一个数据推送平台。以期能为开发者分忧。

ES-PUSH只希望解决一个问题,即能在任何有网络的地方随时控制处于内网中的WIFI设备,譬如在公司里控制家里的wifi机器人小车,回家的路上使用4G网络控制家里的热水器开关、空调器开关等。

有避免重复造轮子的机会为什么不用,况且那些轮子我估计我现在还造不出来23333

他们还做了一个一键烧录工具,傻瓜是操作,“比把大象放进冰箱还简单”

使用ESPUSH专用刷写工具

下载ESPUSH固件专属刷写工具,无需下载固件,只需要选择目标串口,即可一键完成刷写。 http://pan.baidu.com/s/1bpwnBiv

_images/flasher.png

注意:下载模式的设置,出了下图的基本连线,还要把io0接到gnd然后上电以烧录

esp-12e折腾第2张

esp-12e折腾第3张

烧录完了,断开io0与gnd

使用XShell工具而非图示的secureCRT,则参考如下图示完成配置:

_images/xshell_01.png

选择串口,并为其命名后,点击 Serial 继续

_images/xshell_02.png

配置串口的波特率,留意AT固件一般使用的波特率为115200,NodeMCU使用的波特率为9600,您可以在启动源码中自行修改此值。

_images/xshell_03.png

在「终端」的「VT」选项卡中,务必选中 「New Line Mode」选项,完毕后连接即可。

 然后断电上电

 

开启调试控制台,默认波特率BIT_RATE_115200,按以下方式输入指令:

//注解,以下以 「>」开头的为输入行,已「<」开头的为输出行,其余为注解;
//AT 命令测试
>AT
<OK

//切换为STATION模式
>AT+CWMODE=1
<OK

//请配置为正确的SSID与密码,并能连入网络。
>AT+CWJAP="OUR_SSID","PWD_SSID"
<OK

//查询网络连接状态
>AT+CIPSTA?
<+CIPSTA:"192.168.0.102"
<OK

//查看推送状态
>AT+PUSH?
<3
<OK

//以下请替换为你自己添加的APPID与APPKEY,不要引号,直接输入即可, 这里请注意是APPID,非APPNAME,数字的,第一栏的APPID
>AT+PUSH_DEF=APPID,APPKEY
<OK

//若过较长时间仍一直返回3,则无法连接到服务器,请AT+RST后重试
>AT+PUSH?
<2
<OK

//收到来自远端的数据。
+MSG,20:HELLO,FROM PUSHMSG.

//控制GPIO的指令
>AT+GPIO_LOW=15
<OK

>AT+GPIO_HIGH=12
<OK

在平台 在线设备 https://espush.cn/web/devices/、数据推送 https://espush.cn/web/pushmsg/ 等处,均可向设备发送指令,指令将从串口传出。

AT指令说明

AT-PUSH固件新增了3个命令,以下做简要说明 - AT+PUSH,使用AT+PUSH?可查询当前连接状态,返回值定义为:

CONNECTING = 0
DNS_LOOKUP = 1
CONNECTED = 2
DISCONNECTED = 3

留意只有返回值为 2 时才代表已连接,其余都是未连接状态,如连接中,DNS查找中,已断开等。

  • AT+PUSH_DEF=APPID,APPKEY 可连入ES-PUSH系统。命令为异步式,敲入后立即返回,并将推送APP信息包括ID于KEY保存在flash中,下次启动且进入station模式后,将自动连接平台。APPID与APPKEY均不需要输入引号,直接键入即可,如` AT+PUSH_DEF=123134,25b28f0ffb9711e4a96d4341579b49a1`,且后面不得跟随多余的空格或其他可见或不可见字符。此条为无效的示例命令,照抄不会连入平台。
  • AT+PUSH_CUR=APPID,APPKEY 可连入ES-PUSH系统,与`AT+PUSH_DEF`类似,但不同的是并不会保存推送连接信息,下次启动后需要重新设置。

可随时使用AT+PUSH?查询连接状态,当处于可连接时,能使用如下命令。 - AT+PUSHMSG,数据推送,距离推送HELLO字符串到服务器可发送指令`AT+PUSHMSG=HELLO`即可。在与服务器正常连接的情况下返回OK,否则返回ERROR。

  • AT+N_AP ,使用此命令,开启AP组网模式,此时模块将发出名为ESP_AT的SSID,使用密码espush.cn登入后,网关机器即为模块地址,此时可配置目标路由器的SSID与密码
  • AT+N_SMC ,使用此命令,开启SmartConfig组网模式,此时模块将监听空中的无线广播数据,使用官网的ESPTouch APK即可连接并配置模块的联网信息,官网APK下载地址:https://github.com/EspressifApp/EsptouchForAndroid
  • AT+PUSHCLOSE,使用此命令断开与服务器的连接,断开后服务端也将无法推送数据到终端。返回OK。
  • +MSG,收到数据后,模块将向串口写入以下数据,数据已 +MSG %d: 开头,其中%d为收到的数据长度
  • AT+GPIO_LOW=N ,使用此指令控制指定GPIO口的低电平,可远程使用此命令。
  • AT+GPIO_HIGH=N,同上,使用此命令控制GPIO口的高电平,可远程使用。可控制的GPIO口参考如下:
//0 ~ 5
{0, FUNC_GPIO0, PERIPHS_IO_MUX_GPIO0_U},
{1, FUNC_GPIO1, PERIPHS_IO_MUX_U0TXD_U},  //串口tx口,请不要使用
{2, FUNC_GPIO2, PERIPHS_IO_MUX_GPIO2_U},
{3, FUNC_GPIO3, PERIPHS_IO_MUX_U0RXD_U},  //串口RX口,请不要使用
{4, FUNC_GPIO4, PERIPHS_IO_MUX_GPIO4_U},
{5, FUNC_GPIO5, PERIPHS_IO_MUX_GPIO5_U},
//9 ~ 10
{9, FUNC_GPIO9, PERIPHS_IO_MUX_SD_DATA2_U},
{10, FUNC_GPIO10, PERIPHS_IO_MUX_SD_DATA3_U},
//12~15
{12, FUNC_GPIO12, PERIPHS_IO_MUX_MTDI_U},
{13, FUNC_GPIO13, PERIPHS_IO_MUX_MTCK_U},
{14, FUNC_GPIO14, PERIPHS_IO_MUX_MTMS_U},
{15, FUNC_GPIO15, PERIPHS_IO_MUX_MTDO_U},

使用范例及方式见下图

_images/remote_at.png_images/push_at.png

注意,关于GPIO控制指令,你需要知道我的测试结果: 如下口的测试是可以的:0, 2, 4,5,12,13,14,15,其中4,5 比较特殊,对于小黄版,用单独接LED测试失败,但板载的LED却OK。以下GPIO口测试失败,1,3,9,10,其中1和3 是rx与tx口,使用的话,串口会失去响应,但事实上系统仍然在继续运转,你可以从云端推送 AT+RST 使之重启。另外9和10导致模块长时间失去响应,并最终导致无法喂狗而重启,导致wdt reset,继而重启。

至此,基本环境就弄好了,已经可以再有网络的地方远程控制12e了,剩下的就交给自己的想法了!!!


 REF:

    1.EPUSH DOC

    2.esp12e manual

    3.Aithinker Wiki

免责声明:文章转载自《esp-12e折腾》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇web打印,web打印控件的三种实现方法URule规则引擎使用指南汇总下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android 多媒体视频播放一( 多媒体理解与经验分享)

前言 说到android的多媒体,一把辛酸一把泪,当初听说会多媒体的比较牛掰,公司也有需求,于是乎我也积极的加入研究android多媒体的行列,记得以前刚接触的时候,最开始还是比较头大的,主要是但是很多细节比较零散凌乱,无法形成规律模式和合理的解决方案,但是慢慢也虽然接触了久了,很多事情也就明白过来了,接触android三年多四年了,慢慢的也有些学习和做事...

iOS 审核被拒

很快首次试飞,就迎来了第一次的惨败,虽然我已有了一些心理准备,但还是有不小打击的,奉上我的被拒理由: 被拒的描述1: From Apple 2. 1 PERFORMANCE: APP COMPLETENESS 2. 3 PERFORMANCE: ACCURATE METADATA Performance - 2.1 We were unable to...

【OpenGL】学习笔记#1

没事干总要学点东西,这个系列的文章既是我的笔记,又是一篇教程(给我自己的教程),主干内容参考一篇国外教程,教程很粗略,但是代码不错,所以我借着它的脉络,补充网上的资料来扩充内容,每一句话都要理解是什么意思,还有实现的原理。不定期更新,国外教程网址在文末,有兴趣的同学可以去看看。 一、OpenGL简介 OpenGL是一套开放图形库API(的标准),因此可以跨...

机器翻译 2010年NOIP全国联赛提高组

题目描述 Description 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义 来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有, 软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中 文含义然后...

阿里云 OSS文件存储挂到云服务器ESC文件系统中

ossfs能让您在Linux系统中,将对象存储OSS的存储空间(Bucket)挂载到本地文件系统中,您能够像操作本地文件一样操作OSS的对象(Object),实现数据的共享。 使用限制 ossfs使用有以下限制: 不支持挂载归档型Bucket。 编辑已上传文件会导致文件被重新上传。 元数据操作,例如list directory,因为需要远程访问OSS服务...

架构之美阅读笔记之二

今天学习的是架构之美的第二章_两个系统的故事:现代软件神话。这一章主要讲的是两个软件系统的开发实例,最终向我们阐述了软件架构的好坏对于软件系统开发的影响。 首先第一部分讲的是“混乱大都市”。“混乱大都市”式的软件开发在实发性项目的开发中是可怕的,就是大都市的地铁线路一样,无法让人确定,哪一条线路好。“混乱大都市”式的软件开发通常缺少规划,开发到最后,产生了...