[OpenplacOS] Openplacos, driver XBee

[ Thread Index | Date Index | More lists.tuxfamily.org/openplacos Archives ]


Salut,

Suite à mes expérimentations avec les Xbee, je voudrai discuter avec vous d'un interfaçage avec opos.

Voilà mon idée est d'avoir des modules indépendants, mobiles, limités à quelques actionneurs et capteurs prédéfinis. Par exemple, une multi-prise x4, un petit boîtier sur piles température,humdité, pression atmo, co.., un module qui gère un bac d'aquarium, ph, temp..
Chaque module étant fixé dans ses fonctions, muni d'un arduino capable d'effectuer des tâches avancées (regul..).
Comme je l'explique dans le sujet sur les xbee, le mode de communication que j'utilise actuellement est assez lent pour changer d'adresse de noeud.
Voilà comment je vois le truc :
- une couche liaison : ouverture du port série, paramétrage du xbee, gestion de l'adressage
- un firmware arduino pour chaque module
- un protocole de communication sur le port série, entre le driver et le firmware de l'arduino.
J'ai fais des tests intéressants avec l'eprom des arduino : j'y ai mis un yaml décrivant le modules : ses sensors, ses actuators avec leurs méthodes.
Pour le protocole série, une commande de ping pour savoir si le noeud répond bien, une commande d'introspect qui permet d'obtenir le yaml de l'arduino, et des commandes construites à partir de ce yaml
C'est à que l'intégration avec opos se pose : je voudrai mapper le yaml avec dbus pour construire le driver automatiquement en fonction du noeud.
un exemple que j'utilise :
name: "Climat"
sensors:
  - temperature
  - humidity
  - light
actuators:
  plug:
      methods: ["on", "off", "read"]
      name: [1, 2, 3, 4]

je passe un "plug 1 on" sur le port série pour actionner la prise 1

Comme c'est là, ça ne me convient pas, il faudrait que le yaml donne une interface et que les commandes soient basées sur read/write, mais toujours en manipulant des objets "avancés".

Imaginons le bac d'aquarium. Le module xbee-arduino exposerai :
name: "Aquarium"
sensors:
  - temperature
  - ph
actuators:
  heater:
     interface: ???
  air_pump:
     interface:  ??
  ph-_pump:
     interface:  ??
  regul_ph:

     interface:  ??

la regul ph a besoin de paramètres de configuration (la valeur ph cible, les coefs PID) et de pouvoir être activée/mise en pause

Voilà je me demande comment faire pour pouvoir à partir de là, automatiquement créer des objet dbus opos compliant à partir des infos sur le noeud transmises par le yaml.
On branche un noeud, il est trouvé, introspecté, et exposé sur le bus



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/