Go Down

Topic: enviar notificación push al iphone?? SOLUCIONADO (Read 4699 times) previous topic - next topic

Lisergio

Apr 19, 2013, 10:33 pm Last Edit: Apr 23, 2013, 10:28 pm by Lisergio Reason: 1
Buenas...
Después de buscar por el foro, solo he visto una página en alemán (la cual no entiendo ni papa, ni con google) y he compilado el ejemplo pero no funciona...

Alguien conoce alguna manera de enviar una notificación push??

La idea, es la siguiente, ...

Estoy montando un autómata para una persiana motorizada, basado en arduino, con un reloj , para los horarios de subida y bajada, pero también se podrá abrir o cerrar desde el iphone usando la app NetIO.. y la idea es poner un sensor en la puerta de acceso, y que me envíe una notificación push al iphone cada vez que entre alguien...

el automata, con la programación y el control manual con NetIO esta casi funcionando... pero me falta la notificación...

Alguna idea??

gracias!!!!

Lisergio

Al final era mas fácil de lo que parecía... he buscado por la red (el gran oráculo google me ha ayudado)...

En primer lugar tenemos que descargar una app para iOS, llamada Prowl.. es un gestor de notificaciones para Mac y Pc pero tenemos una librería para arduino...
APP - https://itunes.apple.com/es/app/prowl-growl-client/id320876271?mt=8
Librería - https://github.com/colagrosso/avviso
Para conseguir el api Key (necesario para que te lleguen las notificaciones) - http://www.prowlapp.com (hay que registrarse)

he creado un ejemplo muy sencillo, con un pulsador.. te llegara una notificación cada vez que pulses el botón.. con el mensaje correspondiente ...

#include <SPI.h>
#include <Ethernet.h>
#include <HTTPClient.h>
#include <Avviso.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

IPAddress ip(192,168,1,100);
IPAddress gateway(192,168,1,1);   
IPAddress subnet(255, 255, 255, 0);


int boton1=4;
int buttonstate1=0;

void setup()
{
Ethernet.begin(mac, ip);
Avviso.begin();
Avviso.setApiKey("********* AQUI VA TU APIKEY ************");
Avviso.setApplicationName("Ejemplo Push Arduino");
}

void loop()
{
buttonstate1=digitalRead(boton1);
if (buttonstate1==HIGH)
{
   Avviso.push("Has pulsado el boton","", 0);
   delay(250);
}
 
}

armando_luisgz


Buenas...
Después de buscar por el foro, solo he visto una página en alemán (la cual no entiendo ni papa, ni con google) y he compilado el ejemplo pero no funciona...

Alguien conoce alguna manera de enviar una notificación push??

La idea, es la siguiente, ...

Estoy montando un autómata para una persiana motorizada, basado en arduino, con un reloj , para los horarios de subida y bajada, pero también se podrá abrir o cerrar desde el iphone usando la app NetIO.. y la idea es poner un sensor en la puerta de acceso, y que me envíe una notificación push al iphone cada vez que entre alguien...

el automata, con la programación y el control manual con NetIO esta casi funcionando... pero me falta la notificación...

Alguna idea??

gracias!!!!


Hola tengo un problema con la App netIO me funcionaba perfecto se conectaba al instante hasta que intente aregar otras etiquetas , ahora pasa como 15 segundos entre conectarse y descoonectarse hasta que porfin se puede usar ... me podrias dar un ejemplo de tu codigo base osea la oarte de la conexion con la app a ver que esta mal en el mio
miro el mio:

Code: [Select]

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5 };
byte ip[] = { 192, 168, 2, 10 };

#define BUFFER 10
EthernetServer servidorArduino(3200);

int led = 3;
int pulsador = 4;
int Led13 = 5;
int Led13status = 0;
int Rele2 = 6;
int Rele2status = 0;

void setup(){
  Serial.begin(9600);
  Ethernet.begin(mac, ip);
  servidorArduino.begin();
  pinMode(led, OUTPUT);
  pinMode(Led13, OUTPUT);
  pinMode(Rele2, OUTPUT);
  pinMode(pulsador, INPUT);
}

void loop()
{
  int index = 0;
  char comando[BUFFER];

  EthernetClient clienteApp = servidorArduino.available();
  if (clienteApp) {
    if (clienteApp.connected()) {
          while (clienteApp.available()) {
          char caracter = clienteApp.read();
          if (caracter != '\n') {
            comando[index] = caracter;
            index++;
            if (index >= BUFFER) index = BUFFER -1;
            continue;
          }
        comando[index] = '\0';
      }

      if (strstr(comando, "holaArdu")) {
        clienteApp.println("done");
      }

      if (strstr(comando, "SLIDER")) {
        clienteApp.println("OK");
        analogWrite(led, atoi(&comando[7]) * 4);
      }

      if (strstr(comando, "BOTON")) {
        if (digitalRead(pulsador) == HIGH) {   
          clienteApp.println("ON"); 
        } else {
          clienteApp.println("OFF");
        }
      }
       
       if (strstr(comando, "LED13 status")) {   // set the LED9 switch according the Status
        clienteApp.println(Led13status);          // answer with the onText
      }

      if (strstr(comando, "LED13 on")) {       // set the LED9
        clienteApp.println("OK");
        digitalWrite(Led13, HIGH);            // turn the LED9 on
        Led13status = 1;
      }

      if (strstr(comando, "LED13 off")) {      // set the LED9
        clienteApp.println("OK");
        digitalWrite(Led13, LOW);             // turn the LED9 off (LOW is the voltage level)
        Led13status = 0;
      }
     
      if (strstr(comando, "RELE2 status")) {   // set the LED9 switch according the Status
        clienteApp.println(Rele2status);          // answer with the onText
      }

      if (strstr(comando, "RELE2 on")) {       // set the LED9
        clienteApp.println("OK");
        digitalWrite(Rele2, HIGH);            // turn the LED9 on
        Rele2status = 1;
      }

      if (strstr(comando, "RELE2 off")) {      // set the LED9
        clienteApp.println("OK");
        digitalWrite(Rele2, LOW);             
        Rele2status = 0;
      }
    }
  }
}


Alexlml96


surbyte

Le preguntas a alguien que no escribe desde 2013?
Lee las normas del foro.
No revivas hilos que tengan 120 dias sin movimiento, eso son 4 meses no años!!

Hilo cerrado.

Go Up