Arduino Forum

International => Français => Topic started by: alexlens on Apr 05, 2018, 05:42 pm

Title: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: alexlens on Apr 05, 2018, 05:42 pm
Bonjour à tous,

Je voudrai savoir s'il est possible d'envoyer des données vers un serveur web via le shield Arduino GSM V2.
En effet, les capteurs sont reliés à une Arduino dans une zone sans connexion à internet. Le but étant de pouvoir lire des données envoyées toutes les minutes sur ce serveur depuis un PC ou un smartphone à distance.

Je ne cherche pas de code tout fait, juste une solution à mon problème, savoir s'il est possible de le réaliser et si non quelles sont les alternatives.

Merci d'avance pour vos réponses.
Alexandre BODART
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: al1fch on Apr 05, 2018, 05:58 pm
Bonjour

La librairie Arduino pour ce sheild apporte plusieurs exemples.

Il semble tout à fait possible d'atteindre l'objectif en s'inspirant de l'exemple GSM Web Client pour l'amener à transmettre des données  à un serveur http distant.

Il serait étonnant qu'aucun tutoriel ne traite ce sujet (éventuellement avec une autre carte GSM que le Shield Arduino, mais  le principe est le même.
Je suis certain d'avoir vu passer des réalisations d'envoi de données  via shield GSM , vers ThingSpeak.

On a vu sur ce forum des réalisations d'apiculteurs surveillant ainsi leur ruches.
As tu déjà fait des recherches ?

