smartcitizen_hardware_software
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
smartcitizen_hardware_software [2020/11/09 22:23] – créée Benjamin Labomedia | smartcitizen_hardware_software [2023/12/04 20:11] (Version actuelle) – [Documentation - références] Benjamin Labomedia | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== SmartCitizen kit - software ====== | ||
+ | Approche logicielle pour, par exemple, extraire des données directement depuis le kit, suivre son fonctionnement, | ||
+ | ===== Quelques opérations d' | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
- | ====== Communication série - sub ====== | + | {{ :: |
+ | ===== Envoyer les données du SmartCitizen Kit sur un broker mqtt local ===== | ||
+ | Mqtt (Message Queuing Telemetry Transport2) est un protocole de messagerie basé sur le protocole TCP/IP, Il est conçu pour les connexions avec des sites distants où la bande passante du réseau est limitée. C'est un protocole couramment utilisé pour " | ||
- | * [[https:// | + | Par défaut l' |
+ | * Voir [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | Il est aussi possible de récupérer les données en temps réel via la communication série, en bash ou en python pour ensuite envoyer des messages que broker avec un client linux ou python, voir les [[https:// | ||
+ | |||
+ | ===== Communication série - usb ===== | ||
+ | Avec une raspberry Pi avec RaspiOS 10, le kit Smartcitizen branché en usb sur la Pi : | ||
+ | |||
+ | Installer screen | ||
+ | sudo apt install screen | ||
+ | Identifier le port série | ||
+ | ls /dev/tty.* | ||
+ | Avec python | ||
+ | sudo apt install python-pip | ||
+ | python -m pip install pyserial | ||
+ | python -m serial.tools.miniterm | ||
+ | < | ||
+ | --- Available ports: | ||
+ | --- 1: / | ||
+ | --- 2: / | ||
+ | --- Enter port index or full name: / | ||
+ | --- Miniterm on / | ||
+ | --- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- | ||
+ | 20.0;61.0 | ||
+ | 20.0;61.0 | ||
+ | 20.0;61.0 | ||
+ | --- exit --- | ||
+ | </ | ||
+ | dans ce cas, le port est adéquat est / | ||
+ | |||
+ | Pour se connecter avec screen | ||
+ | screen / | ||
+ | On arrive sur le prompt du kit, taper help : | ||
+ | SCK > help | ||
+ | < | ||
+ | SCK > | ||
+ | reset: | ||
+ | version: | ||
+ | rcause: | ||
+ | outlevel: | ||
+ | help: Duhhhh!! | ||
+ | pinmux: | ||
+ | sensor: | ||
+ | read: Reads sensor [sensorName] | ||
+ | control: | ||
+ | monitor: | ||
+ | saved: | ||
+ | free: Shows the amount of free RAM memory | ||
+ | i2c: | ||
+ | charger: | ||
+ | config: | ||
+ | esp: | ||
+ | netinfo: | ||
+ | time: Shows/sets time [epoch time] [-sync] | ||
+ | state: | ||
+ | hello: | ||
+ | debug: | ||
+ | shell: | ||
+ | mqtt: Publish custom mqtt message (' | ||
+ | SCK > | ||
+ | </ | ||
+ | Pour voir la config | ||
+ | SCK > config | ||
+ | < | ||
+ | Mode: network | ||
+ | Publish interval: 60 | ||
+ | Reading interval: 60 | ||
+ | Wifi credentials: | ||
+ | Token: abcdef | ||
+ | Mac address: | ||
+ | </ | ||
+ | Pour voir les infos réseau, taper | ||
+ | SCK > netinfo | ||
+ | Changer le hotspot wifi sur lequel le kit est connecté | ||
+ | SCK > config -wifi " | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | | ||
+ | Se détacher de la session screen pour sortir du prompt SCK > | ||
+ | ctrl + a puis \ | ||
+ | Really quit and kill all your windows [y/n]y | ||
+ | |||
+ | |||
+ | |||
+ | ====== Update le firmware ====== | ||
+ | Je vois sur le git que le [commit](https:// | ||
+ | Je me met donc sur la voie du firmware flashing de mon smartcitizen kit. | ||
+ | |||
+ | < | ||
+ | ``` bash | ||
+ | git clone https:// | ||
+ | git submodule init | ||
+ | git submodule update | ||
+ | pip3 install pyserial platformio | ||
+ | python3 make.py build sam esp | ||
+ | ``` | ||
+ | </ | ||
+ | |||
+ | Double clic sur le bouton reset, la LED passe au vert. | ||
+ | < | ||
+ | ``` bash | ||
+ | python3 make.py flash sam | ||
+ | ``` | ||
+ | </ | ||
+ | |||
+ | En "red led" mode, lors du flash la led passe en blanc. | ||
+ | Pour le flash de l'ESP, il peut etre possible que cela fail. Il faut insister. | ||
+ | < | ||
+ | ``` bash | ||
+ | python3 make.py flash esp | ||
+ | ``` | ||
+ | </ | ||
+ | |||
+ | Configuration du kit via la console : | ||
+ | < | ||
+ | ``` bash | ||
+ | config -mode network -token fooMbd -wifi " | ||
+ | mqttsrv -host mqtt.mby.fr -port 1883 | ||
+ | hello | ||
+ | ``` | ||
+ | </ | ||
+ | |||
+ | Vérification que le kit publie bien sur notre serveur MQTT : | ||
+ | < | ||
+ | ``` bash | ||
+ | mosquitto_sub -h mqtt.mby.fr -v -t " | ||
+ | ``` | ||
+ | </ | ||
+ | |||
+ | {{ :: | ||
+ | |||
+ | BINGO, les données arrivent sur le serveur MQTT. Il ne reste plus qu'a ecrire un petit démon pour convertir le format smartcitizen raw au format LPP. | ||
+ | |||
+ | Exemple : | ||
+ | |||
+ | 2021-04-04T20: | ||
+ | Temperature: | ||
+ | Humidity: 47.08 % | ||
+ | Battery: 99 % | ||
+ | Light: 96 Lux | ||
+ | Noise dBA: 33.85 dBA | ||
+ | Barometric pressure: 100.85 kPa | ||
+ | VOC Gas CCS811: 112.00 ppb | ||
+ | eCO2 Gas CCS811: 1137.00 ppm | ||
+ | |||
+ | => device/ | ||
+ | |||
+ | {t: | ||
+ | |||
+ | => device/ | ||
+ | |||
+ | {t: | ||
+ | |||
+ | Attention, il manque certaines valeurs de certains capteurs de temps en temps, car la fréquence de capture et d' | ||
====== Documentation - références ====== | ====== Documentation - références ====== | ||
+ | |||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | {{tag>bj max smartcitizen arduino capteurs}} | ||
+ | |||
+ | |||
smartcitizen_hardware_software.txt · Dernière modification : 2023/12/04 20:11 de Benjamin Labomedia