Installation

Quelque soit votre matériel raspberry ou opos6ul ou tout autre base Linux, vous devrez vérifier les ports réseaux avant de compiler vers votre matériel. La partie menu-config est hors du champs d'application de cette documentation. C'est donc sur la base de la carte mère MAESTRO et l'OpoS6ul que nous exploitons quotidiennement, que explorerons les confins des possibilité de cette architecture très complète, capable de gérer des ensembles. Nous verrons aussi qu'il est possible de mettre ces systèmes en réseau au travers d'un bus commun pour créer un super système capable de gérer un immeuble entier, un hotel, des chambres...

Carte mère avec OpoS6UL (Carte Mère MAESTRO - Orkestron smart water)

Soc OpoS6UL seul(Soc OPOS6UL - Armadeus System)


Sections dans cet article

Configuration

Paramétrez votre micro processeur en ajoutant à votre kernel, les configurations necessaires pour exploiter UDP/TCP, WIFI, ETHERNET, MODULES GSM

Configuration Maestro

Vous pouvez aussi exploiter un kernel adapté et l'arbre opos6ull

Arbre micro-processeur

kernel

Termninal série

Démarrer le boot du module, et sur l interface série arrêter le boot en pressant une touche pendant le décompte des cinq premières secondes.
On arrive alors sur l IHM de U-boot.
- Saisir "dhcp" et vérifier qu'une adresse IP soit bien affectée.
- Saisir env set serverip 192.168.0.37 étant lcadresse IP de votre serveur TFTP
- Saisir run update_kernel
- Saisir run update_rootfs (logiciel que vous allez développer, compilé avec votre make_release personnalisé)
- Saisir run update_dtb   
            

Exemple

Ouvrez l'exemple master /example_master_com de la branche master puis chargez le sur votre IDE

Ouvrez un compte sur Postman pour lancer des commandes API socket et actionner vos relais.

... Créer un fichier index.html avec la librairie socket.io et ouvrez la console sur votre navigateur pour voir les pushs de votre controleur. faites varier les valeurs de vos capteurs et les status de vos actionneurs, pour voir la mise à jour coté client


<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>
<script>
  var socket = io("wss://now.swimo.io");

  socket.emit("authenticate", {
    appid: "s4LzdBdDJFNFh2VXNlZ2w0MGl6UT09"
  });

  socket.on("data", function(d) {
    console.log(d);
  });
  
  socket.on("authentication", function(d) {
    console.log(d);
  });

  socket.on('disconnect', (reason) => {
    console.log('disconnect...');
    console.log(reason);
  });
  </script>
            

Si vous avez besoin d'un support technique, n'hésitez pas nous contacter ou ouvrir un post sur le forum pour partager votre expérience.


Limites

la structure d'encodage/decodage est spécifique et vous devez respecter les limites des valeurs des floats de 13 bits pour la partie entière et 10 bits pour les décimales.



  #ifndef ENCODE_H_   /* Include guard */
  #define ENCODE_H_

  #include 

  #define INTEGER_PART_BIT_NUMBER 13
  #define FLOAT_PART_BIT_NUMBER 10
  #define FLOAT_TOTAL_BIT_NUMBER INTEGER_PART_BIT_NUMBER + FLOAT_PART_BIT_NUMBER
  #define TYPE_BIT_NUMBER 4
  #define SENSOR_NUMBER_BIT_NUMBER 5 
  #define SENSOR_TYPE_BIT_NUMBER 6 
  #define RAW_TYPE_BIT_NUMBER 15 
  #define ACTION_NUMBER_BIT_NUMBER 5 
  #define TIME_BIT_NUMBER 11 
  #define DAYS_BIT_NUMBER 7 
  #define ACTION_MODE_BIT_NUMBER 2 
  #define ACTION_SEQUENCE_LABEL_BIT_NUMBER 3
  #define ACTION_SEQUENCE_CODE_BIT_NUMBER 3
  #define ACTION_SPEED_BIT_NUMBER 12
  #define BOOL_BIT_NUMBER 1
  #define ACTION_TYPE_BIT_NUMBER 6
  #define ACTION_SECURITY_BIT_NUMBER 2
  #define ERROR_BIT_NUMBER 4 
  #define REQUEST_ID_SIZE 3
  #define DAILY_BIT_NUMBER 18 
            

Suivant