dimanche 14 février 2021

LTE Shield Arduino - SIM7000E

Je travaille actuellement sur un projet IoT avec une connexion internet via le réseau GSM. Notre produit est programmable par une interface Web et synchronisé par le réseau mobile. 


Le réseau GSM est parfait pour les échanges avec notre IoT. En effet, nous n'avons pas besoin de beaucoup de volume et le débit du GPRS est largement suffisant pour la synchronisation des données. La seul vrai contrainte est de ne pas pourvoir conserver une connexion constante, comme avec le WiFi, au vu le tarif du volume de la data 1€ / mois = 1MB / mois.

Conclusion: il faut limiter grandement les échanges en synchronisant intelligemment les données. Ainsi,  un système de gestion de version par incrément permet de vraiment limiter le volume des échanges. 

SIM800L

Sur cette idée de base, j'ai développé un prototype utilisant un AZDelivery SIM800L. Simple, efficace et très bon marché (8€) le truc fait très bien le job et le prototype est pleinement fonctionnel. 


Petite astuce:

Pour récupéré l'heure courante, il est possible d'utiliser le réseau IP et contacter un serveur NTP mais cela réclame une consommation supplémentaire de data. une AT+Command permet de récupérer l'heure du réseau GSM cela permet une bonne économie de volume de donnée.

AT+CIPGSMLOC=2,1


LTE

Le réseau 3G est très bien supporté (surtout en ville) mais ne s'agrandi plus car les nouvelles antennes ne supportent pas le GPRS. Le réseau 3G va disparaître progressivement. Le produit devra être LTE. Pourquoi pas la 5G? Le prix des modules 5G est encore très haut. La 5G attendra quelques années.

Apres pas mal de recherche, j'ai trouvé mon bonheur: le shield SIM7000 de chez DFROBOT.

C'est un shield LTE bien conçu avec la possibilité de choisir les ports de communications. Cerise sur le gâteau: la carte inclut un GPS et un capteur de température, humidité et pression! Idéale pour offre des fonctionnalités supplémentaires a notre produit. 

Le tout a un prix vraiment très bon pour un module LTE ($39.90 seulement!).

Voici le lien du constructeur: SIM7000E Arduino NB-IoT/LTE/GPRS/GPS Expansion Shield

Operating Voltage: 5V
Input Voltage: 7~12VDC (VIN range: 6~20V)
Communication Module: SIM7000
  • Single-Band TDD-LTE B39
  • Quad-Band FDD-LTE B1/B3/B5/B8 (SIM7000C)
  • Quad-Band FDD-LTE B3/B8/B20/B28 (SIM7000E)
  • GPRS/EDGE 900/1800 MHz
  • Output power     
            - GSM900: 2W
            - DCS1800: 1W
  • Control Via AT Commands
  • Operation temperature: -40℃ to +85℃
  • GNSS (GPS, GLONASS, BeiDou, Compass, Galileo, QZSS)
  • Firmware update via USB 2.0
  • Support SIM card and NB-IoT card  

    BME280 Environmental Sensor 
  • Temperature Measuring Range: -40℃~+85℃, resolution of 0.1℃, deviation of ±0.5℃
  • Humidity Measuring Range: 0~100%RH, resolution of 0.1%RH, deviation of ±2%RH
  • Pressure Measuring Range: 300~1100hPa
  • Humidity Sampling Time: 1s
  • Operating Temperature:-30℃~+85℃
  • Dimension: 2.1 x 2.7inch /53.4 x 68.6mm

  • Montage


    La carte se place directement sur votre Arduino. Il faut que l'Arduino soit alimentée, en plus de l’USB par du 12V/1A. En effet, la connexion GSM réclame de la puissance et le port USB seul ne permet pas d'avoir une connexion réseau stable. 





    Pour les MEGA 2560:

    Le shield est compatible avec un MEGA 2560 en reliant D8 et D10. En effet, le MEGA ne supporte pas les interruptions sur le D8 or la librairie de pilotage du SIM7000 doit pouvoir poser une interruption matériel sur le pin de réception.    

    Programmation


    FDRobot nous propose 2 librairies pour piloter le module pour supporter les fonctions suivantes:


    • GSM (Data, SMS, SIM…)

    • HTTP

    • MQTT

    • Get position

    • Upload

    • Real time clock



    DFRobot_SIM : Le pilote spécifique du SIM7000

    https://github.com/DFRobot/DFRobot_SIM7000


    DFRobot_SIM : la base pour les Libs SIM de DFRobot

    https://github.com/DFRobot/DFRobot_SIM


    Exemples d’utilisations:

    https://github.com/DFRobot/DFRobot_SIM7000/tree/master/examples



    Ces librairies sont parfaites pour débuter. Pour ma part, j'ai choisi de m'en inspirer pour réécrire une librairie Arduino minimaliste pour notre projet.


    Lien du constructeur: SIM7000E Arduino NB-IoT/LTE/GPRS/GPS Expansion Shield


    Si vous avez pu bricoler un IoT avec ce module, partagez-moi votre projet :-)

    samedi 13 février 2021

    Pourquoi j’aime la programmation sur les objets connectés ?

    Bienvenue sur ce 1er article où je vais essayer de vous parler de mon travail.

    First

    J’ai commencé à coder sur Amstrad alors que je n’avais qu'une dizaine d'années. Mon programme le plus élaboré était un truc pour générer des stéréogrammes. Le soft ne permettait pas de faire de belles courbes mais plutôt style Minecraft avec un motif aléatoire. Bien après, j’ai découvert des softs pour les faire à partir d’un objet 3D sur PC.

    Le CPC n’avait que 128ko de ram. Pas moyen d'allouer un gros tableau. Le langage de Locomotive software n'était pas très compliqué mais très frustrant. 

    Alors pourquoi j’aime la prog sur les IoT ?

    C’est un peu comme revenir au bon vieux temps processeur mono-core: peu de puissance, pas beaucoup de RAM, beaucoup de structurations, de l’astuce, de l’open source et une grande facilité d’usage.




    Comprendre les liens résiduelles - Deep Learning

    Comprendre les liens résiduelles Avant la découverte des réseaux à liens résiduels, l'entraînement de réseaux de neurones profonds ...