
미세한 먼지 센서 및 BME280이있는 TTGO PAXCOUNTER
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 핸들러 만 여기에 "TTN Handler-EU"로 입력됩니다.
이 애플리케이션 내에서 우리는 장치를 생성하므로 거의 TTN Fine Dust Sensor를 만듭니다. 이렇게하려면 "등록 장치"를 클릭합니다. 다음 창에서 우리는 짧고 독특한 이름 (예 : "Fine Dust Sensor-01"을 수여합니다. 이렇게하려면 해당 필드 앞의 이중 화살표를 클릭합니다. 이 시점에서 더 많은 것이 필요하지 않으며 나중에 원하는 경우 위치와 유사한 데이터를 장치에 저장할 수 있습니다. 브라우저 창을 "장치 개요"로 남겨두면 나중에 필요합니다!
소프트웨어
프로그래밍을 위해 Platformio ID 확장과 함께 Microsoft Visual Studio 코드를 사용합니다. 먼저, Visual Studio Code가 설치 된 다음 플랫폼 IDE 검색 필드에 "파일"및 "환경 설정", "Extensions"아래에 입력 및 설치됩니다. 소프트웨어를 다시 시작한 후 프로그래밍 환경이 준비되었습니다.
참고 : 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 형식이 필요합니다
Excursus : 프로그래밍 할 때는 약어 "MSB"및 "LSB"를 확실히 우연히 발견했습니다. 이 실용적인 팁에서 약어가 무엇인지 알 수 있습니다. 비트 값 : MSB & LSB는 단순히 각 비트의 중요성을 결정하는 것입니다. 예를 들어, 이것은 직렬 전송에 중요합니다.
- LSB는 "가장 중요한 비트"를 나타냅니다. 비트 시퀀스가 LSB-0 비트 수에 따라 번호가 매겨지면 인덱스 0이있는 비트가 가장 낮은 상태입니다.
- MSB는 "가장 중요한 비트"를 나타냅니다. MSB-0 비트 번호를 사용하면 인덱스 0이있는 비트가 가장 중요합니다. 위치가 0, 1, ..., n-1 인 이진수 인 인덱스 0을 가진 비트가 가장 중요합니다. 그 값에 2 (n-1)을 곱해야합니다.
키가 포함 된 각 라인의 끝에서 전체 부분을 클립 보드에 복사 할 수 있습니다. VS 코드에서 세 가지 키는 다른 줄에 해당 라인에 복사됩니다. 지정된 샘플 키는 간단하게 덮어 씁니다. 여기에서도 당신이 설명 할 사진을 만들었습니다.
(5) 파일 /.pio/libdepepsusb/sds011 센서 라이브러리/sds011.cpp 파일이 처리 중입니다.
이 코드는 Cyberman54/ESP32-PaxCounter#597 (댓글)에서 나와 "Work Command"를 설명합니다.
텍스트는 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 , 복사 및 붙여 넣기 /src/packed_converter.js-> 변환을 통해 다음 파일의 내용을 여전히 가져 와서 브라우저 창으로 돌아갑니다. TTN 응용 프로그램의 속성에서 "Payoad 형식"탭으로 이동하여 삽입 할 변환기를 선택합니다. 창에 이미 텍스트가있는 경우 단순히 완전히 삭제 된 다음 OG 파일의 텍스트가 삽입됩니다.
그런 다음 VS 코드의 /src/tn/packed_decoder.js 파일에서 디코더를 가져 와서 "Payoad Format-> Decoder"필드에서와 같이 복사합니다. 필드는 여전히 작고 수동 변경입니다.
37 행에 다음을 추가하십시오 (Payoad 형식 -> 디코더) :
// combined wifi + ble + SDS011
if (bytes.length === 8) {
return decode(bytes, [uint16, uint16, uint16, uint16], ['wifi', 'ble', 'PM10', 'PM25']);
}
콘솔의 짧은 테스트는 디코더가 작동한다는 보안을 가져옵니다. 페이로드를 위해 필드에 16x 0을 삽입하고 포트를 1 on 1에 넣고 "테스트"를 클릭 한 다음 "Payoad 기능 저장"을 클릭하십시오.
컴파일 및 업로드
마지막 단계로, VS 코드에서 프로그램의 편집 만 필요하며, 그 후 전체 프로그램은 USB를 통해 PAX 카운터에로드됩니다. 따라서 센서는 마이크로 USB 케이블을 통해 연결되어 슬라이딩 스위치로 활성화됩니다.
파란색 막대의 바닥에서 불필요한 및 코드 내용 및 파일은 "Clean"(심볼 클릭 가비지 빈)에서 자동으로 정리됩니다.
그런 다음 하단의 파란색 막대에 "내장 된"후크가있는 기호를 클릭하십시오. 잠시 시간이 걸릴 수 있지만 최근 몇 분 후에 닫아야합니다.
궁극적으로 전체 프로그램 코드가 센서로 전송됩니다. 오른쪽 화살표 "업로드"를 클릭하십시오. 전송이 성공적으로 완료되면 프로그램이 전송 된 다음 센서가 다시 시작됩니다.
파란색 막대에서 "직렬 모니터"커넥터 기호를 클릭하면 센서가 활성화되어 있고 측정 된 값도 표시되는 내용을 콘솔에서 관찰 할 수 있습니다.
TTN 콘솔의 직접 기능 테스트의 경우 TTN 게이트웨이가 도달 범위 내에서 필수적입니다. 그렇지 않으면 센서가 데이터를 주변 영역으로 보내지 만 수신 및 처리 할 곳은 없습니다.
--- wird aktuell überarbeitet für v.3 Stack CE . 장치를 선택하고 오른쪽 상단의 "데이터"필드를 클릭하십시오. 짧은 시간 후에 Lora Funktechnik을 통해 Thethingsnetwork에 전송되는 데이터도 표시해야합니다. 미세한 먼지 값은 "전체 선거"로 전송되므로 TTN 콘솔에 표시된 측정 된 값은 10 만 공유해야합니다 !!! 축하합니다. Lora Fine Dust Sensor가 준비되었습니다 !!! 다른 두 장에서는 얻은 데이터로 수행 할 수있는 작업과 OpenData 카드에 게시하는 방법에 대한 전망을 제공합니다.
Outlook 1- 노드 -red, influxdb 및 grafana 텍스트가 여기에서 따릅니다.
Outlook 2- Opendata 카드, 에어 데이터 및 OpenSenSemap 텍스트가 여기에서 따릅니다.