Signal von Arduino an Android App

Hallo,

hat jemand einen Tipp, wie man ein Signal eines Arduinos auf einer Mobile App anzeigen lässt?
Zum Beispiel beim Unterbrechen einer Lichtschranke wird ein grüner Kreis auf der App angezeigt o.ä.
Würde das ganze gerne über ein Netzwerk verbinden.

Bis jetzt habe ich leider überall nur Hinweise dazu gefunden, wie man einen Arduino mit einer App steueren kann, aber nicht andersrum.

Ich bin für jede Hilfe dankbar.

Muss es eine App sein oder geht auch ein Browser ?

Kommt immer drauf an wie und wo..

Handy bleibt ja nur GSM, WLAN, Bluetooth.

Wenn es wegen der Reichweite nicht über Bluetooth gehen sollte dann geht nur WLAN..

Für WLAN gibt es mehrere Möglichkeiten.

  1. Arduino via Serial an ESP8266 als eigener Server. (App holt dort seine Daten ab, ohne Html)
  2. Arduino via Serial an ESP8266 über einen Server mit der App verbunden.
  3. Wenn es nicht viel mehr darstellen soll, Arduino direkt am ESP8266 ohne Atmega.

Für alle drei Fälle sind die Basic Examples sogar mit Apps dabei genau Dein Wunsch, googeln hilft da ungemein :smiley:

ich habe es für meinen Esp8266 mit Pushbullet hinbekommen. Die Laufzeit bis zum eintreffen der Pushnachricht beträgt ungefähr 2 - 3 Sekunden. Bei Intresse kann ich den Code gerne posten.
Gruß Fips

Vielen Dank für Eure Antworten!

@Schuppeste, dein 2. Vorschlag war auch mein erster Gedanke. Ich denke ich werde es so versuchen, falls ich weitere Fragen habe werde ich mich noch einmal melden.

@Derfips, mit Pushbullet habe ich noch nie gearbeitet, hört sich aber interessant an! Ich würde mir den Code gerne anschauen wenn das OK ist.

Beste Grüße

Womit ich gerne arbeite ist Processing. Eine sehr simple Programmiersprache basierend auf Java. Du kannst über die Processing PDE simple Apps für Android selbst schreiben, oder über die APDE direkt auf deinem Smartphone Apps für selbiges schreiben.
Auch dafür gibt es viele simple Beispiele wie du die Kommunikation über WLAN oder Bluetooth regeln kannst.

Entschuldige das ich erst jetzt Antworte habs wohl überlesen.
Du musst diese Bibliothek einfügen

#include <WiFiClientSecure.h>

Diese Variablen

const int httpsPort = 443;
const char* host = "api.pushbullet.com";
const char* PushBulletAPIKEY = "o.W5oQro3Eod1pOv5BJ2IDNXsSiJ20xjpy"; //Bekommt ihr von eurem Pushbullet-Konto
// Verwenden Sie den Webbrowser zum Anzeigen und Kopieren
// SHA1 fingerprint of the certificate
const char* fingerprint = "E7:06:F1:30:B1:5F:25:72:00:4D:99:F0:ED:90:4D:F9:60:D3:FB:75"; //got it using https://www.grc.com/fingerprints.htm

Diese Funktion schickt die Nachricht

void Pushbullet() {               // Push Nachricht zum Klingelkasten schicken
   WiFiClientSecure client;
  if (!client.connect(host, httpsPort))  return;
  String messagebody = "{\"type\": \"note\", \"title\": \"Push vom ESP\", \"body\": \"Licht ";
  messagebody += Zeitstempel;
  messagebody +=  "\"}\r\n";
  client.print(String("POST ") + "/v2/pushes HTTP/1.1\r\n" + "Host: " + host + "\r\n" +
               "Authorization: Bearer " + PushBulletAPIKEY + "\r\n" +
               "Content-Type: application/json\r\n" + "Content-Length: " +
               String(messagebody.length()) + "\r\n\r\n");
  client.print(messagebody);
   Serial.println("request sent");
  while (client.available() == 0);    //Druckt Antwort
   while (client.available()) {
     String line = client.readStringUntil('\n');
    Serial.println(line);
   }
}

die muss natürlich im programm(loop) bei auslösen eines Ereignisses mit Pushbullet(); aufgerufen werden