Outils pour utilisateurs

Outils du site


smartcitizen_hardware_software

SmartCitizen kit - software

Approche logicielle pour, par exemple, extraire des données directement depuis le kit, suivre son fonctionnement, …

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.

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

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 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
--- 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 ---

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
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 > 

Pour voir la config

SCK > config
Mode: network
Publish interval: 60
Reading interval: 60
Wifi credentials: monwifi - 
Token: abcdef
Mac address:  4A:3F:DA:08:DE:50

Pour voir les infos réseau, taper

SCK > netinfo

Changer le hotspot wifi sur lequel le kit est connecté

SCK > config -wifi "NEWSSID" "NEWPASSWORD"

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

Documentation - références

smartcitizen_hardware_software.txt · Dernière modification: 2020/11/10 01:01 de Benjamin Labomedia