
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, чтобы вы снова ясно увидели проводку! Я перечислил цвета кабеля, используемые в примере для вас в плане проводки! Для стабильного удержания> подключаемого кабеля на полосе ручки мы рекомендуем, чтобы штекеры просто исправляли штекеры с небольшим горячим клеем. Так что какое -то время вы избегаете частичного кабеля довольно свободно. В папке с изображением вы теперь также можете увидеть рекомендуемую сборку, которую я задокументировал для вас. Мы в основном следили за проектом от Штутгарта, но немного модифицированы
TheThingsNetwork --- wird aktuell überarbeitet für v.3 Stack CE На следующем шаге мы подготовим нашу учетную запись по адресу theThingsNetwork.org-first (если уже не доступна) создана учетная запись. Затем создается новое приложение. В дополнение к четкому имени, здесь введен только обработчик TTN как «TTN-Handler-Eu».
В рамках этого приложения мы создаем наше устройство - так что почти наш датчик Dust TTN. Для этого мы нажимаем на «Зарегистрировать устройство». В следующем окне мы присуждаем короткое, уникальное имя, например, «тонкий датчик пыли-01»-мы можем автоматически генерировать DeviceUI. Для этого мы нажимаем на двойную стрелку перед соответствующим полем. На этом этапе не нужно больше, позже вы можете сохранить местоположение и аналогичные данные на устройство, если хотите. Мы оставляем окно браузера с «Обзор устройства», это понадобится позже!
программное обеспечение
Для программирования мы используем код Microsoft Visual Studio с расширением идентификатора Platformio. Сначала установлен код Visual Studio, затем вводится и установлен в «Файл» и «предпочтения», «расширения» в поле поиска Platformio IDE. После перезапуска программного обеспечения наша среда программирования готова.
Примечание. Многочисленные обширные инструкции в www описывают установку и настройку кода VS очень подробно
Репозиторий GitHub
В течение некоторого времени мы используем Cybmerman54 от GitHub в качестве основного программного обеспечения. 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 - полуколон удален и, таким образом, активируется (см. Picture)
(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: переименование или копирование в "loraconf.h" в строке 38, 40 и 42 Вставьте Deveui, Appeui и Appkey (как MSB). Для этого мы возвращаемся в окно браузера с «Обзор устройства». Чтобы получить ключи в правильный формат номеров, нажимается символ соответствующей строки, ключ изменяет его формат. Нам нужен формат MSB каждый
Excursus: При программировании вы, безусловно, наткнулись на сокращения «MSB» и «LSB». Вы можете выяснить, каковы сокращения в этом практическом совете. Бит Значение: MSB & LSB просто объясняет, что горький достойность - это определить важность каждого бита. Например, это важно для последовательных передач.
- LSB означает «наименее значительный бит». Если битовая последовательность пронумерована в соответствии с номером LSB-0-бита, то бит с индексом 0 является самым низким статусом.
- MSB означает «самый значительный бит». С нумерацией MSB-0-бита бит с индексом 0 имеет наибольшее значение. Если с двоичным номером с позициями 0, 1, ..., n-1, бит с индексом 0 имеет наибольшее значение, его значение должно быть умножено на 2 (N-1).
В конце соответствующей строки с ключом вы можете скопировать всю часть в буфер обмена, обратно в код VS, три клавиши копируются в соответствующих строках один за другим - указанные образцы клавиш просто перезаписываются. Здесь я тоже создал для вас картинку, чтобы проиллюстрировать.
(5) Файл/
Этот код поступает из 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 /src/packed_converter.js -> Converter и вернемся к окну браузера. В свойствах приложения TTN мы переходим на вкладку «Формат payoad» и выбираем преобразователь для вставки. Если в окне уже есть текст, он просто полностью удален, а затем вставлен текст из файла OG.
Затем мы получаем декодер из файла /src/tn/packed_decoder.js в коде VS и копируем его так же, как в поле «Формат Payoad -> Декодер» по -прежнему является небольшим, ручным изменением:
Добавьте следующее в строке 37 (Formats 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, после чего вся программа загружается на счетчик PAX через USB. Поэтому датчик подключен через кабель Micro USB и активируется с помощью скользящего переключателя.
В нижней части синей панели ненужные и кодовые содержимое и файлы автоматически очищаются в «чистом виде» (символ, щелкнутый мусором).
Затем нажмите на символ с помощью «встроенного» крючка в синей панели внизу - он может занять минуту, но должен быть закрыт через несколько минут.
В конечном счете, весь код программы отправляется на датчик. Просто нажмите на правую стрелку «Загрузить»; Программа передается, а затем датчик перезагружается, когда передача была успешно закончена.
Если вы нажмете на символ разъема «последовательный монитор» в синей панели, вы можете наблюдать в консоли, что датчик активен, а также отображаются измеренные значения.
Для прямого функционального теста в консоли TTN, шлюз TTN имеет важное значение в пределах досягаемости, в противном случае датчик отправит свои данные в окружающую среду, но нигде не будет получено и обработано.
--- wird aktuell überarbeitet für v.3 Stack CE параллельно, чтобы открыть приложение TTN в браузере, выберите устройство и нажмите на поле «Данные» в правом верхнем углу. Через короткое время данные также должны отображаться здесь, которые передаются в TheThingsNetwork через Lora Funktechnik. Обратите внимание, что поскольку значения тонкой пыли передаются как «полные выборы», измеренные значения, отображаемые в консоли TTN, должны быть разделены на 10 !!! Поздравляю, ваш датчик с тонкой пылью Lora готов !!! В двух других главах мы даем мнение о том, что можно сделать с полученными данными, и как публиковать их на картах Opendata.
Outlook 1 - Node -Red, Influxdb и Grafana Текст следует здесь
Outlook 2 - карты Opendata, данные воздуха и OpenSenseMap Текст следует здесь