文档章节

esp8266实验:搭建最小系统,刷nodemcu固件,dht11温度读取并上传服务器

topdogs
 topdogs
发布于 2017/02/14 11:56
字数 1517
阅读 1012
收藏 0
点赞 0
评论 0

1.材料清单

  • esp8266-12E模块
  • esp8266转接板
  • cp2102模块 or ch304g模块
  • 轻触开关
  • 洞洞板
  • HT7533A-1 3.3v稳压芯片
  • 3.7v锂电池
  • DHT11温度湿度模块

2.焊接esp8266转接板,制作测试底板

esp8266模块不是特别小,实际使用可以直接把它焊在洞洞板上,但是作为反复使用的话,建议焊接到转接板上。洞洞板上主要元件有左右各两排排针,引出所有io口,两个按钮,左边按钮按下拉低rest口,实现重启,右边按钮拉低GPIO0(模块右边第五个引脚)口,刷入固件的时候需要按下该按钮。左边有一个ht7533稳压管和2个10uf的电容组成的稳压电路。下面有个排针,用来插入cp2102 usb转串口模块。

<!--more-->

输入图片说明 输入图片说明 输入图片说明 输入图片说明

3.下载nodemcu固件,并刷入esp8266模块中

nodemcu固件有很多个模块,所有功能都编译的话,有可能esp8266Flash空间不够,所以需要根据应用需要编译所需功能,推荐使用在线编译服务,和jquery ui一样,通过网页打钩选择需要的功能,填写你的邮箱,提交后等待后台生成完毕会发送邮件通知你,并在邮件里附上下载地址。https://nodemcu-build.com/ 。邮件里会提供2个版本的固件,我是选择浮点的版本。 到乐鑫的官网下载Flash Download Tools,该工具可以用来刷固件用,windows下使用,nodemcu文档里也提到了另外的刷固件工具,如esptools,跨平台的,不过我在linux mint下使用ch340G模块并不能刷入成功,而使用Flash Download Tools在windows下则成功,原因没有细究,能成功即可。 最上面的Download Path Config 勾选一项即可,选择nodemcu固件位置,并在右边的地址填写“0x00000”,其他如图:

输入图片说明

刷固件的方法是:

1.点击下方的Star,显示等待

2.先按下洞洞板上的右边按钮(拉低GPIO0),再按下左边的按钮(拉低rest),然后放开左边按钮,再放开右边按钮。这样就进入刷固件模式。

3.如无意外,软件会显示下载进度条,等100%完成了,重新按下左边按钮重启esp8266模块。

4.第一次刷完固件重启,模块需要格式化flash,这需要一分钟时间吧,所以第一次刷完固件按重启后需要等等。如果你使用putty或者minicom连接着串口(比特率115200),应该会看到正在格式化的文字.

遇到的坑

我购买的usb转串口模块型号是cp2102,win10下无法下载固件,而且其3.3v电压口,实测电压高达3.9V。因为没法使用所以改为ch304g模块。

4.编写代码,实现读取dht11的温度

使用工具ESPlorer,跨平台,提供代码编写上传和串口功能,分左右2个界面,左边写代码,写完通过下面的按钮发送到esp8266上,然后右边的串口窗口可以看数据。

约定

dht11的数据引脚接在GPIO12口,即左边第六个。

服务器端

服务器端我使用python+django,在百度的bae上部署,实现简单的接收http post请求,校验数据并入库。

通讯逻辑

服务器端保存传感器的2个信息:mac地址加密密码。esp8266模块通过http post请求将5个参数发送到服务器:

  • humi:湿度,单位整数。

  • mac:模块的mac地址。

  • rnd:随机数。

  • temp:温度,单位整数。

  • sign:以上4个参数按字母升序排序的post数据,使用保存在服务器的密码进行hmac-sha1加密得到的字符。 这样可以有效的防止伪造数据,但是有一个小缺点,就是里面没有时间戳,会导致回放。

奇怪,markdown的代码一直排版不好,自己不会弄 代码在这里:代码

输入图片说明

提示

DHT11的精度并不是很好,精度为1摄氏度,我有2个模块,一个单独淘宝购买的,一个在某块开发板上面的,同样的代码2个模块读书相差3度,湿度则相差更多。

5.锂电池上电,电源问题

