寒假前就从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

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

烧录完了,断开io0与gnd

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

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

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

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

然后断电上电

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

  1. //注解,以下以 「>」开头的为输入行,已「<」开头的为输出行,其余为注解;
  2. //AT 命令测试
  3. >AT
  4. <OK
  5.  
  6. //切换为STATION模式
  7. >AT+CWMODE=1
  8. <OK
  9.  
  10. //请配置为正确的SSID与密码,并能连入网络。
  11. >AT+CWJAP="OUR_SSID","PWD_SSID"
  12. <OK
  13.  
  14. //查询网络连接状态
  15. >AT+CIPSTA?
  16. <+CIPSTA:"192.168.0.102"
  17. <OK
  18.  
  19. //查看推送状态
  20. >AT+PUSH?
  21. <3
  22. <OK
  23.  
  24. //以下请替换为你自己添加的APPID与APPKEY,不要引号,直接输入即可, 这里请注意是APPID,非APPNAME,数字的,第一栏的APPID
  25. >AT+PUSH_DEF=APPID,APPKEY
  26. <OK
  27.  
  28. //若过较长时间仍一直返回3,则无法连接到服务器,请AT+RST后重试
  29. >AT+PUSH?
  30. <2
  31. <OK
  32.  
  33. //收到来自远端的数据。
  34. +MSG,20:HELLOFROM PUSHMSG.
  35.  
  36. //控制GPIO的指令
  37. >AT+GPIO_LOW=15
  38. <OK
  39.  
  40. >AT+GPIO_HIGH=12
  41. <OK

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

AT指令说明

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

  1. CONNECTING = 0
  2. DNS_LOOKUP = 1
  3. CONNECTED = 2
  4. 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口参考如下:
  1. //0 ~ 5
  2. {0, FUNC_GPIO0, PERIPHS_IO_MUX_GPIO0_U},
  3. {1, FUNC_GPIO1, PERIPHS_IO_MUX_U0TXD_U}, //串口tx口,请不要使用
  4. {2, FUNC_GPIO2, PERIPHS_IO_MUX_GPIO2_U},
  5. {3, FUNC_GPIO3, PERIPHS_IO_MUX_U0RXD_U}, //串口RX口,请不要使用
  6. {4, FUNC_GPIO4, PERIPHS_IO_MUX_GPIO4_U},
  7. {5, FUNC_GPIO5, PERIPHS_IO_MUX_GPIO5_U},
  8. //9 ~ 10
  9. {9, FUNC_GPIO9, PERIPHS_IO_MUX_SD_DATA2_U},
  10. {10, FUNC_GPIO10, PERIPHS_IO_MUX_SD_DATA3_U},
  11. //12~15
  12. {12, FUNC_GPIO12, PERIPHS_IO_MUX_MTDI_U},
  13. {13, FUNC_GPIO13, PERIPHS_IO_MUX_MTCK_U},
  14. {14, FUNC_GPIO14, PERIPHS_IO_MUX_MTMS_U},
  15. {15, FUNC_GPIO15, PERIPHS_IO_MUX_MTDO_U},

使用范例及方式见下图

