|
本文主要介绍如何制作一个微型气象站。 这个想法和大部分代码来自Daniel Eichhorn在这个网址上的博客,可以去看看,这里面有一些很酷的东西! http://blog.squix.ch/2015/12/esp8266-weather-station-new-version.html
我已经根据自己的应用更新/更改了部分代码,使得其适用于具有不同控制芯片(SH1106与SSD1306)的较大OLED。我还添加了一些新功能和改进。
1)该气象站从互联网获取数据,显示当前的天气和3天预报;
2)该装置可以切换显示另一个城市的数据 - 也许您的亲戚或朋友住在那里;
3)该装置具有传感器,可显示室内的温湿度;
4)程序将在10分钟左右内将系统置于深度睡眠状态,按下本机顶部的按钮即可唤醒。
步骤1:所需的材料
除了3D打印的房屋外,您还需要的两个主要部分是: 1)ESP8266-13 WIFI电路板 2)1.3“OLED(或者是更小的0.96”OLED) 另外还需要以下: 3)SHT22温湿度传感器 4)按钮 5)振动传感器 6)USB插座和5v至3.3V稳压器 7)一些10k电阻(我同时使用了贴片型和直插型)。
步骤2:OLED屏幕侧面说明
在过去的一年中,我已经对这些OLED屏幕进行了很多实验。虽然不是这个制作的一部分,但我会写下几个想法/发现:
OLED屏幕有各种形状和尺寸,但目前有两种非常受欢迎的屏幕尺寸。 1)0.96“ 2)1.3“ 他们也有2种常见的颜色 1)蓝色 2)白色
驱动OLED的芯片常用的有两种。这两种芯片有许多非常相似的设置命令(在大多数情况下相同),但用于显示信息的命令集是不同的,所以你不能只是改变屏幕 - 你需要更改程序/库来适合相应的芯片! 1)SH1106 2)SSD1306 我上传了两个版本的气象站软件,一个适用于SH1106芯片,另一个适用于SDD1306芯片。
芯片接收数据的方式可以是以下三种形式的一个: 1)二线制I2C 2)三线制SPI 4)四线制SPI SPI相对于I2C的优势在于写入屏幕的速度更快,缺点是需要更多的GPIO引脚来驱动。在这个项目中,速度不是关注的问题,所以使用I2C容易得多。一些显示屏(如上图所示)可以配置为SPI或I2C。我已经做到了这一点,但是我强烈建议您使用只有I2C的显示屏,因为我花了许多很长时间移动smd电阻,尝试将显示屏作为SPI正常工作,然后也作为I2C正常工作。我确实可以让他们正常工作(在大多数情况下),但是花费了太长的时间。
步骤3:为ESP8266芯片添加10k上拉电阻
为了使ESP8266芯片正常工作,必须在电路板上添加多个上拉和下拉电阻。 第一步在GPIO15和GND之间添加一个10k贴片电阻。 我使用的是表贴电阻,因为它很好地适配在两个焊盘之间,但是它很适合附着,您可能更喜欢使用类似于以下步骤中使用的绕线电阻。 GPIO15拉低=正常启动,IE从芯片上的SPI闪存启动
步骤4:将上拉电阻添加到REST(复位引脚)
在此步骤中,我将一个10k上拉电阻从Vcc连接到RST引脚(复位引脚)。 这将使我们在将其设置成深度睡眠后重新唤醒ESP8266芯片。 如果你想省略这个功能,那么可以跳过这个步骤。
步骤5:向Cip使能引脚(Vcc-CH_PD)添加一个上拉电阻
将另一个10K线绕电阻从Vcc连接到CH_PD引脚,该引脚作为芯片使能。
步骤6:向GPIO 0(Vcc至GPIO 0)添加上拉电阻
将另一个10K线绕电阻从Vcc连接到GPIO 0引脚,该引脚正常工作时要求为高电平。
步骤7:将上拉电阻连接到GPIO 2(Vcc - GPIO 2)
将一个10k的绕线电阻从Vcc连接到GPIO 2引脚,该引脚正常工作时需要。
步骤8:开始添加接线
现在开始增加一些连接线。 您需要最好的电线,因为长度都很短,不能承受太多的电流。 我使用的是多股线缆,这些电缆比较薄且灵活。 不要尝试使用厚实的电线,因为当将其全部装入非常小的房屋时会出现问题!
步骤9:开始增加电源线
在这里,我添加了+ ve和-ve电线到ESP8266(红色和黑色)上的Vcc和GND引脚。
步骤10:OLED线
现在添加2条线,将信号传送到OLED(橙色和绿色)。连接的2个引脚是GPIO12(绿色)和GPIO13(橙色)
步骤11:添加一根线到GPIO 0
添加一根线到GPIO 0(蓝色)。正如您将看到的,这是编程ESP8266芯片所必需的。当您想要芯片在编程模式下启动时,GPIO 0引脚需要拉到地(LOW),但在正常操作时保持高电平。
步骤12:添加Rx和Tx线
在这里,我们需要在ESP8266上的Rx(棕色)和Tx(灰色)引脚上添加2根电线。这些是使用FTDI编程器的Rx和Tx进行编程和调试所需要的。 注意:电线需要交叉Tx到Rx和Rx到Tx
步骤13:添加连接到SHT22温湿度传感器(GPIO 14)
添加一根线(紫色)将SHT22温湿度传感器连接到GPIO 14。
步骤14:准备OLED屏幕
在连接OLED液晶屏之前,请先修整焊接引脚的正面。这样可以确保在我们安装它们后不会与房屋进行通风。此外,您可以轻轻地将销钉倾斜,以便将安装放置在外壳中。 然后添加一个Vcc和GND线(红色和黑色)
步骤15:将OLED和ESP8266连接在一起
将橙色和绿色导线连接到OLED显示屏上的“Data”和“Clock”引脚。还可以将红色和黑色的电源线连接在一起。 引脚12连接到SDA 引脚13连接到SDC
SPI / I2C屏幕注意事项(6或7针)
如果您的屏幕不是专用的I2C,那么连接可能会被标记如下: D0 ----------- SCL或CLK或SCK或Clock D1 ----------- SDA或MOSI或Data RES ---------- RST,RESET, Rest。将该引脚使用10k电阻上拉至Vcc- 同时建议将100nF电容连接到GND DC ----------- A0数据/命令接地该引脚 CS -----------片选 - 将此引脚接地 VCC ---------- 3.3V GND ---------- GND
步骤16:向振动传感器添加2根线
添加2根线(黄色)到振动传感器。另外还要添加一些热缩管到这个部分,因为要保证引脚是绝缘的。
步骤17:将振动传感器连接到GPIO 5
将振动传感器的两条线连接到GND和GPIO 5。不管传感器的哪个腿都连接到哪个引脚,所有的振动传感器都会在GPIO 5引脚短路,因此它没有极性。 |