
Ttgo paxcounter avec capteur à poussière fin et BME280
wird aktuell überarbeitet für v.3 Stack CEwird aktuell überarbeitet für v.3 Stack CEMatériel:
Composants facultatifs, selon l'emplacement et la demande de logement:
Assemblage / câblage
Les bandes de stylo sont soudées sur la carte Paxcounter et sur le capteur BME, selon la position d'installation ou l'emplacement d'installation, la bande de stylo en haut ou la face de la carte est disponible. L'antenne à vis est installée - ici également, vous pouvez installer un câble prolongé en fonction de la structure du capteur. Ensuite, les deux capteurs sont connectés au Paxcounter comme suit:
Le capteur environnemental est câblé comme suit:
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
Le capteur de poussière fin est câblé comme suit:
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
Veuillez jeter un œil aux photos dans le dossier / IMG, afin que vous puissiez revoir le câblage! J'ai répertorié les couleurs du câble utilisées dans l'exemple pour vous dans le plan de câblage! Pour une prise stable du câble de connexion> sur la bande de stylo, nous recommandons que les bouchons fixent simplement les bouchons avec une petite colle chaude. Donc, pendant un certain temps, vous évitez de glisser le câble partiel assez librement. Dans le dossier d'image, vous pouvez maintenant également voir l'assemblage recommandé que j'ai documenté pour vous. Nous avons essentiellement suivi le projet de Stuttgart, mais un peu modifié
ThethingsNetwork --- wird aktuell überarbeitet für v.3 Stack CE à l'étape suivante, nous préparons notre compte sur thethingsNetwork.org-First (sauf si déjà disponible) Un compte est créé. Une nouvelle application est ensuite créée. En plus d'un nom clair, seul le gestionnaire TTN est entré ici sous le nom de "TTN-Handler-UE".
Dans cette application, nous créons notre appareil - donc presque notre capteur de poussière fine TTN. Pour ce faire, nous cliquons sur "Enregistrer le périphérique". Dans la fenêtre suivante, nous attribuons un nom court et unique, par exemple "Fine Dust Sensor-01" - nous pouvons générer automatiquement le deviceUI. Pour ce faire, nous cliquons sur la double flèche devant le champ correspondant. Plus n'est pas nécessaire à ce stade, plus tard, vous pouvez stocker l'emplacement et des données similaires à l'appareil si vous le souhaitez. Nous quittons la fenêtre du navigateur avec "Aperçu de l'appareil", il sera nécessaire plus tard!
logiciel
Pour la programmation, nous utilisons le code Microsoft Visual Studio avec l'expansion de l'ID Plateformeo. Tout d'abord, le code Visual Studio est installé, puis entré et installé sous "Fichier" et "Préférences", "Extensions" dans le champ de recherche PlatformIo IDE. Après avoir redémarré le logiciel, notre environnement de programmation est prêt.
Remarque: de nombreuses instructions approfondies sur le www décrivent l'installation et la configuration du code vs très détaillé
Référentiel GitHub
Nous utilisons le CybMerman54 de GitHub comme logiciel de base depuis un certain temps. https://github.com/cyberman54/esp32-paxcounter/releases
Remarque importante: Étant donné que ce dépôt a également été fortement révisé à partir de la version 3.2, la connexion à partir du capteur de poussière fine via l'interface série, comme décrit dans nos instructions, ne semble plus fonctionner. Téléchargez donc la version 3.1 pour créer le capteur environnemental basé sur la carte TTGO PAXCOUNER !!!
Le référentiel est téléchargé et déballé, puis ouvert dans le code VS.
Modifications et ajustements
(1) Dans la première étape, le fichier Platformo_orig.ini est renommé ou copié à partir du répertoire principal puis renommé PlatformI.ini. Ensuite, la ligne 10 est remplacée dans ce fichier ;halfile = generic.h . Dans ce fichier également, la ligne 19 est remplacée en halfile = ttgov21new.h - le point-virgule supprimé et donc activé (voir image)
(2) Dans le dossier / src / hal / le fichier "ttgov21new.h" est ajusté comme suit, le code suivant est simplement inséré dans la ligne 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
Copiez simplement le code ci-dessus et insérez-le dans le code VS dans le fichier. Le résultat peut être vu sur l'image.
(3) /src/ota_sample.conf: le fichier est renommé ou copié sur "OTA.conf", dans le fichier lui-même, nous n'avons pas à apporter de modifications
(4) /src/loraconf_sample.h: renommer ou copier dans "Loraconf.h" dans la ligne 38, 40 et 42 Insérez les Deveui, Appeui et Appkey (en tant que MSB). Pour ce faire, nous revenons à la fenêtre du navigateur avec "Présentation de l'appareil". Afin de mettre les touches dans le format de numéro correct, le <> symbole de la ligne respective est cliqué, la clé modifie son format. Nous avons besoin du format MSB chacun
Excursus: Lors de la programmation, vous êtes certainement tombé dans les abréviations "MSB" et "LSB". Vous pouvez découvrir quelles sont les abréviations dans cette astuce pratique. Valeur bit: MSB & LSB explique simplement que Bitterworthy est de déterminer l'importance de chaque bits. Par exemple, cela est important pour les transmissions en série.
- LSB signifie "Bit le moins significatif". Si une séquence de bit est numérotée en fonction du numéro LSB-0 bits, le bit avec l'index 0 est le statut le plus bas.
- MSB signifie "bit le plus important". Avec la numérotation MSB-0 bits, le bit avec l'index 0 a la plus grande importance. Si avec un nombre binaire avec des positions 0, 1, ..., n-1 le bit avec l'index 0 a la plus grande importance, sa valeur doit être multipliée par 2 (n-1).
À la fin de la ligne respective avec la clé, vous pouvez copier toute la partie dans le presse-papiers, de retour dans le code VS, les trois touches sont copiées dans les lignes correspondantes l'une après l'autre - les clés d'échantillons spécifiées sont simplement écrasées. Ici aussi, j'ai créé une image à illustrer.
(5) Le fichier /.pio/libdepepsusb/sds011 Sensor Library / sds011.cpp est actuellement en cours de traitement:
Ce code vient de Cyberman54 / ESP32-Paxcounter # 597 (commentaire) et décrit la "commande de travail"
Le texte est inséré dans la ligne 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
};
De plus, nous devons modifier la ligne 113 dans:
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 à la fin des modifications du logiciel, nous obtiendrons toujours le contenu de ce fichier à partir de la convertisseur Copy & Coller /src/packed_converter.js -> Convertisseur et revenez à la fenêtre du navigateur. Dans les propriétés de l'application TTN, nous allons à l'onglet "Format Payoad" et sélectionnons le convertisseur pour l'insertion. S'il y a déjà du texte dans la fenêtre, il est tout simplement complètement supprimé, puis le texte du fichier OG y est inséré.
Ensuite, nous obtenons le décodeur du fichier /src/tn/packed_decoder.js dans le code vs et le copiez comme dans le champ "Payoad -> Decoder" est toujours un petit changement manuel:
Ajoutez ce qui suit à la ligne 37 (formats Payoad -> Decoder):
// combined wifi + ble + SDS011
if (bytes.length === 8) {
return decode(bytes, [uint16, uint16, uint16, uint16], ['wifi', 'ble', 'PM10', 'PM25']);
}
Un court test dans la console apporte une sécurité que le décodeur fonctionne: insérer 16x 0 dans le champ pour Payoad, mettre le port sur 1 et cliquer sur "Tester", puis cliquez sur "Enregistrer la fonction Payoad".
Compiler et télécharger
Dans une dernière étape, seule la compilation du programme dans le code VS est nécessaire, après quoi l'ensemble du programme est chargé sur le compteur PAX via USB. Le capteur est donc connecté via un câble micro USB et activé avec l'interrupteur coulissant.
En bas de la barre bleue, le contenu et les fichiers inutiles et de code sont automatiquement nettoyés sur "Clean" (symbole cliqué sur les ordures).
Cliquez ensuite sur le symbole avec le crochet "construit" dans la barre bleue en bas - cela peut prendre un moment, mais doit être fermé après quelques minutes au plus tard.
En fin de compte, l'ensemble du code du programme est envoyé au capteur. Cliquez simplement sur la flèche droite "Télécharger"; Le programme est transféré, puis le capteur a redémarré lorsque la transmission a été terminée avec succès.
Si vous cliquez sur le symbole du connecteur "Moniteur série" dans la barre bleue, vous pouvez observer dans une console ce que le capteur est actif et les valeurs mesurées s'y sont également affichées.
Pour un test de fonction directe dans la console TTN, une passerelle TTN est essentielle à portée de main, sinon le capteur enverra ses données dans la zone environnante, mais ne sont nulle part à recevoir et à traiter.
--- wird aktuell überarbeitet für v.3 Stack CE en parallèle pour ouvrir l'application TTN dans le navigateur, sélectionnez l'appareil et cliquez sur le champ "Data" en haut à droite. Après un court laps de temps, les données doivent également être affichées ici qui sont transmises à TheThingsNetwork via Lora Funktechnik. Remarque, puisque les valeurs de poussière fine sont transmises sous forme de "élection complète", les valeurs mesurées affichées dans la console TTN doivent être partagées par 10 !!! Félicitations, votre capteur Lora Fine Dust est prêt !!! Dans deux autres chapitres, nous donnons une perspective sur ce qui peut être fait avec les données obtenues et comment la publier sur les cartes OpenData.
Outlook 1 - Node -Rred, affluxdb et Grafana Le texte suit ici
Outlook 2 - Cartes OpenData, données aériennes et OpenSenSenSemap Le texte suit ici