编译OMG的DHT

编译的过程依然参考之前两篇OpenMQTTGateway的文章,但在编译的过程中遇到一个问题。

解决问题

查看报错

  1. 环境

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [env:nodemcuv2-dht]
    platform = ${com.esp8266_platform}
    board = nodemcuv2
    lib_deps =
    ${com-esp.lib_deps}
    ${libraries.wifimanager8266}
    ${libraries.dht}
    ${libraries.esp8266_mdns}
    build_flags =
    ${com-esp.build_flags}
    '-DZsensorDHT="DHT"'
    '-DZsensorDS1820="DS1820"'
    '-DsimplePublishing=true'
    '-DGateway_Name="OMG_ESP8266_DHT"'
    board_build.flash_mode = dout
  2. 报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
In file included from /home/coder/File/OpenMQTTGateway/main/ZsensorDHT.ino:34:
.pio/libdeps/nodemcuv2-all-test2/DHT sensor library/DHT_U.h:25:10: fatal error: Adafruit_Sensor.h: No such file or directory

*************************************************************************
* Looking for Adafruit_Sensor.h dependency? Check our library registry!
*
* CLI > platformio lib search "header:Adafruit_Sensor.h"
* Web > https://registry.platformio.org/search?q=header:Adafruit_Sensor.h
*
*************************************************************************

25 | #include <Adafruit_Sensor.h>
| ^~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio/build/nodemcuv2-all-test2/src/main.ino.cpp.o] Error 1

发现缺少Adafruit_Sensor.h所在的依赖库
在网页上搜索,发现这个函数所在的依赖库为Adafruit Unified Sensor
在网页上搜索了一下这个依赖库,大部分都是arduino的解决方法,这个依赖库的地址并没找到
在OpenMQTTGateway/platformio.ini下查看依赖库,发现Adafruit Unified Sensor就在依赖表中
unifiedsensor = Adafruit Unified Sensor@1.1.4

解决办法

每次重新编译前建议先清理环境

在OpenMQTTGateway/environments.ini的相关配置环境中添加依赖库即可

1
${libraries.unifiedsensor}

重新编译发现有其他依赖报错

1
fatal error: DallasTemperature.h: No such file or directory

按照上面思路在依赖库中找到相关依赖库并加入配置环境
dallastemperature = DallasTemperature

1
${libraries.dallastemperature}

问题解决

编译成功

1
2
3
4
5
6
7
8
Building .pio/build/nodemcuv2-dht/firmware.bin
Creating BIN file ".pio/build/nodemcuv2-dht/firmware.bin" using "/home/coder/.platformio/packages/framework-arduinoespressif8266/bootloaders/eboot/eboot.elf" and ".pio/build/nodemcuv2-dht/firmware.elf"
===================================================================================== [SUCCESS] Took 94.74 seconds =====================================================================================

Environment Status Duration
------------- -------- ------------
nodemcuv2-dht SUCCESS 00:01:34.742
====================================================================================== 1 succeeded in 00:01:34.742 ======================================================================================

针脚定义

Module Arduino Pin ESP8266 Pin ESP32 Pin
Analog reading A0 A0 A0
BH1750 SDA A4 D2 21
BH1750 SCL A5 D1 22
BME280/BMP280 SDA A4 D2 21
BME280/BMP280 SCL A5 D1 22
C-37, YL-83, HM-RD A0 + D14 A0 + D14 A7 + D14
DHT11/22 D8 D1 16
HC-SR501/HC-SR505 7 D5 5
HTU21 SDA A4 D2 21
HTU21 SCL A5 D1 22
INA226 SDA A4 D2 21
INA226 SCL A5 D1 22
MQ02 A0 + D4 A0 + D4 A0 + D4
TEMT6000 A0 A0 A0
TSL2561 SDA A4 D2 21
TSL2561 SCL A5 D1 22