注意,关于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折腾的更多相关文章

  1. 一、ESP8266入门(基于LUA开发)

    序 一入坑便停不下来... 还挺有意思的哈,233,,,, 资料杂,自己一个一个去找确实浪费了不少时间,而且大多还都是英文的,需要硬着头皮看. 这次实践入门,更是对英语的重要确信无疑.Github必须 ...

  2. FAT16/32不等于ESP:windows安装程序无法将windows配置为在此计算机的硬件上运行

    今天给公司电脑装系统,由于公司特殊需要,要给新电脑装win7系统.三台完全一样的华硕adol笔记本,前两台都和win10并存装成了双系统,第三台被不懂系统的人尝试装win7搞坏了,只能全盘格式化后再装 ...

  3. Quick Start NodeMCU / ESP8266 12E

    先说明一下:本来想买常见的ESP 8266作为Arduinoi的WIFI模块,结果错买成ESP 8266 12E,发现网上的资料比较少. ESP8266是WIFI芯片,它只是一块芯片必须要搭配相应的电 ...

  4. ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core

    背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供, ...

  5. ASP.NET Core 折腾笔记一

    前言: 在ASP.NET Core 1.0时,曾折腾过一次,后因发现不了System.Data而停止. 更因VS2015提示过期Delete掉VS了,其实主要还是笔记本的硬盘空间吃紧. 快双十一了,本 ...

  6. Gulp探究折腾之路(I)

    前言: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她,我们不仅可以很愉快的编写代码 ...

  7. 两年来的core折腾之路几点总结,附上nginx启用http2拿来即用的配置

    序:一年多没更新博客园的内容了,core已经发生了翻天覆地的变化,想起2014年这时候,我就开始了从当时还叫k的那套preview都不如的vnext搭建这套系统,陆陆续续它每一次升级,我也相应地折腾, ...

  8. 记录一下折腾webp 的过程

    最近有客户想要处理webp 的动图,情况当然是我们并不能处理webp 格式的图片.这事就交给了我来折腾,一开始想着用瑞士军刀ffmpeg.结果是折腾了差不多一天,前前后后编译了几十次ffmpeg 源码 ...

  9. Hexo折腾记

    如果时间可以静止,我希望就停在此刻. 前言 博主之前也有折腾wordpress和jekyll可对于一个前端er来说,wordpress让人没法尽兴,因为不知道该如何添加自己的代码.而jekyll就太麻 ...

  10. [无聊的事-连载之连开100个VS] 折腾你的骚机吧,骚年们!!!

    [无聊的事-连载之连开100个VS] 折腾你的骚机吧,骚年们!!! 只有8G内存的,用这个:打开你的CMD命令提示符如果只装了Visual Studio 2010,用这条命令,打开50个VSfor / ...

随机推荐

  1. SQL Server性能优化与管理的艺术 附件下载地址

    首先感谢读者们对鄙人的支持,购买了<SQL Server性能优化与管理的艺术>,由于之前出版社的一些疏忽,附件没有上传成功,再次本人深表歉意. 请需要下载附件的读者从下面链接下载,谢谢: ...

  2. UNIX环境高级编程——进程间通讯方法整理

    一.无名管道pipe #include <unistd.h> int pipe(int fd [2]) 二.fifo #include <sys/stat.h> int mkf ...

  3. Linux Debugging(六): 动态库注入、ltrace、strace、Valgrind

    实际上,Linux的调试方法非常多,针对不同的问题,不同的场景,不同的应用,都有不同的方法.很难去概括.本篇文章主要涉及本专栏还没有涵盖,但是的确有很重要的方法.本文主要包括动态库注入调试:使用ltr ...

  4. Accounting Flexfield Setup and Usage (Doc ID 124333.1)

    APPLIES TO:Oracle General Ledger - Version 11.5.10.2 to 12.1.3 [Release 11.5.10 to 12.1] Information ...

  5. 配置安装nginx

    1.解决依赖关系和优化所需的组件 编译安装nginx需要事先需要安装开发包组"Development Tools" .同时,安装pcre-devel包,用yum安装即可 安装TCM ...

  6. 基于Reactjs实现webapp(加精)

    git原文链接:https://github.com/my-fe/wiki/issues/1 由于最近的reactjs实在太火,而且距离第一版已经快2年的时间了,已经相对稳定和成熟了,基于这两个前提下 ...

  7. SVN版本控制器中各符号的含义

    SVN符号的含义 项目开发过程中,随着学习的不断深入,开始慢慢接触到版本管理控制工具,其实这个工具主要用于团队开发之中,但对于个人项目的备份也有好处,可以避免在电脑出现不可预知的故障时,最大化的保护自 ...

  8. [转]Maven如何手动添加jar包到本地Maven仓库

     Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供.基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项 ...

  9. Gradle 1.12用户指南翻译——第三十七章. OSGi 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  10. 销售行业ERP数据统计分析都有哪些维度?

    场景描述 当前的企业信息化建设主要包括ERP系统.OA系统等.企业希望实现信息系统数据的整合,对企业资源进行分析汇总,方便对企业相关数据的掌控从而便于对业务流程进行及时调整监控. 但是由于系统间数据的 ...