Go Down

Topic: Envoi de données vers un serveur web via Arduino Shield GSM V2 (Read 2627 times) previous topic - next topic

alexlens

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

al1fch

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' !!)

hazerty565

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é..

al1fch

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.

alexlens

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.

infobarquee

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".
AUCUNE AIDE PAR MP

alexlens

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.

philou35

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 ????
PHILOU35

philou35

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... ?
PHILOU35

al1fch

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

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

olitask

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

alexlens

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.

olitask

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


alexlens

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);
}

philou35

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 ....???
PHILOU35

Go Up