Go Down

Topic: notification sur telephone (Read 1 time) previous topic - next topic

Heloderma-kris

Aug 01, 2014, 02:09 pm Last Edit: Aug 01, 2014, 02:15 pm by Heloderma-kris Reason: 1
:)Bonjour ,
je sais que le sujet a deja été traité dans des topic , mais je vouais me rendre utile et faire part de cette possibilité intérésante qu'est celle des notifications!

en effet il est compliqué d'envoyer directement un mail ou une notification depuis un arduino, mais il existe une parade intérésante et agréable a utilisé!

pour cela il vous faudrat utilisé deux systéme
le premier s'appelle PushingBox : http://www.pushingbox.com/ ce service accesible depuit internet va vous permetre de cree un compt (si vous avez un compt google c'est encore plus simple), dans le quel vous allez pouvoir paramétré des scenarios. chaque scenario disposera de sont propre DeviceID qui est un n°de 16 caraterre !

ces senario pourront etre lancer ou declanché via une simple requete vers le server pushingbox a l'aide d'une fonction comme celle ci:
Code: [Select]

extern DeviceID NOTI_1[17];// votre n° d'identification de scenario
void sendToPushingBox(char DeviceID[])
{
   m_client.stop();
   if (m_client.connect("api.pushingbox.com", 80))
   {
       m_client.print("GET /pushingbox?devid=");
       m_client.print(noti);
       m_client.println(" HTTP/1.1");
       m_client.print("Host: ");
       m_client.println("api.pushingbox.com");
       m_client.println("User-Agent: Arduino");
       m_client.println();
      //m_client.stop();
   }

}


facile vous me direz!! :smiley-mr-green:


l'interet de tous ça c'est qu'a partir de là, ce n'est plus l'arduino qui ce charge d'envoyer quoi que ce soit , mais le server pushingbox.

par exemple les senarios que vous crée peuvent vous envoyer un mail , vous envoyer des SMS via la souscription de certaint service , ou bien encor vous envoyer une notification .

En effet le deuxieme service dont vous allez avoir besoin s'apelle newtifry :https://newtifry.appspot.com/
comme à chaque foit vous allez devoir cree un compt qui sera une source de notification .

Ensuite sur votre telephone ( Android) vous allez instaler l'application du meme nom est  selectioner, la source que vous avez cree ( encor une fois tout est tres simple avec votre compt google).

une fois cette operation effectuer , vous allez retourner chez pushingbox et ajoute le service newtifry a vos senario il vous sera juste demander le n°KEY que vous avez reçu a votre inscription sur newtifry, cela pour que pushingbox puisse vous redirigé les information!

finaliser ensuite vos scenario ( texte a envoyer )et vous pourrez avoir la surprise que votre telephone android ce mette a vous parler pour vous lire la notification reçu : exemple " la temperature de votre maison et trop haute"! mais avec une jolie voie  :smiley-mr-green:

il exite d'autre service pour les iphone mais n'en disposant pas je n'ai jamais fait de test!

voila j'esper que cette metode vous serra utile!


liste des services disponible via pushing box :

=>Email :Just a mere email service for being notified by email   
   =>Twitter :Tweet notification   
   =>Safari: Push notification on MacOS
   =>Karotz :Voice notification (tts), make your Karotz speaking on an event   
   =>Prowl :Push notification service for iPhone   
   =>Faast :Push notification service for iPhone   
   =>Pushalot :Push notification service for Windows 8 and Windows Phone   
   =>Toasty :Push notification service for Windows Phone   
   =>Notify My Android :Push notification service for Android   
   =>Newtifry :Push notification service for Android   
   =>CustomURL :Set your own service !

Heloderma-kris

suite et option en plus:

donc voici comment envoyer des notification avec variable
pushing box accepte la reception de variable au travers des ces requet ainsi si vous cree un senario comportant de variable comme suite :


Code: [Select]
la temperature dans la $piece$ est de $temperature$ °C

vous pouvez alors evoyer une requete comme cela :

Code: [Select]


void sendToPushingBoxTemp(char noti[],char*piece,float temp);
char Buff_10[11];// tableau buffer de char

void sendToPushingBoxTemp(char noti[],char*piece,float temp)
{
    if (noti!=0)
    {
        dtostrf (temp, 4, 2, Buff_10);// on convertie les donne au format char
        client.stop();
        if (client.connect("api.pushingbox.com", 80))// conection a pushingbox
        {
            client.print(F("GET /pushingbox?devid="));
            client.print(noti);

            client.print(F("&"));
           client. print(F("piece"));
            client.print(F("="));
            client.print(piece);

            client.print(F("&"));
            client.print(F("temperature"));
            client.print(F("="));
            client.print(Buff_10);

            client.println(F(" HTTP/1.1"));
            client.print(F("Host: "));
            client.println(F("api.pushingbox.com"));
            client.println(F("User-Agent: Arduino"));
            client.println(F(""));
        }
        
    }
    
    client.stop();
}


