TTGOPax

De Kernel Fablab Lannion
La version imprimable n’est plus prise en charge et peut comporter des erreurs de génération. Veuillez mettre à jour les signets de votre navigateur et utiliser à la place la fonction d’impression par défaut de celui-ci.
20181121 192237.jpg

Présentation

Réalisation d'un objet connecté permettant d'estimer le nombre de personnes à proximité. Pour cela, l'objet va scanner les réseaux Wifi et Bluetooth pour découvrir les périphériques présents.

Matériel

Logiciels

Device

Ici, on va simplement utiliser un logiciel libre existant : ESP32-Paxcounter

'Note' platformIO est nécessaire pour la compilation

La configuration est bien détaillée sur github. En résumé :

  • création d'une application TTN fablablannion-pax
  • y ajouter un device nommé ttgopax (générer un DEVEUI)
  • configuration des sources :
    • paxcounter.conf
// #define USE_OTA 1 // commenter cette ligne
    • lmic_config.h
#define CFG_eu868 1 // vérifier cette ligne
    • loraconf.h : remplir les lignes DEVEUI, APPEUI et APPKEY en copiant depuis la console ttn (Applications/fablablannion-pax/Devices/ttgopax)
    • ota.conf simplement copié depuis ota.sample.conf

Note: depuis la version 1.7.11, le scan BLE est désactivé par défaut. Pour l'activer :

  • sur un device programmé pour la 1ère fois, cahnger la valeur dans configmanager.cpp
cfg.blescan = 1; // 0=disabled, 1=enabled
  • sinon, le réactiver en envoyant la payload 0E 01 sur le FPort 2 downlink

Serveur

Configuration d'un decoder et converter dans l'application TTN (Applications/fablablannion-pax/Payload Formats) à partir des js fournis sur le github

Récupération des données en mqtt :

$ APP_ACCESS_KEY="ttn-account-v2.XXXXX" # Access Key dans la console ttn (Applications/fablablannion-pax)
$ mosquitto_sub -h eu.thethings.network -t '+/devices/+/up' -u 'fablablannion-pax' -P "$APP_ACCESS_KEY" -v --cafile ~/sources/LoRa/mqtt-ca.pem -p 8883
fablablannion-pax/devices/ttgopax/up {"app_id":"fablablannion-pax","dev_id":"ttgopax","hardware_serial":"003FF0004014FF87","port":1,"counter":1,"payload_raw":"AgAAAA==","payload_fields":{"ble":0,"pax":2,"wifi":2},"metadata":{"time":"2018-11-21T18:22:52.5932957Z","frequency":868.1,"modulation":"LORA","data_rate":"SF9BW125","airtime":164864000,"coding_rate":"4/5","gateways":[{"gtw_id":"eui-fcc23dfffe106153","timestamp":2065659868,"time":"2018-11-21T18:22:52.579311Z","channel":0,"rssi":-99,"snr":9,"rf_chain":1,"latitude":48.999,"longitude":-3.999,"altitude":43}]}}

On trouve les valeurs dans payload_fields :

{
  "ble":0,
  "pax":2,
  "wifi":2
}

Graphiques

TODO

  • mqqtt / NodeRed / Graphana ?
  • TTN intégrations ?