第1步:获取所有部件
现在让我们看看如何构建这个项目。我们需要ESP32板,2.8“ILI9341显示器,小米温度和湿度传感器,面包板和一些电线。
ESP32
2.8“显示
小米传感器
面包板
电线
USB电表
Powerbank
第2步:ESP32 Board
如果您不熟悉它,ESP32芯片是我们过去多次使用的流行的ESP8266芯片的继承者.ESP32是一个野兽!它提供两个32处理内核,工作频率为160MHz ,大量的内存,WiFi,蓝牙和许多其他功能,成本约7美元!迷茫的东西!
请观看我为此委员会准备的详细评论。我已将视频附加到此Instructable上。它将有助于理解为什么这个芯片会改变我们永远做事的方式!关于ESP32最激动人心的事情之一就是即使它非常强大,它也提供深度睡眠模式,只需要10μA的电流。这使得ESP32成为低功耗应用的理想芯片。
步骤3:2.8“用于Arduino和ESP32的TFT显示器
显示屏很大,分辨率为320x240像素。与我最喜欢的显示器相比,1.8英寸彩色TFT显示屏可以看到它更大。屏幕还提供触摸功能,后面还有一个额外的奖励和SD卡插槽。它使用SPI接口,因此与Arduino或ESP32板的连接非常简单。显示器的成本相对较低;我认为它的成本约为11美元对于这个显示器提供的是一个合理的价格。
关于这个显示器的另一件事是它不像我们目前使用的触摸显示器那样作为屏蔽。这样,我们可以连接显示器任何电路板,Arduino Pro mini,STM32,ESP8266和ESP32。这非常重要,因为我们现在有一个低成本的显示器,我们可以在每个电路板上使用。现在,我们可以在这些主板上使用的唯一触控显示器是Nextion显示器,它们更贵,而且说实话,即使我不时使用它们,我也不太喜欢它们。
步骤4:连接显示器
首先,我们必须连接ESP32板到2.8“显示器。您可以找到附加到Instructable的原理图。我正在使用大约两年前发布的DOIT ESP32板。这个版本的电路板已不再可用,因为现在有更新版本的电路板提供更多引脚,这个版本。我使用旧版电路板的唯一原因是电路板的GND引脚位于电路板的同一侧,靠近SPI引脚,这使得面包板友好。
连接后我们可以通过电路板向电路板显示项目。几秒钟后,我们会从附近的小米设备接收实时数据。由于该设备使用蓝牙4,它的范围非常好。我们可以轻松获取此设备从最远10米或更远的距离传输的数据!我们也可以收到小米设备的电池电量,但我没有在屏幕上显示这个值。
如果我们使用这个USB仪表,我们可以看到这个项目的当前抽奖是120左右使用这个大显示器-150 mA。如果我们使用电子纸显示器,将ESP32板置于深度睡眠模式,并且每隔几分钟从传感器获取数据,我们就可以使该项目对电池友好。我将在未来的视频中尝试这一点。这个项目只是一个演示,我们可以无线地从这个设备获取数据。
第5步:项目代码
现在让我们看一下项目的软件方面。
我使用了从小米设备获取数据的代码,并用它构建了一个独立的项目。
在这个变量中,我们声明我们需要每10秒获取一次新数据。
#define SCAN_TIME 10 // seconds
这里,我们声明要以摄氏度显示温度。如果要使用Imperial系统,只需将此变量设置为false即可。
boolean METRIC = true; //Set true for metric system; false for imperial
在设置功能中,我们初始化ESP32板的显示屏和蓝牙模块,然后在屏幕上绘制用户界面。
void setup() {
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector
tft.begin();
Serial.begin(115200);
Serial.println(“ESP32 XIAOMI DISPLAY”);
initBluetooth();
drawUI();
}
接下来,我们每隔10秒搜索附近的蓝牙设备。我们不与小米设备建立连接,因为它不需要。我们只扫描附近的蓝牙低功耗外设并检查广播广告包。
void loop() {
char printLog[256];
Serial.printf(“Start BLE scan for %d seconds.。. ”, SCAN_TIME);
BLEScanResults foundDevices = pBLEScan-》start(SCAN_TIME);
int count = foundDevices.getCount();
printf(“Found device count : %d ”, count);
delay(100);
}
湿度和温度值存储在这些数据包中,因此我们只需要读取它们。在我们读取值后,我们在屏幕上显示它们。与往常一样,您可以在此Instructable附带的说明中找到指向此项目代码的链接。
步骤6:最终版本&改进
现在我们知道如何从这个传感器无线获取数据,我们可以建立一个完整的电池供电气象站。由于这款小米设备是商用产品,因此可提供出色的电池寿命。不幸的是,我们的项目还没有实现类似的电池消耗。因此,我计划将此传感器用作气象站项目的户外传感器,该项目将使用大型电子纸显示器。这会很酷。
-
蓝牙
+关注
关注
114文章
5818浏览量
170230 -
监测器
+关注
关注
0文章
174浏览量
38782 -
小米
+关注
关注
70文章
14349浏览量
144121 -
ESP32
+关注
关注
18文章
971浏览量
17218
发布评论请先 登录
相关推荐
评论