
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文本如下