a

基于ESP8266 气象站制作

简介

  ESP8266是乐鑫推出的一款低功耗物联网芯片,它以低廉的价格和强劲的性能,近来非常受开发者欢迎。这里使用的是安信可官网购买的ESP8266-12F模块。

  ESP-12F WiFi 模块是由安信可科技开发的,该模块核心处理器 ESP8266 在较小尺寸封装中集成了业界领先的Tensilica L106 超低功耗 32 位微型 MCU,带有 16 位精简模式,主频支持 80 MHz 和160 MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA,板载天线。


原理

  PS:直接在ESP8266-12F上基于SOC上进行开发,不必要外部再接一款单片机。一块芯片上实现联网更新、控制动作。

工作原理:系统上电之后,根据预置的WIFI-ssid,和WIFI-passwd,进行连网,成功联网之后,从api页面获取天气数据(JSON数据),解析JSON数据,返回至OLED显示。

原料&工具

  • ESP8266-12E/12F 模块
  • OLED显示屏 0.96寸、1.3寸都行
  • DTH-22温湿度模块(DHT-11也可以)
  • 震动开关(滚珠、水银、弹簧(不建议))
  • USB 接口、ASM1117-3.3V稳压芯片
  • 10uF 电解电容、杜邦线若干


电路原理图

电路图如下所示:

制作:ESP8266下载程序时,GPIO-0必须置低电平,上图中S3按键开关就是用来切换下载程序模式的。其中USB接口输出VCC-IN(5v),接入ASM1117的3脚,2脚为GND,1脚VCC-OUT(3.3v),在VCC-OUT于GND之间并联一个10uF电容,做简单滤波。电路很简单,直接按照上图做即可。

软件配置

  ESP8266官方SDK不太人性化,入手有一点难度(其实主要是官方基于Lua 语言开发,不想再从头搬砖学233333),如果玩过Arduino 的同学,建议直接用Arduino IDE进行开发,非常便捷,并且提供强大的库文件支持。这里我以Arduino IDE开发环境为例,进行ESP8266的编译开发。

IDE配置:

环境:

Arduino IDE 1.8.4 版本;
Windows 7 x64 旗舰版;
USB转TTL下载器(CP2102或者CH340)

添加JSON源支持

  首先官网下载Arduino IDE并默认安装,打开,Files 》 Preferences,在Additional Boards Manager URLs: 填入:http://arduino.esp8266.com/stable/package_esp8266com_index.json,》OK,关闭页面并重启IDE。

添加库支持

  这里我们需要加载一下库:
Sketch > Include Libraries > Manage Libraries...输入以下库名称进行添加:

代码调试

  本例程代码是基于Arduino 语言编写,简明易懂,API接口都已经标明,在此并不做解释,编译代码前,需要将WiFi-ssid 和WiFi-psw更改为自己路由器的账号和密码,以及更改API和城市代码,其中WIFI不支持中文账号,因为本例程中Arduino IDE并未加载中文库,su所以显示界面也是英文,后面有空再来汉化吧。

代码设置页面:

编译下载

  在编译下载程序之前,需要设置一下编译环境,如下图所示设置:

设置完毕之后即可下载程序,如果一切顺利,将会成功的显示出如下界面:

(当天天气)

晃动震动开关开始更新数据(图示正在更新广州天气)

广州未来三天的天气数据:

总结

  基于ESP8266的气象站,将包含HTML页面的WEB服务器内建于ESP8266中,通过连接wifi获取互联网数据,实时更新时间、天气,并且通过震动开关可以自定义更新频次(震动一次即可更新,一天400次API请求,多了网站会拒绝的23333),此外,还加入了深度休眠功能,系统持续工作10分钟之后,将自动进入休眠模式,此模式下,功耗将会降至最低。正常使用情况下900mAh 3.7V手机锂电池可提供半个月的续航时间!

  简单几步,打造最有逼格的物联网应用,成本价才20块左右,还等什么,动起手来做吧。

  程序正在打包上传中....

最后修改:2018 年 11 月 27 日 10 : 55 AM
您的支持就是我持续更新的动力!

发表评论

为了博客更好地生产内容,请将本站加入广告屏蔽插件的白名单,感谢您的支持。 具体方法
X