
TTGO PaxCounter带有细尘传感器和BME280
wird aktuell überarbeitet für v.3 Stack CEwird aktuell überarbeitet für v.3 Stack CE硬件:
可选组件,具体取决于位置和住房请求:
组件 /布线
笔条是在PaxCounter板上和BME传感器上焊接的,具体取决于安装位置或安装位置,板顶部或底面的笔条可提供。安装螺丝天线 - 在这里,您也可以根据传感器结构安装延长的电缆。然后将两个传感器连接到PaxCounter,如下所示:
环境传感器的连接如下:
VCC (VDC 3,3 Volt) wird mit Pin 3.3V angeschlossen ORANGE
GND (Ground) wird mit dem GND am Paxcounter verbunden GELB
SCL (i2c Bus) --> Pin 22 am Paxcounter (mit SCL oder 22 beschriftet) GRÜN
SDA (i2c Bus) --> Pin 21 am Paxcounter (mit SDA oder 21 beschriftet) BLAU
frei
frei
细尘埃传感器的连接如下:
TXD (Daten senden) wird mit Pin 23 am Paxcounter verbunden WEISS
RXD (Daten empfangen) wird mit Pin LoRa2 am Paxcounter verbunden SCHWARZ
GND (Ground) wird mit einem weiteren Pin GND am Paxcounter angeschlossen BRAUN
frei
VCC (VDC 5 Volt) kommt an den 5 Volt Pin (beschriftet mit 5V) ROT
frei
frei
请查看文件夹 /IMG中的图片,以便您可以清楚地看到布线!我在接线计划中列出了该示例中使用的电缆颜色!为了稳定地保持笔条上的>连接电缆,我们建议插头只需用一点热胶修复插头即可。因此,一段时间以来,您避免将部分电缆宽松地滑动。在图片文件夹中,您现在还可以看到我为您记录的建议组件。我们基本上是从斯图加特(Stuttgart)遵循的项目,但是有点修改
THETHINGSNETWORK --- wird aktuell überarbeitet für v.3 Stack CE我们在下一步中我们在Thethingsnetwork.org-First(除非已经有)创建帐户。然后创建一个新应用程序。除了一个清晰的名称外,在此处仅以“ TTN Handler-eu”输入TTN处理程序。
在此应用程序中,我们创建了我们的设备 - 因此几乎我们的TTN细尘传感器。为此,我们单击“注册设备”。在下一个窗口中,我们授予一个简短的独特名称,例如“ Fine Dust Sensor-01” - 我们可以自动生成设备。为此,我们单击相应字段前面的双箭头。此时不需要更多,以后您可以将位置和类似的数据存储到设备上。我们将浏览器窗口带有“设备概述”,以后需要!
软件
为了编程,我们将Microsoft Visual Studio代码与Platformio ID扩展使用。首先,安装了Visual Studio代码,然后在平台IDE搜索字段中输入并安装在“文件”和“偏好”,“扩展”下。重新启动软件后,我们的编程环境已经准备就绪。
注意:www中的许多广泛说明描述了VS代码的安装和设置非常详细
GitHub存储库
一段时间以来,我们一直使用GitHub的Cybmerman54作为基本软件。 https://github.com/cyberman54/esp32-paxcounter/Releases
重要说明:由于此存储库也已从3.2版中进行了强烈修改,因此,如我们的说明中所述,通过串行界面从细尘传感器的连接也不再起作用。因此,下载3.1版以根据TTGO PAXCOUNER板构建环境传感器!!!
下载和解开存储库,然后在VS代码中打开。
变化和调整
(1)在第一步中,Platformio_orig.ini文件是从主目录重命名或复制的,然后更名为Platformi.ini。然后在此文件中替换了第10行;halfile = generic.h 。在此文件中,第19行被替换为halfile = ttgov21new.h被删除并因此被激活(请参阅图片)
(2)在文件夹/src/hal/文件“ ttgov21new.h”中,调整了如下所示,以下代码只需插入第21行:
// BME280 sensor on I2C bus
#define HAS_BME 1 // Enable BME sensors in general
#define HAS_BME280 GPIO_NUM_21, GPIO_NUM_22 // SDA, SCL
#define BME280_ADDR 0x76 // change to 0x77 depending on your wiring
// SDS011 dust sensor settings
#define HAS_SDS011 1 // use SDS011
// used pins on the ESP-side:
#define SDS_TX 12 // connect to RX on the SDS011
#define SDS_RX 35 // connect to TX on the SDS011
只需复制上面的代码并将其插入文件中的VS代码。结果可以在图片中看到。
(3) /src/ota_sample.conf:文件被更名或复制到“ ota.conf”,在文件本身中,我们不必进行任何更改
(4) /src/loraconf_sample.h:在第38、40和42行中重命名或复制为“ loraconf.h”。为此,我们返回带有“设备概述”的浏览器窗口。为了使键进入正确的数字格式,单击相应行的<>符号,键更改其格式。我们需要每个MSB格式
演讲:编程时,您肯定会偶然发现了缩写“ MSB”和“ LSB”。您可以在这个实际的提示中找出缩写是什么。位价值:MSB&LSB简单地解释了苦涩的苦恼是确定每个位的重要性。例如,这对于串行传输很重要。
- LSB代表“最少的重点”。如果根据LSB-0位编号编号一些位序列,则索引0的位是最低状态。
- MSB代表“最重要的位”。使用MSB-0位编号,索引0的位具有最高的重要性。如果具有位置为0、1,...,n-1的二进制数,索引0的位具有最高的重要性,则其值必须乘以2(n-1)。
在各个行的末尾使用钥匙,您可以将整个部分复制到剪贴板中,返回VS代码,将三个键在相应的线上复制,一个接一个地将其复制 - 指定的示例键简单地覆盖。在这里,我也创建了一张图片供您说明。
(5)File /.pio/libdepeps USB/SDS011传感器库/sds011.cpp现在正在处理:
该代码来自Cyberman54/ESP32-PaxCounter#597(注释),并描述了“工作命令”
文本插入第35行:
static const byte WORKCMD[19] = {
0xAA, // head
0xB4, // command id
0x06, // data byte 1
0x01, // data byte 2 (set mode)
0x01, // data byte 3 (work)
0x00, // data byte 4
0x00, // data byte 5
0x00, // data byte 6
0x00, // data byte 7
0x00, // data byte 8
0x00, // data byte 9
0x00, // data byte 10
0x00, // data byte 11
0x00, // data byte 12
0x00, // data byte 13
0xFF, // data byte 14 (device id byte 1)
0xFF, // data byte 15 (device id byte 2)
0x06, // checksum
0xAB // tail
};
此外,我们必须更改113行:
void SDS011::wakeup() {
// sds_data->write(0x01);
// sds_data->flush();
for (uint8_t i = 0; i < 19; i++) {
sds_data->write(WORKCMD[i]);
}
sds_data->flush();
while (sds_data->available() > 0) {
sds_data->read();
}
}
wird aktuell überarbeitet für v.3 Stack CE解码器和转换器- 在软件更改末尾进行修订,我们仍然将通过copy&paste&paste /src/packed_converter.js->转换器从以下文件中获取此文件的内容,然后返回浏览器窗口。在TTN应用程序的属性中,我们转到“ Payoad格式”选项卡,然后在此处选择用于插入的转换器。如果窗口中的文本已经完全删除,然后将OG文件中的文本插入。
然后,我们从VS代码中的文件/src/tn/packed_decoder.js获取解码器,并像“ payoad格式” - > decoder“”字段中复制它,仍然是一个小的,手动的更改:
在第37行(PayoAD格式 - >解码器)中添加以下内容:
// combined wifi + ble + SDS011
if (bytes.length === 8) {
return decode(bytes, [uint16, uint16, uint16, uint16], ['wifi', 'ble', 'PM10', 'PM25']);
}
控制台中的一个简短测试带来了解码器工作的安全性:在现场插入16x 0以进行Payoad,将端口放在1中,然后单击“测试”,然后单击“保存Payoad功能”。
编译和上传
作为最后一步,只有VS代码中程序的汇编是必要的,然后通过USB将整个程序加载到PAX计数器上。因此,传感器通过微型USB电缆连接,并通过滑动开关激活。
在蓝条的底部,不必要的内容和代码内容和文件自动在“清洁”(符号单击垃圾箱)上清理。
然后在底部的蓝色条上使用“构建”钩子单击符号 - 可能需要片刻,但最新几分钟后应关闭。
最终,整个程序代码都发送到传感器。只需单击右箭头“上传”;该程序已转移,然后在成功完成传输后重新启动传感器。
如果单击蓝色条中的“串行监视器”连接器符号,则可以在控制台中观察传感器的活动状态,并在此处显示测量值。
对于TTN控制台中的直接功能测试,TTN网关是必不可少的,否则传感器将其数据发送到周围区域,但无处可接收和处理。
--- wird aktuell überarbeitet für v.3 Stack CE ,并并行以打开浏览器中的TTN应用程序,选择设备,然后单击右上角的“数据”字段。短时间后,还应在此处显示通过Lora Funktechnik传输到Thethingsnetwork的数据。请注意,由于将细尘埃值作为“完整选举”传输,因此TTN控制台中显示的测量值必须以10共享!!!恭喜,您的Lora精细尘埃传感器已经准备好了!!!在另外两个章节中,我们对获得的数据以及如何在Opendata卡上发布的数据进行了展望。
Outlook 1 -node -red,infuxdb和grafana,文本在这里遵循
Outlook 2 -Opendata卡,空气数据和OpenSensemap文本如下