具有ESP8266 SDK的BME280气象站的制作

电子说

1.2w人已加入

描述

步骤1:硬件

ESP8266

传感器

对于此项目,我使用了我从eBay上以5美元购买的BME280突破口。您可以使用其他分组(最终需要更改SW或HW中的I2C地址),但由于价格原因,我选择了此分组。

这是我从其订购的清单的确切链接,但其他来源也应该起作用:http://www.ebay.com/itm/1PCS-Breakout-Temperature 。..

尽管该图显示了带有蓝色阻焊膜的模块,但我的是紫色的。在正面,它具有传感器和3个用于更改I2C地址的焊盘。在背面,它具有我想成为稳压器和逻辑电平转换器的功能,但是我还没有在5V系统中尝试过该模块。

该中断仅输出I2C引脚,但这是还可以,因为ESP8266没有太多可用的引脚,并且传感器无法产生如此高的数据流,因此需要更快的接口(如SPI)。

Wi- Fi模块

因为我只需要一个I2C连接,所以我认为采用ESP-01模块并进行修改会很有趣。 J下面对此进行了描述,但是如果您不想进行修改,则最好使用另一个拉出所有引脚的模块,例如ESP-07。如果您决定使用库存模块,请不要忘记将CH_PD引脚连接到Vcc。

对于I2C,我需要GPIO2用于SDA,而GPIO14用于SCL。第一个已经可用,但是第二个需要做一些修改。由于我通常不积极使用CH_PD引脚,因此我决定修改PCB,以将GPIO14(引脚9)路由到板卡的CH_PD引脚和硬接线的引脚7(之前已连接到CH_PD)。 SoC至Vcc。在下面的图片中,我用红色标记了刮擦PCB迹线的位置,并用绿色标记了我建立的新连接(使用0.1mm导线)。

这样,我得到了一个小巧而坚固的模块,有2个GPIO,我不必担心保持CH_PD高电平,并且不会对芯片编程所需的连接产生干扰。

连接

传感器|模块

SDAàGPIO2

SCLàGPIO14

两个模块的Vcc和GND并联并连接至3.3V电源。电源未在此项目中描述,但我使用带APL1117-3.3固定稳压器和2个电容器的5V手机充电器。

在编程时,我将TX,RX,RST和GPIO0引脚连接至USB-UART转换器。我通常将其与CP2102 IC搭配使用,但请注意,其3.3V输出无法为ESP8266提供足够的电流。

第2步:软件

为开发软件,我使用了Unofficial

乐鑫ESP8266开发套件。您可以在以下链接中找到有关下载,安装和使用的所有必要信息:http://www.esp8266.com/viewtopic.php?t=820

在ESP8266上,我更喜欢这样做,因为我对软件有更好的控制,我可以使用Espressif发布和记录的API,并且所有这些都集成在Eclipse中以及许多使您的生活更加轻松的示例。

该代码可在GitHub,网址为https://github.com/cosminp12/BME280-Weather-Stati 。..可以下载它,只需将其导入Eclipse,它应该可以成功编译。

该应用主要包含一个功能每分钟执行一次,并读取传感器,然后使用HTTP客户端将该数据放在ThingSpeak上。 ThingSpeak密钥,路由器SSID和密码可从user_config.h中配置。

为了使该库在不同平台上具有更高的可移植性,它仅调用2个函数来执行I2C读写一个或多个字节。 (I2C_WriteData和I2C_ReadData),如果一切正常,则返回零值。

步骤3:结果

ESP8266

我的设备发送数据转到此频道:https://thingspeak.com/channels/96844

运行了一周后,我已经从ThingSpeak下载了CSV格式的整个Feed,并将其绘制到Excel中以获得更好的效果图。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分