(Avec ce shield la carte Arduino n'est plus 'sans connection avec internet' !!)
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: hazerty565 on Apr 05, 2018, 06:03 pm
c'est faisable, mais faut savoir que si c'est GSM d'un coté, il faut du GSM d'un autre coté.
Donc ça sera l'envoi de texto ou SMS ( toutes les minutes??...)

je ne sais pas quel forfait, mais ça risque  d'etre chers, si tu n'as pas d'envoie illimité en sms...
quel interré d'envoyer/recevoir toutes les minutes..?
De 1: si ton système est sur batterie, au bout de 2 jours, tu n'as plus de batterie

de 2: si c'est de la surveillance, peut être qu'une fois par jour est suffisant...

de 3: coté client, il te faut une interface aussi, donc sur PC, il te faut un carte  SIM aussi pour avoir les infos...



Je te conseil SIgfox ou LORAwan, il existe des sheilds adequat, destiné au objet connecté..
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: al1fch on Apr 05, 2018, 06:11 pm
Pas besoin de GSM à l'autre bout, travailler en GPRS, cf  exemple GSMWebClient = accès Internet

S'il faut envoyer une donnée toute les minutes (rythme annoncé dans le mail initial) Sigfox et LoraWan sont hors circuit, la cadence d'envoi est trop rapide pour eux qui sont tenus de respecter une réglementation sur l'occupation des bandes 868 MHz utilisées.

D'autre part Sigfox a encore pas mal de zones non couvertes (j'ai du l'abandonner pour cette raison, il est accessible là ou je n'en ai pas besoin et inaccessible là ou j'en ai besoin) On découvre la zone de couverture 'fine' quand on a acheté et qu'on est incrit !!

LoraWan par Orange couvre bien la France  ..... pas pour nous..... pour les entreprises.
LoraWan Bouygues nous est aussi inaccessible.
(ma carte LoraWan attend sagement qu'un opérateur de réseau LoraWan ouvre les vannes pour les 'makers', je n'ai pas envie de parasiter le KBIS d'entreprises amies pour m'inscrire au LoraWan d'Orange. Il commence à être question de LoraWan prépayé chez Orange.... pour qui ? ..... à suivre)

Je conseille la prudence pour Sigfox (à la campagne) et LoraWan pour éviter de se retrouver avec des cartes inutilisables par absence d'accès à un réseau. L'horizon va j'espère se dégager.
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: alexlens on Apr 06, 2018, 01:37 pm
Je m'était renseigné pour l'utiliser mais je trouvais peu d'exemple, ce qui m'inquiétais un peu ...
Je vois donc que c'est possible grâce à GSMWebClient, même si du coup je pense plus m'orienter vers un autre shield que celui fourni par arduino.

J'ai malheureusement besoin d'envoyer des données au moins une fois par minute car c'est de la culture de champignon professionnelle, il faut donc pouvoir agir sur des données presque en "temps réel", ce qui élimine la possibilité Sigfox, même si elle est très intéressante pour ce que je veux faire.

Si vous avez des idées de forfaits de carte SIM avec GPRS qui peut envoyer des données sur un serveur, je suis preneur, car je n'ai pas trop envie de souscrire à un abonnement où l'upload est bloqué, et ou je ne peux pas ouvrir de port, etc ... Le forfait free à 2€ est-il une solution viable ?

En tout cas merci pour vos réponses et pistes de réflexion.
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: infobarquee on Apr 06, 2018, 04:47 pm
déjà, il faut un forfait incluant des datas
envoyer toutes les minutes, c'est peut être un peu beaucoup, non.
Une solution serait de prendre un seuil a ne pas dépasser pour envoyer les données.

A prendre en considération aussi l'endroit où sera le module.
Si c'est dans une cave, ca risque de très mal passer.

Donc déjà, où se trouve l'endroit a surveiller, et le lieu où tu veux avoir les données en "live".
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: alexlens on Apr 09, 2018, 10:13 am
Comme j'ai besoin d'agir sur le système, si je ne vois pas les répercutions en "temps réel" c'est assez complexe, l'idée du seuil à ne pas dépasser (Par exemple 5Go par mois soit x trames d'envoyées par mois) peut être une bonne idée, je vais vérifier le poids d'une trame.

L'endroit où sera déposé le module réceptionne très bien le GPRS, j'ai été vérifier, pas de problème de ce côté là. Pour la réception des données, l'idéal serait de les recevoir sur mon téléphone ou PC portable donc un peu de "n'importe où", sachant que côté serveur, je peux laisser limite tourner un PC pour hébergement des données.
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: philou35 on Apr 16, 2018, 03:28 pm
bonjour, j'ai exactement le meme besoin : envoyer des données HTTP via GPRS : j'utilise le SIM800L EVB mais jusqu'a present, pas reussi à recevoir la confirmation (reponse) suite à un envoi de requete...
j'ai suivi 2 ou 3 tutos qui utilisaient des cartes SIM free à 2 € sans succes...
j'ai bien des OK suites aux commandes AT mais je bute pour comprendre ou ça coince...
et sur le net ou les forums, pas beaucoup d'exemples pour s'inspirer...

curieux qu'il n'y ait pas plus de personnes a avoir reussi ou s'interresser à l'envoi de requetes vers un serveur... on trouve une foultitude d'exemple en SMS mais je n'ai pas de soucis avec l'envoi/reception de SMS... et rien ou presque sur des exemples d'utilisation du mode GPRS pour l'envoi de requete...
ou je cherche tres mal... toute aide serait bienvenue, pour savoir si deja quelqu'un a reussi avec un SIM800L et une carte Free 2 € à envoyer et recevoir une requete HTTP...
j'ai essayé aussi le mode TCP mais sans plus de succès...
pourtant le SIM800L integre bien une pile TCP/IP... est ce utilisable avec Free.... ? et comment ????
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: philou35 on Apr 16, 2018, 10:04 pm
question subsidiaire : peut on utiliser la librairie standard GSM de l'IDE Arduino avec une carte SIM800L (au moins pour la partie connection au reseau GPRS et envoi requete... je me doute que coté init, ce peut etre specifique encore que si la librairie est basée sur le standard Hayes, ça pourrait peut etre aller... ?
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: al1fch on Apr 16, 2018, 10:45 pm
Bonsoir
Quote
toute aide serait bienvenue, pour savoir si deja quelqu'un a reussi avec un SIM800L et une carte Free 2 € à envoyer et recevoir une requete HTTP...
peut être une solution içi avec ce tutoriel du site letmeknow + divers commentaires (https://letmeknow.fr/blog/2015/10/14/tuto-module-gsm-sim800l-recevoir-des-donnees-http/)

pour la question subsidiaire : 'faut voir si les commandes AT sont les mêmes..... le 'standard' Hayes date des modems, ses extensions pour divers autres équipements de communications se font sans entente entre les fabricants
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: olitask on Apr 17, 2018, 01:11 pm
Bonjour

J'ai fait un anémomètre connecté en GPRS ( sim800L) avec envoi des données sur un site web ( mon raspberrypi)  toute les 10 min environ, mais on peut le modifier facilement dans le script.
voir la : https://github.com/olitask/Anemometre-GPRS

J'ai aussi une version avec un ecran de nokia qui affiche les données ( si qq1 est interessé

attention, mon code php date un peu, ca fonctionne mais question sécurité il y a mieux. Il faut utiliser maintenant PDO

sinon j'utilise une carte à 1.90 de chez symamobile, mais ça fonctionne aussi avec free
La carte sim800EVB fonctionne aussi très bien avec un minipro5V et une batterie 2S couplée à un UBEC qui fourni du 5V ( voir rayon modélisme)


Olivier
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: alexlens on Apr 19, 2018, 12:41 pm
Bonjour,

Le projet que tu présente Olivier est très intéressant, il se rapproche de ce que je fais. Ton PHP est hébergé où ? Et donc tu confirme qu'avec une carte SIM basique tel que free ça fonctionne ? (Je vais aussi me renseigner pour symamobile).

EDIT : J'ai finalement acheté un module SIM900 de chez elecfreaks car beaucoup moins cher pour au final une utilisation similaire, tout en me réservant la possibilité d'envoyer SMS et Appels.
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: olitask on Apr 19, 2018, 03:06 pm
J'ai testé avec free ( opérateur de ma copine) et syma (mon opérateur) . Envoyer une requête toute les 10 minutes ne consomme presque rien en données. Le soucis, (j'espère ne pas dire de conn ries ) c'est que le sim800 n'utilise que la  "2G" et que celle ci est fournie par l'itinérance que orange vend  à free ( free ne possède que de la 3G et 4G ). Or, ce contrat devrait bientôt se terminer ( 2020)

PHP : mon raspberry + nginx + php5 + mysql.  On trouve des tutos a foison...

Olivier

Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: alexlens on Apr 24, 2018, 11:29 am
Bonjour, je reviens vers vous car j'ai un problème dans mon code. Avant de passer par mon serveur, j'ai voulu faire des essais avec thingspeak. Malheureusement, ça ne fonctionne pas.

Quand j'envoie directement depuis mon PC, la valeur s'enregistre, mais quand je passe par les commandes AT, aucune réponse. J'utilise l'EFCom Pro V1.0 (Module SIM900) qui est bien connecté à internet (LED qui clignote toute les 3 secondes). J'utilise les PIN RX & TX sans utiliser la biblio SoftwareSerial pour simplifier au maximum le code.

Je ne vois pas d'ou peux venir l'erreur ... Si vous avez la solution ou au moins quelque pistes pour m'aider à trouver, je suis preneur !

Code: [Select]

#include <String.h>

void setup()
{
  Serial.begin(19200);    // the GPRS baud rate
  delay(1000);
}
 
void loop()
{   
     Serial.println("AT");
  delay(1000);
 
  Serial.println("AT+CPIN?");
  delay(1000);

  Serial.println("AT+CREG?");
  delay(1000);

  Serial.println("AT+CGATT?");
  delay(1000);

  Serial.println("AT+CIPSHUT");
  delay(1000);

  Serial.println("AT+CIPSTATUS");
  delay(2000);

  Serial.println("AT+CIPMUX=0");
  delay(2000);
 
 
  Serial.println("AT+CSTT=\"sl2sfr\"");//start task and setting the APN,
  delay(1000);
 
  Serial.println("AT+CIICR");//bring up wireless connection
  delay(3000);
 
 
  Serial.println("AT+CIFSR");//get local IP adress
  delay(2000);
 
 
  Serial.println("AT+CIPSPRT=0");
  delay(3000);
 
 
  Serial.println("AT+CIPSTART=\"TCP\",\"api.thingspeak.com\",\"80\"");//start up the connection
  delay(6000);
 
 
  Serial.println("AT+CIPSEND");//begin send data to remote server
  delay(4000);
 
  String str="GET http://api.thingspeak.com/update?api_key=90TR3WQ6OW4RGLXT&field1=15";
  Serial.println(str);//begin send data to remote server
  delay(4000);


  Serial.println((char)26);//sending
  delay(5000);//waitting for reply, important! the time is base on the condition of internet
  Serial.println();
 
 
  Serial.println("AT+CIPSHUT");//close the connection
  delay(100);
}
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: philou35 on Apr 24, 2018, 08:30 pm
merci Olivier : super de mettre ton code a dispo !
j'espere pouvoir comprendre ce qui coince avec le mien...
dommage si la 2G de Free  s'arrete en 2020 ... bon d'ici là, on verra sans doute des SIMXXX compatibles 3G j'espere... ou alors peut etre suffira t-il de prendre une cartes SIM d'un autre operateur toujours en 2G  (SYMA) ?

au passage, je découvre SYMA qui a l'air encore plus interessant que Free ! 1 Go de données pour 2 h d'appels et SMS illimités pour 1,90 € ... c'est bien ça... ou j'ai mal lu ??? ou est le loup dans tout cela ....???
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: philou35 on Apr 25, 2018, 08:32 am
pour Olivier :

1/ tu utilise les librairies TinyGsmClient.h et ArduinoHttpClient.h
ou peux ton les retrouver ??? ce ne sont pas des lib standards ds mon IDE (qui date un peu il est vrai)

2/ tu envoies donc la requete GET sur internet (via GPRS) et tu la recupere sur une IP perso relié à ton raspy sous PHP... nickel par contre l
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: philou35 on Apr 25, 2018, 08:39 am
oups la suite....

par contre est ce faisable avec un prog PHP hebergé sur une page Free... (autrement dit, la requete GET est elle acceptée par Free ?)

3/ la lib LowPower.h gere la mise en veille de l'arduino promini je suppose.. idem , on la trouve ou ???

4/ as tu une ref pour trouver tes accu li-ion (quelle tension d'ailleurs ?) ... (merci pour les ref sur les PV et les chargeurs de batt)

merci pour ces precisions, avant de me lancer dans ce test du code adapté pour des pages Free (je vous dirais si ça marche mieux)
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: philou35 on Apr 28, 2018, 06:24 pm
l'obstination paye !! a force de faire des essais, j'ai réussi à envoyer et recevoir une requete GET avec carte SIM Free !!
bon c'est pas gagné ... je n'y arrive encore qu'occasionnellement mais je vais essayer d'améliorer (ma reception réseau n'est pas super...) mais au moins ça montre que c'est compatible.

déja, j'utilise TinyGSM-master qu'on trouve sur internet... et je configure la liaison modem en 115200
pour la compil, utiliser exclusivement l'IDE >= 1.6.5,  avec le 1.0.5, ça coince au niveau du C++ !
(j'alimente mon SIM800L via un bloc alim 9v 1.5A avec une capa de 1000 uF aux bornes d'alim SIM800)

le code d'Olivier integre une librairie ArduinoHttpClient.h qui en fait n'est pas utilisée dans son code... j'ai repris l'exemple donné dans la librairie WebClient qui marche tres bien...
-> je ne sais d'ailleurs pas si la librairie ArduinoHttpClient.h ameliore ou pas les choses... l'exemple donné ds HttpClient semble bien compliqué et ne semble pas apporter plus de résultat...

n'oubliez pas (comme moi) de mettre dans resource le fichier php précedé de "/" si il est a la  racine, sinon vous aurez un belle erreur 400 :
Code: [Select]

// Path to download (this is the bit after the hostname in the URL)
char resource[32] = "/test.php";  // le dossier avec le fichier php


je vais essayer d'améliorer pour réussir l'envoi régulierement mais ça me semble très capricieux au niveau de la connexion...
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: alexlens on Apr 30, 2018, 09:31 am
Merci Philou, j'ai aussi réussi à faire fonctionner mon code avec une carte SIM SFR vers thingspeak.
Maintenant il faut héberger mon site, à voir avec OVH ...

J'ai encore un problème avec un capteur MQ-135 qui quand je le branche et que ma SIM900 est allumé, tout se met en "veille" et plus rien ne fonctionne .. Si quelqu'un à une idée pour résoudre ce problème !
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: al1fch on Apr 30, 2018, 10:06 am
Bonjour
Plus que probable surcharge de l'alientation qui doit maintenant alimenter la résistance de chauffage du MQ-135 en plus du module  SIM. Quel courant maxi peut débiter l'alimentation actuelle ?
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: alexlens on Apr 30, 2018, 10:23 am
J'utilise une alim 12V - 2A, ça ne serait pas suffisant ?
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: al1fch on Apr 30, 2018, 10:27 am
Et le régulateur  intermédiaire , quel courant peut-il fournir ?
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: alexlens on Apr 30, 2018, 11:22 am
Qu'appelles-tu le régulateur intérmédiaire ? Là mon système est une prise secteur, un transfo 230V/12V (2A) que je branche directement sur ma carte arduino, qui elle alimente ma SIM900 ainsi que le MQ-135.
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: al1fch on Apr 30, 2018, 11:44 am
le MQ-135 est à alimenter en 5V, sous 12V il doit souffrir ....
(http://forum.arduino.cc/index.php?action=dlattach;topic=539682.0;attach=255524)
Quand au module SIM900 est-tu certain qu'il supporte une tension d'alimentation aussi élevée ?
le SIM900 ne doit pas etre alimenté avec plus de 4,8V. le tien est peut être monté sur un petit circuit imprimé doté d'un régulateur.
(http://forum.arduino.cc/index.php?action=dlattach;topic=539682.0;attach=255526)
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: alexlens on Apr 30, 2018, 11:47 am
C'est mon Arduino qui est alimenté en 12V, le MQ135 est lui bien raccordé à la broche 5V de ma carte, je ne pense pas que ça doit poser de problème, au niveau de la SIM900, c'est pareil, elle est raccordé au +5V de mon Arduino, le problème vient peut être de ma carte qui ne peut pas fournir autant de tension sur sa broche 5V
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: al1fch on Apr 30, 2018, 11:55 am
Quote
le problème vient peut être de ma carte qui ne peut pas fournir autant de tension sur sa broche 5V
Trop de courant 'tue la tension' !!
Le régulateur 5V présent sur la carte Arduino est doté d'une sécurité thermique
L'échauffement est provoqué par le produit   (12V-5V)*courant total sortant du régulateur 5V
Quand le régulateur chauffe trop il se met en sécurité.
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: alexlens on Apr 30, 2018, 12:07 pm
Ok ! Donc si j'ai bien compris mon transfo 12V je le range, et j'en prends un plus proche de 5V ?
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: philou35 on Apr 30, 2018, 12:17 pm
le MQ-135 consomme 800 mW environ pour le chauffage, et le SIM800 absorbe des pics de 2A, la mega consomme autour de 50 mA voire plus si des shields sont installés dessus ... ça fait beaucoup pour le regulateur interne de la mega...qui n'a pas de radiateur !!

le mieux serait de prevoir une alim speciale pour le MQ à base d'un 7805 doté d'un petit radiateur (bout de tôle) et alimenté sur le 12v (Vin sur la carte MEGA) ce qui eviterait au regulateur de la mega de disjoncter... c'est ce qu'on fait pour alimenter des relais par ex

tu trouves plein de schema avec 7805 (boitier TO220) sur le net mais en gros tu entres en 12V et tu sors en 5V (3 pattes dont une a la masse...)


question subsidiaire tant que j'y suis : j'arrive a envoyer mes requetes GET mais j'attends parfois 20 à 30 sec , parfois plus entre la connexion reseau (force 13/14 chez moi) et le retour des datas envoyé par le serveur... les timeout positionnés ds le code de la librairie TinyGSM sont impressionnants : 60 sec, 85 sec etc... dois je en conclure qu'une connexion GSM met facilement 1 mn à retourner ses infos ?

Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: al1fch on Apr 30, 2018, 12:20 pm
pas certain que l'abaissement à , disons 7 ou 8V, suffise......
le radiateur proposé par philou35 peut lui aussi aider

Quand on a des périphériques 'gourmands' comme c'est le cas içi il faut songer à les alimenter séparément de la carte UNO
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: alexlens on Apr 30, 2018, 12:41 pm
Merci pour vos réponses, je vais me renseigner pour une alimentation externe pour mes capteurs du coup.

Philou pour apporter des infos a tes questions, j'ai aussi un délai d'environ 30s à une minute, je pense que c'est du au délai situé un peu partout + le temps de l'upload des données etc. Je vais essayer de réduire ce temps aussi, si j'ai des pistes je te tient au courant
Title: Re: Envoi de données vers un serveur web via Arduino Shield GSM V2
Post by: alexlens on May 04, 2018, 05:18 pm
Bonjour à tous !

J'ai reussi à déporter l'alimentation du capteur de gaz MQ135, cela fonctionne parfaitement. Malheureusement, j'ai maintenant un problème avec mes capteurs déporté. J'ai utilisé des cables gainé d'électricien, mais aucun moyen de les faire fonctionner ... La LED d'alimentation ne s'allume même pas. Et autre problème, avec mon MQ-135, la data ne s'envoie pas.

Encore quelques réglages sont à effectuer avant que tout fonctionne, et j'ai toujours le problème d'humidité à régler.