avec ce code pushingbox pourra prendre en compt vos variable .

le nombre d'appelle vers pushing box et limiter a 1000/jour.
pour ceux desirant renvoyer ver newtifry le nombre d'appelle et de 1400/jour soit un par minute.

caape

#2
Jan 20, 2015, 08:23 am Last Edit: Jan 20, 2015, 08:26 am by caape
Bonjour

De ce truc, on peut créé
Code: [Select]
$phrase$

et utiliser
Code: [Select]
....
        if (client.connect("api.pushingbox.com", 80))// conection a pushingbox
        {
            client.print(F("GET /pushingbox?devid="));
            client.print(noti);

            client.print(F("&"));
           client. print(F("phrase"));
            client.print(F("="));
            client.print("La%20phrase%20a%20ecrire");
....


Il ne faut juste pas oublier de transformer les " "en "%20"

Merci pour le truc, j'intégrerai ça quand ma sonde de température sera en fonction.
a+


PS: J'ai toujour des "" qui se rajoute au code quand je fait un reply, je dois éditer le code pour coriger? Ca fais ça à d'autre ?
StandAlone domotique<br />Volet roulant, Capteur T° sur p iles, (Eclairage Salon SAM en cour)(Pilotage via WEB + Mobile (base ok))(Sonnette)(Alarme)...

Heloderma-kris

PS: J'ai toujour des "" qui se rajoute au code quand je fait un reply, je dois éditer le code pour coriger? Ca fais ça à d'autre ?
desoler mais j'ai pas bien saisie ou tu avais un soucis ! parfoi il est neccesaire quant on ecri du code html pour l'envoyer de faire :
Code: [Select]
client.print (F(ma phrase ' autre chose' fin de phrase));
car les "" ne passe pas par contre ' ' a la meme finalité .

caape

#4
Jan 20, 2015, 10:57 am Last Edit: Jan 20, 2015, 10:58 am by caape
Désolé, encore un truc que je n'avais pas vu mais le code dans les "" n'est pas affiché.
c'était un truc du genre "[ color = # FF000] [ /color ]" qui se rajout a la fin de chaque ligne du QUOTE.

J'espere que la, ça va passer.

edit: non c'est pas passé. J'ai ajouté des espaces
StandAlone domotique<br />Volet roulant, Capteur T° sur p iles, (Eclairage Salon SAM en cour)(Pilotage via WEB + Mobile (base ok))(Sonnette)(Alarme)...

Heloderma-kris

c'est dans le code que j'ai fourni que tu a un souci c'est bien ça ?

Code: [Select]


void sendToPushingBoxTemp(char noti[],char*piece,float temp);
char Buff_10[11];// tableau buffer de char

void sendToPushingBoxTemp(char noti[],char*piece,float temp)
{
    if (noti!=0)
    {
        dtostrf (temp, 4, 2, Buff_10);// on convertie les donne au format char
        client.stop();
        if (client.connect("api.pushingbox.com", 80))// conection a pushingbox
        {
            client.print(F("GET /pushingbox?devid="));
            client.print(noti);

            client.print(F("&"));
           client. print(F("piece"));
            client.print(F("="));
            client.print(piece);

            client.print(F("&"));
            client.print(F("temperature"));
            client.print(F("="));
            client.print(Buff_10);

            client.println(F(" HTTP/1.1"));
            client.print(F("Host: "));
            client.println(F("api.pushingbox.com"));
            client.println(F("User-Agent: Arduino"));
 //client.println(F(""));
//remplacer par :
            client.println();
        }
       
    }
   
    client.stop();
}


si c'est ça essaye le code maintenant car dans ma fonction je n'utilise pas les meme "print et println" j'ai fit un systeme de buffer et j'ai du réécrire ces fonction  et mon "println" ne fonctione pas si je ne fait pas :client.println(F(""));.

donc avec la modif du dessu ça devrai fonctioné , il faut envoyer une nouvel ligne avec retour chario donc carractere "\r\n" en fin denvois de requette

caape

Non non, il y a mal entendu, je parle d'un bug sur le forum. Quand j'ai fais un QUOTE du code, il y a plein de "[ color = # FF000] [ /color ]" qui sont apparu à la fin de chaque ligne une fois que j'ai posté.


Pour ton code, je n'ai pas testé. Par contre j'ai fais un compte chez pushingbox et Newtifry . Pour les tests, j'ai juste tapé la bonne URL dans mon navigateur. Pour le code, je verrais ça plus tard.


Merci quand même.
a+
StandAlone domotique<br />Volet roulant, Capteur T° sur p iles, (Eclairage Salon SAM en cour)(Pilotage via WEB + Mobile (base ok))(Sonnette)(Alarme)...

Heloderma-kris

 :smiley-mr-green:  il est quel heure ..... il est jeudi  :smiley-mr-green:

je pigé pas la!
 :smiley-lol:

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy