
Ttgo paxcounter con sensor de polvo fino y BME280
wird aktuell überarbeitet für v.3 Stack CEwird aktuell überarbeitet für v.3 Stack CEHardware:
Componentes opcionales, dependiendo de la solicitud de ubicación y vivienda:
Ensamblaje / cableado
Las tiras de lápiz están soldadas en la placa Paxcounter y en el sensor BME, dependiendo de la posición de instalación o la ubicación de instalación, la tira de la pluma en la parte superior o la parte inferior de la placa está disponible. La antena del tornillo está instalada: aquí también puede instalar un cable prolongado dependiendo de la estructura del sensor. Luego, los dos sensores están conectados al paxcounter de la siguiente manera:
El sensor ambiental está conectado de la siguiente manera:
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
El sensor de polvo fino está conectado de la siguiente manera:
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
¡Eche un vistazo a las fotos en la carpeta /IMG, para que pueda ver claramente el cableado nuevamente! ¡He enumerado los colores del cable utilizados en el ejemplo para usted en el plan de cableado! Para una retención estable del cable de conexión> en la tira de la pluma, recomendamos que los enchufes simplemente corrigan los enchufes con un poco de pegamento caliente. Entonces, por un tiempo evita deslizar el cable parcial con bastante libreta. En la carpeta de imágenes ahora también puede ver el ensamblaje recomendado que he documentado para usted. Básicamente seguimos el proyecto de Stuttgart, pero un poco modificado
THETHINGNETWORK --- wird aktuell überarbeitet für v.3 Stack CE En el siguiente paso, preparamos nuestra cuenta en thethingsnetwork.org-First (a menos que ya esté disponible) se crea una cuenta. Luego se crea una nueva aplicación. Además de un nombre claro, solo el controlador TTN se ingresa aquí como "TTN-Handler-EU".
Dentro de esta aplicación creamos nuestro dispositivo, así que casi nuestro sensor de polvo fino TTN. Para hacer esto, hacemos clic en "Dispositivo de registro". En la siguiente ventana, otorgamos un nombre corto y único, por ejemplo "Fine Dust Sensor-01". Podemos generar automáticamente el dispositivo. Para hacer esto, hacemos clic en la flecha doble frente al campo correspondiente. No se necesita más en este punto, más tarde puede almacenar la ubicación y datos similares al dispositivo si lo desea. Dejamos la ventana del navegador con "descripción general del dispositivo", ¡será necesaria más adelante!
software
Para la programación utilizamos el código Microsoft Visual Studio con la expansión de ID de Platformio. Primero, el código de Visual Studio se instala, luego se ingresa e instala en "Archivo" y "Preferencias", "Extensiones" en el campo de búsqueda de Platformio IDE. Después de reiniciar el software, nuestro entorno de programación está listo.
Nota: numerosas instrucciones extensas en el www describen la instalación y la configuración del código VS muy detallado
Repositorio de Github
Hemos estado utilizando el CybMerman54 de GitHub como software básico durante algún tiempo. https://github.com/cyberman54/esp32-paxcounter/releases
Nota importante: Dado que este repositorio también se ha revisado fuertemente de la versión 3.2, la conexión del sensor de polvo fino a través de la interfaz en serie, como se describe en nuestras instrucciones, ya no parece funcionar. ¡Descargue la versión 3.1 para construir el sensor ambiental basado en el tablero TTGO Paxcouner!
El repositorio se descarga y desempaqueta, luego se abre en el código VS.
Cambios y ajustes
(1) En el primer paso, el archivo Platformio_orig.ini se renombra o se copia del directorio principal y luego se renombra Platformi.ini. Entonces la línea 10 se reemplaza en este archivo ;halfile = generic.h . En este archivo también, la línea 19 se reemplaza a halfile = ttgov21new.h - el semicolon eliminado y, por lo tanto, se activa (ver imagen)
(2) En la carpeta/src/hal/el archivo "ttgov21new.h" se ajusta de la siguiente manera, el siguiente código simplemente se inserta en la línea 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
Simplemente copie el código anterior e insértelo en el código VS en el archivo. El resultado se puede ver en la imagen.
(3) /src/ota_sample.conf: el archivo cambia o copia a "OTA.Conf", en el archivo en sí no tenemos que hacer ningún cambio
(4) /src/Loraconf_Sample.h: renombrar o copiar en "loraconf.h" en la línea 38, 40 y 42 inserte el Deveui, Appeui y AppKey (como MSB). Para hacer esto, volvemos a la ventana del navegador con "Descripción general del dispositivo". Para poner las teclas en el formato de número correcto, se hace clic en el símbolo <> de la línea respectiva, la clave cambia su formato. Necesitamos el formato MSB cada uno
Excursus: al programar, ciertamente ha tropezado con las abreviaturas "MSB" y "LSB". Puede averiguar cuáles son las abreviaturas en este consejo práctico. Valor de bits: MSB y LSB simplemente explica que el amargo es determinar la importancia de cada bits. Por ejemplo, esto es importante para las transmisiones en serie.
- LSB representa "bit menos significativo". Si una secuencia de bits está numerada de acuerdo con el número de LSB-0-bit, entonces el bit con el índice 0 es el estado más bajo.
- MSB significa "bit más significativo". Con la numeración de MSB-0-bit, el bit con el índice 0 tiene la mayor importancia. Si con un número binario con las posiciones 0, 1, ..., N-1 El bit con el índice 0 tiene la mayor importancia, su valor debe multiplicarse por 2 (N-1).
Al final de la línea respectiva con la clave, puede copiar toda la parte en el portapapeles, en el código VS, las tres teclas se copian en las líneas correspondientes una tras otra: las teclas de muestra especificadas simplemente se sobrescriben. Aquí, también, creé una imagen para que lo ilustrara.
(5) El archivo /.pio/libDepepsusb/SDS011 Sensor Library/SDS011.cpp ahora se está procesando:
Este código proviene de Cyberman54/ESP32-PAXCOUNTER#597 (comentario) y describe el "comando de trabajo"
El texto se inserta en la línea 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
};
Además, tenemos que cambiar la línea 113 en:
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();
}
}
Decoder and Converter --- wird aktuell überarbeitet für v.3 Stack CE al final de los cambios de software, aún obtendremos el contenido de este archivo de lo siguiente a través de Copy & Paste /src/packed_converter.js -> convertidor y volveremos a la ventana del navegador. En las propiedades de la aplicación TTN, vamos a la pestaña "Formato de payoad" y seleccionamos el convertidor allí para insertar. Si ya hay texto en la ventana, simplemente se elimina por completo y luego el texto del archivo OG se inserta allí.
Luego obtenemos el decodificador del archivo /src/tn/packed_decoder.js en el código VS y lo copian al igual que en el campo "Formato de Payoad -> Decoder" sigue siendo un pequeño cambio manual:
Agregue el siguiente en la línea 37 (formatos de payoad -> decodificador):
// combined wifi + ble + SDS011
if (bytes.length === 8) {
return decode(bytes, [uint16, uint16, uint16, uint16], ['wifi', 'ble', 'PM10', 'PM25']);
}
Una prueba breve en la consola trae seguridad que funciona el decodificador: inserte 16x 0 en el campo para Payoad, coloque el puerto en 1 y haga clic en "Prueba" y luego haga clic en "Guardar la función de Payoad".
Compilar y subir
Como último paso, solo es necesaria la compilación del programa en el código VS, después de lo cual todo el programa se carga en el contador PAX a través de USB. Por lo tanto, el sensor se conecta a través de un cable micro USB y se activa con el interruptor deslizante.
En la parte inferior de la barra azul, el contenido y los archivos innecesarios y de código se limpian automáticamente en "limpio" (contenedor de basura en el símbolo).
Luego haga clic en el símbolo con el gancho "construido" en la barra azul en la parte inferior; puede tomar un momento, pero debe cerrarse después de unos minutos a más tardar.
En última instancia, todo el código del programa se envía al sensor. Simplemente haga clic en la flecha derecha "Cargar"; El programa se transfiere y luego el sensor se reinicia cuando la transmisión se ha terminado con éxito.
Si hace clic en el símbolo del conector del "monitor serial" en la barra azul, puede observar en una consola lo que el sensor está activo y los valores medidos también se muestran allí.
Para una prueba de función directa en la consola TTN, una puerta de enlace TTN es esencial dentro del alcance, de lo contrario, el sensor enviará sus datos al área circundante, pero no se recibe y procesará en ninguna parte.
--- wird aktuell überarbeitet für v.3 Stack CE en paralelo para abrir la aplicación TTN en el navegador, seleccione el dispositivo y haga clic en el campo "Datos" en la parte superior derecha. Después de un corto tiempo, los datos también deben mostrarse aquí que se transmitan a la red de la red a través de Lora Funktechnik. Nota, dado que los valores de polvo fino se transmiten como "elección completa", ¡los valores medidos que se muestran en la consola TTN deben compartirse por 10! ¡Felicitaciones, su sensor de polvo fino de Lora está listo! En otros dos capítulos damos una perspectiva de lo que se puede hacer con los datos obtenidos y cómo publicarlos en las tarjetas Opendata.
Outlook 1 - nodo -red, influxdb y grafana El texto sigue aquí
Outlook 2 - Tarjetas OpenData, datos aéreos y OpenSenSempap El texto sigue aquí