电源部分的内容我还掌握的不够好,本次使用了HT7533A-1的稳压模块,它的封装像三极管一样比较好插在洞洞板上进行焊接,根据基本电路在两端加上10uf的电容,接上锂电池后,测得输出端电压为3.29V,正常。esp8266模块插入洞洞板,发觉模块的led等快速闪烁,模块不能正常运行,猜测是在不断重启,至于原因,我猜测是外围电路不对,例如哪些引脚没有接电阻上拉或下拉,或者电压不足电流不足。通过测量上电后模块电压,发现电压下降到2.7V,整个电路电流170mA。于是拔出锂电池,使用外部3.3V直接接入模块,模块正常,且电流为70mA左右。那么初步判断是稳压管模块的供电问题。手里头有662k稳压芯片,但是那个封装太小,放在洞洞板上不容易焊接,还有ams1117-3.3V模块,但是那个需要的压差大概1V,单块锂电池无法使用。最后没有好方法的情况下,直接锂电池供电,模块手册说输入电压最大不超过3.6V,实测锂电池电压3.9V,并没有烧坏。

6.持续测试

最后使用的是标称1000mA的锂电池直接供电,从代码可以看出设置了定时器没3分钟执行一次任务,没有设置休眠模式,wifi估计应该是持续连接的,目前24小时过去了仍然在工作。

© 著作权归作者所有

共有 人打赏支持
topdogs

topdogs

粉丝 41
博文 39
码字总数 12877
作品 2
汕头
高级程序员
nodemcu定时器tmr代替while

一开始接触ESP8266时,选择了看安可信的开发文档,名字叫做ESP8266 SDk 编程手册,可惜研究了挺久的,还是没怎么整明白,差点就放弃了ESP8266的学习,后来尝试这用AT指令去做了些东西,虽然实...

qq_30907913 ⋅ 04/20 ⋅ 0

nodemcu+树莓派控制继电器实现智能插座

本篇教程的重点在HASS和nodeMCU的配置。 前期准备 树莓派3B NodeMCU ESP8266 CH340 5v继电器 一.HASS安装 树莓派系统及HASS安装不是本篇重点,就给大家推荐个链接:基于Raspbian的HASS安装。...

piaoyangguohai1 ⋅ 04/17 ⋅ 0

将边缘分析集成到 IoT 解决方案中

分析边缘的传感器数据来预防干草堆火灾 系列内容: 此内容是该系列 # 部分中的第 # 部分: 网络边缘的 IoT,第 2 部分 此内容是该系列的一部分:网络边缘的 IoT,第 2 部分 敬请期待该系列的...

Ori Pomerantz ⋅ 05/29 ⋅ 0

ESP8266在Alios-Things上的入门开发指南 (一)开发环境搭建及HelloWorld固件

一、 开发环境搭建 目前国内大多数开发者使用的都是WinXP/Win7/Windows XX做MCU的开发。习惯Windows环境开发的朋友,如果一旦一接触到MCU需要是Linux环境来进行开发编译,第一反应理所应当是“...

行者武松 ⋅ 06/12 ⋅ 0

esp8266 wifi模块刷nodemcu固件并蓝牙串口调试

esp8266 wifi模块价格十分实惠。出厂是默认带AT指令的系统,通过串口使用at命令进行交互。但是可以刷别的固件,例如nodemcu。 nodemcu可以用lua脚本控制模块,而且lua脚本的优势是非常容易编...

topdogs ⋅ 2015/06/03 ⋅ 4

Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印。

欢迎来到物联网智能家居顶量级别wifi模块Esp8266学习之旅。 本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时...

xh870189248 ⋅ 2017/09/14 ⋅ 0

[Micropython]TPYBoard v202 v102+v202 家庭无线温湿度检测

一、实验器件 1、TPYBoard v102 1块 2、TPYBoard v202 1块 3、Nokia 5110LCD显示屏 1块 4、DHT11温湿度传感器 1个 5、micro USB 数据线 2根 6、面包板 1块 7、杜邦线 若干 二、实验步骤 1、T...

bodasisiter ⋅ 05/31 ⋅ 0

Temperature and Humidity sensor

DHT11和DHT22都是价廉物美的温度湿度传感器(DHT (Digital Humidity & Temperature) sensors), 采用数字总线的通讯方式,非常便于编程. 另外显示采用SSD1306的olde显示屏,这也是一款常用的显示...

gaoshine ⋅ 2017/12/10 ⋅ 0

ESP8266 wifi模块初次试用

前段时间在淘宝随便搜搜“wifi模块”,竟然眼前一亮发现有一款价格在15元内的wifi模块:ESP8266。 对其简单的了解: 体积小巧,且多种封装,没有一个硬币大。 价格便宜,十几块钱在wifi模块里...

topdogs ⋅ 2015/04/04 ⋅ 5

[Micropython]TPYBoard v202 邪恶改装:TPYBoard制作廉价WIFI干扰器

想不想搞个WIFI干扰器?网上搜集了一下资料,发现用esp8266可以实现简单的干扰功能,包括断网、复制、欺骗等等。刚好手上有块Tpyboard V202(30元),也是esp8266芯片的,也是想换个固件是不是...

bodasisiter ⋅ 05/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部