Outils pour utilisateurs

Outils du site


smartcitizen

Ceci est une ancienne révision du document !


Smartcitizen

Le Smart Citizen Kit est né de la collaboration entre les « Fab Labs » de Barcelone et l'Institut d'Architecture Avancée de Catalogne, tous deux experts de l'impact des nouvelles technologies sur l'habitat humain. Ce kit open source (librement reproductible) est capable de capter et d’analyser différentes données environnementales en temps réel : température, ensoleillement, humidité, CO2, NO2, décibel…

Le module électronique peut envoyer ses données environnementale sur la plateforme web proposée, il peut aussi marcher “off line” en écrivant les données sur une carte SD, ou se connecter à d'autres services en ligne commerciaux ou artisanaux, ou encore faire l'objet du développement d'une application Android avec Kivy pour visualiser les données.

Kit de mesure SmartCitizen - approches hardware et software

Application SmartCitizen Android avec Kivy

Ressources

apk

smartcitizen.apk du 16/02/2020

Les choses non réussies

  • Créer les box du menu déroulant dans le main.py alors que ça marche dans TapOSC mais sans menu déroulant.
  • Un simple label transparent au dessus d'un widget

Les difficultés rencontrées

L'accès à des variables d'une class depuis une autre

Exemple: la class A peut accéder à la variable self.toto de la class B,
mais pas l'inverse ! la class B ne peut pas accéder à la variable self.truc de la class A.

Solution: Un Clock dans A actualise la valeur de B.

Création du graph dans le kv

Widgets Kivy utilisés

  • ScreenManager: Plusieurs écrans Screen manager. Dans cette application le Screen manager est créé dans le kv

Une barre de menu

  • ActionBar:
  • ActionView:
  • ActionPrevious:
  • ActionOverflow:
  • ActionButton:
  • ActionGroup:

Widgets classiques

Widgets classiques pour interface utilisateur

  • BoxLayout:
  • GridLayout:
  • Button:
  • Label:

Une image en background

  • ScrollView: Défilement de la liste des capteurs, voir le kv. Avec une répétition de 16 Box peu élégantes, mais qui marche !

Affichage d'info

  • Popup:

Une belle courbe

buildozer.spec

[app]
title = Smart Citizen
package.name = smartcitizen
package.domain = org.test
source.dir = .
source.include_exts = py,png,jpg,kv,atlas
source.exclude_dirs = old, bin, recherche, garden_graph_example
source.include_patterns = images/*.jpg,images/*.png
version.regex = __version__ = ['"](.*)['"]
version.filename = %(source.dir)s/main.py
requirements = python3,kivy,requests,kivy_garden.graph
garden_requirements = graph
orientation = all
fullscreen = 1
android.permissions = INTERNET
android.arch = armeabi-v7a
[buildozer]
log_level = 2
warn_on_root = 1

Thread in Kivy

Pour stopper un thread à la fermeture de la fenêtre, le définir comme Salsa du démon

        thread_update = threading.Thread(target=self.update)
        thread_update.setDaemon(True)
        thread_update.start()
smartcitizen.1604960421.txt.gz · Dernière modification : 2020/11/09 22:20 de Benjamin Labomedia