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
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' !!)
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é..
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.
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.
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".
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.
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 ????
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... ?
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
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)
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.
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...
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 !
#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);
}
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 ....???
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
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 :
// 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...
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 !
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 ?