Installation

Une fois les librairies téléchargées, configurons le micro controleur en s'assurant de respecter sa configuration. Nous allons nous baser sur la carte SOLO, montée avec un contrôleur ESP32 et un module LTE 4G et sa carte SIM 1nce. Ce circuit de 100 x 70 mm est alimenté avec un transformateur 12vdc ou une batterie. On y trouve 6 signaux analogique de bonne qualité, 4 contacts sur GPIO et 4 sortie relais en I2C. Un outil idéal multi fonctions adapté à la majorité des besoins.

Carte mère SOLO : SOLO-ESP32-WROOM-32D - Orkestron Smart water

ESP32-WROOM-32D seul : ESP32-WROOM-32D - Mouser.fr


Sections dans cet article

Configuration

Paramétrez votre controleur en ajoutant ces librairies à votre .ini ou selon votre IDE, télechargez les librairies ci dessous.

platformio.ini

[env:custom_table]
  monitor_speed = 115200
  platform = espressif32
  board = esp-wrover-kit
  framework = arduino
  upload_port = /dev/cu.wchusbserial51850291811
  lib_extra_dirs = ~/Documents/Arduino/libraries
  board_build.partitions = partitions_custom.csv
  lib_ldf_mode = deep+
  lib_deps = 
    pedroalbuquerque/ESP32WebServer@^1.0
    wollewald/ADS1115_WE@^1.3.0
    adafruit/Adafruit MAX31865 library@^1.3.0
    arduino-libraries/ArduinoHttpClient@^0.4.0
    adafruit/Adafruit BusIO@^1.7.2
    vshymanskyy/TinyGSM@^0.11.4
    fbiego/ESP32Time@^1.0.4
    bblanchon/ArduinoJson @ 6.19.4
    adafruit/Adafruit MCP23017 Arduino Library@^2.1.0
  platform_packages =
            
partitions_custom.csv

# Name,   Type, SubType, Offset,  Size, Flags
  nvs,      data, nvs,     0x9000,  0x4000,
  otadata,  data, ota,     0xd000,  0x2000,
  phy_init, data, phy,     0xf000,  0x1000,
  factory,  app,  factory, 0x10000,  1M,
  ota_0,    app,  ota_0,   0x110000, 1M,
  ota_1,    app,  ota_1,   0x210000, 1M,
            

Exemple

Ouvrez l'example 4G /example_esp32_4G de la branche master puis chargez le sur votre micro-controleur.

Avec la carte mère SOLO, pensez à installer l'un des 2 drivers selon le modèle M5-STACK

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