Outils pour utilisateurs

Outils du site


smartcitizen_hardware_software

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
smartcitizen_hardware_software [2020/11/09 22:23] – créée Benjamin Labomediasmartcitizen_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'installation et de (re)configurations =====
 +  * [[http://docs.smartcitizen.me/Smart%20Citizen%20Kit/#operation-modes|Operation modes]] Savoir ce que raconte la LED qui clignote
 +  * [[http://docs.smartcitizen.me/Troubleshooting/#factory-reset-your-kit|Factory reset your kit]]
 +  * [[https://developer.smartcitizen.me/|Utiliser l'API web du projet]]
 +  * [[https://docs.smartcitizen.me/Guides/getting%20started/Getting%20firmware%20information/|Getting firmware information]]
  
-====== Communication série - sub ======+{{ ::smartcitizen_48439505516_d210ce2c8a_h.jpg |}}
  
 +===== 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 "l'internet des objets", il y a des clients, serveurs (on dit broker) et des librairies pour toutes les plateformes.
  
-* [[https://docs.smartcitizen.me/Guides/Using%20the%20Shell/|Communiquer avec le shell]] en usb avec le kit+Par défaut l'adresse du serveur mqtt qui reçoit les données est celui associé au projet de kit, soit mqtt.smartcitizen.me, elle est inscrite dans le firmware, il est possible de la changer pour l'adresse de serveur mqtt que l'on aurait installé en local par exemple ou de faire une feinte dns
  
 +  * Voir [[https://forum.smartcitizen.me/t/update-firmware-to-use-mqtt-broker/1211/2|les possibilités évoquées sur le forum]] et le fait d'éditer le Firmware pour changer le serveur mqtt 
 +  * [[https://github.com/fablabbcn/smartcitizen-kit-21|Le github du sdk smartcitizen 2.1]] 
 +
 +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://docs.smartcitizen.me/Guides/Using%20the%20Shell/#advanced-but-cool-example|exemples avancés]]
 +
 +===== 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
 +<code>
 +--- Available ports:
 +---  1: /dev/ttyACM0         'ttyACM0'
 +---  2: /dev/ttyAMA0         'ttyAMA0'
 +--- Enter port index or full name: /dev/ttyACM0
 +--- Miniterm on /dev/ttyACM0  9600,8,N,1 ---
 +--- 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 ---
 +</code>
 +dans ce cas, le port est adéquat est /dev/ttyAMA0
 +
 +Pour se connecter avec screen
 +  screen /dev/ttyAMA0
 +On arrive sur le prompt du kit, taper help :
 +  SCK > help
 +<code>
 +SCK > 
 +reset:       Resets the SCK
 +version:     Shows versions and Hardware ID
 +rcause:      Show last reset cause (debug)
 +outlevel:    Shows/sets outlevel [0:silent, 1:normal, 2:verbose]
 +help:        Duhhhh!!
 +pinmux:      Shows SAMD pin mapping status
 +sensor:      Shows/sets enabled/disabled sensor [-enable or -disable sensor-name] or [-interval sensor-name interval(seconds)]
 +read:        Reads sensor [sensorName]
 +control:     Control sensor [sensorName] [command]
 +monitor:     Continously read sensor [-sd] [-notime] [-noms] [sensorName[,sensorNameN]]
 +saved:       Shows locally stored sensor readings [-details] [-publish]
 +free:        Shows the amount of free RAM memory
 +i2c:         Search the I2C bus for devices
 +charger:     Controls or shows charger configuration [-otg on/off] [-charge on/off]
 +config:      Shows/sets configuration [-defaults] [-mode sdcard/network] [-pubint seconds] [-readint seconds] [-wifi "ssid" ["pass"]] [-token token]
 +esp:         Controls or shows info from ESP [-on -off -sleep -wake -reboot -flash]
 +netinfo:     Shows network information
 +time:        Shows/sets time [epoch time] [-sync]
 +state:       Shows state flags
 +hello:       Sends MQTT hello to platform
 +debug:       Toggle debug messages [-sdcard] [-espcom] [-list]
 +shell:       Shows or sets shell mode [-on] [-off]
 +mqtt:        Publish custom mqtt message ('topic' 'message')
 +SCK > 
 +</code>
 +Pour voir la config
 +  SCK > config
 +<code>
 +Mode: network
 +Publish interval: 60
 +Reading interval: 60
 +Wifi credentials: monwifi - 
 +Token: abcdef
 +Mac address:  4A:3F:DA:08:DE:50
 +</code>
 +Pour voir les infos réseau, taper 
 +  SCK > netinfo
 +Changer le hotspot wifi sur lequel le kit est connecté
 +  SCK > config -wifi "NEWSSID" "NEWPASSWORD"
 +
 +[[https://docs.smartcitizen.me/Guides/getting%20started/Using%20the%20Shell/#some-examples|D'autres exemples]] sur la page de la documentation
 +
 +  
 +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://github.com/fablabbcn/smartcitizen-kit-21/commit/6175bbd36a58396ddd0e23f6d506b8e68ee52d1d#diff-a4aa37ea2506e59b71a026f1398add2782975f525043325e664462eb559e7ae3) : permet de configurer les broker MQTT via la console.
 +Je me met donc sur la voie du firmware flashing de mon smartcitizen kit.
 +
 +<markdown>
 +``` bash
 +git clone https://github.com/fablabbcn/smartcitizen-kit-21.git
 +git submodule init
 +git submodule update
 +pip3 install pyserial platformio
 +python3 make.py build sam esp
 +```
 +</markdown>
 +
 +Double clic sur le bouton reset, la LED passe au vert.
 +<markdown>
 +``` bash
 +python3 make.py flash sam
 +```
 +</markdown>
 +
 +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.
 +<markdown>
 +``` bash
 +python3 make.py flash esp
 +```
 +</markdown>
 +
 +Configuration du kit via la console :
 +<markdown>
 +``` bash
 +config -mode network -token fooMbd -wifi "SSID" "PASSWORD"
 +mqttsrv -host mqtt.mby.fr -port 1883
 +hello
 +```
 +</markdown>
 +
 +Vérification que le kit publie bien sur notre serveur MQTT :
 +<markdown>
 +``` bash
 +mosquitto_sub -h mqtt.mby.fr -v -t "device/sck/foombd/#"
 +```
 +</markdown>
 +
 +{{ ::screenshot_from_2021-04-04_22-23-15.png?nolink&1024 |}}
 +
 +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:26:14Z
 +Temperature: 20.78 C
 +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/sck/foombd/readings/raw 
 +
 +{t:2021-04-04T20:25:14Z,10:99,14:97,55:20.77,56:47.03,53:51.17,58:100.86,113:101.00,112:1068.00,89:6,87:6,88:6}
 +
 +=> device/sck/foombd/readings/raw 
 +
 +{t:2021-04-04T20:26:14Z,10:99,14:96,55:20.80,56:47.14,53:33.85,58:100.85,113:112.00,112:1137.00}
 +
 +Attention, il manque certaines valeurs de certains capteurs de temps en temps, car la fréquence de capture et d'envoi des données n'est pas la même.
  
 ====== Documentation - références ====== ====== Documentation - références ======
 +
 +  * [[http://docs.smartcitizen.me/|Base de la documentation]]
 +  * [[https://docs.smartcitizen.me/Guides/getting%20started/Using%20the%20Shell/|Communiquer avec le shell]] en usb avec le kit
 +
 +
 +
 +
 +{{tag>bj max smartcitizen arduino capteurs}}
 +
 +
  
smartcitizen_hardware_software.txt · Dernière modification : 2023/12/04 20:11 de Benjamin Labomedia