INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 2 Bewertungen - 2 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino <=> Nexus 7 los geht´s
23.01.2018, 12:22 (Dieser Beitrag wurde zuletzt bearbeitet: 23.01.2018 21:21 von Tommy56.)
Beitrag #9
RE: Arduino <=> Nexus 7 los geht´s
Das ist eine Warnung. Er kann sich nicht entscheiden, welche der beiden Funktionen er behmen soll.

Code:
.../arduino-nightly/hardware/arduino/avr/libraries/Wire/src/Wire.h:64:13: note: candidate 1: uint8_t TwoWire::requestFrom(int, int)
     uint8_t requestFrom(int, int);
oder
.../arduino-nightly/hardware/arduino/avr/libraries/Wire/src/Wire.h:61:13: note: candidate 2: uint8_t TwoWire::requestFrom(uint8_t, uint8_t)
     uint8_t requestFrom(uint8_t, uint8_t)
Deklariere die 42 mal als byte-Variable oder mache einen expliziten Cast auf byte.
Ansonsten kann Du sie auch ignorieren.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.01.2018, 21:18 (Dieser Beitrag wurde zuletzt bearbeitet: 23.01.2018 21:22 von ArduTux.)
Beitrag #10
RE: Arduino <=> Nexus 7 los geht´s
@Tommy56
Super vielen Dank für den Hinweis, hab es korrigiert, und wieder mal dabei gelernt das CP auch mal besser ist als einfach Abschreiben Cool

Da ich ja noch reichlich "Shipping Zeit" habe bis die Komponenten hier sind kann ich mal sehen wie ich jetzt die float Sensor-Statistiken in die APP anzeigen kann. Dieser Arduino-WebSocketServer wird die Daten wohl für die APP zur Verfügung stellen müssen... mal sehen wie das Marschiert...

Ich werde weiter "Step by Step" berichten wie es mit meiner Bastelei weiter geht. Irgendwas wird ja dabei raus kommen.

gruß

"It is better to make a good copy, than to have a bad original"

Hardware: SainSmart Mega 2560 R3 + 3,2" LCD-Touch-Screen/Arduino Duemilanove
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.01.2018, 23:11
Beitrag #11
RE: Arduino <=> Nexus 7 los geht´s
Hallo Arduinos
Diese Woche hab ich mich darum gekümmert den Status von den Auto/Manual Pins an den Master zu senden.
Schließlich muss das Nexus ja beim Aufruf der Einstellungen für Automatik/Manual mitgeteilt bekommen was ich am Touch-Screen bereits vorgegeben habe.

-Am Mega füttere ich dazu ein 2D-Array[5][2] mit den Einstellungen für die 5 Pins (relays) Automatik/Manual Zustände die ich am Touch-Screen vornehme.
- Also habe ich aus dem 2D-Array[5][2] ein 1D-Array gebastelt und die Zustände von 0-9 Automatik/Manual 1-5 an den Master auf Anfoderung (onRequest) gesendet.


Code:
//-> onRequest fill the SendArray[10] with Auto/Manual Data
void SendAutoManualStatus()
{
  volatile byte SendArray[10];
  volatile boolean sendArray = true;
  const byte dataCount = 10;

  for (int i = 0; i <= 5 - 1; i++)
  {
    for (int j = 0; j <= 2 - 1; j++)
    {
      if (AutoManualStatus[i][j]) //-> ist das 2d-array welches vom touch-screen aus gefüttert wurde
      {
        if (i == 0 && j == 0) SendArray[0] = true;
        if (i == 0 && j == 1) SendArray[1] = true;
        if (i == 1 && j == 0) SendArray[2] = true;
        if (i == 1 && j == 1) SendArray[3] = true;
        if (i == 2 && j == 0) SendArray[4] = true;
        if (i == 2 && j == 1) SendArray[5] = true;
        if (i == 3 && j == 0) SendArray[6] = true;
        if (i == 3 && j == 1) SendArray[7] = true;
        if (i == 4 && j == 0) SendArray[8] = true;
        if (i == 4 && j == 1) SendArray[9] = true;
      }

      else
      {
        if (i == 0 && j == 0) SendArray[0] = false;
        if (i == 0 && j == 1) SendArray[1] = false;
        if (i == 1 && j == 0) SendArray[2] = false;
        if (i == 1 && j == 1) SendArray[3] = false;
        if (i == 2 && j == 0) SendArray[4] = false;
        if (i == 2 && j == 1) SendArray[5] = false;
        if (i == 3 && j == 0) SendArray[6] = false;
        if (i == 3 && j == 1) SendArray[7] = false;
        if (i == 4 && j == 0) SendArray[8] = false;
        if (i == 4 && j == 1) SendArray[9] = false;
      }
    }
  }
  if (sendArray) Wire.write((byte*)SendArray, dataCount); sendArray = false;
}

Damit ich etwas visuelles habe, gebe ich am Serial-Monitor vom Master die User-Action am touch-screen vom Slave aus, was bis hier her auch prima funktioniert.

Code:
//-> send a Request to your Slave to read Auto/Manual Data
void readAutoManualStatus()
{
  volatile byte readArray[10];
  const byte SlaveAdress = 42;
  const byte dataCount = 10;

  Wire.requestFrom(SlaveAdress, dataCount);

  for (byte i = 0; i < dataCount; i++)
  {
    readArray[i] = Wire.read();
  }
    if (readArray[0]) Serial.println("Automatik FrontLight: is true");
    if (!readArray[0]) Serial.println("Automatik FrontLight: is false");

    if (readArray[1]) Serial.println("Manual FrontLight: is true");
    if (!readArray[1]) Serial.println("Manual FrontLight: is false");

    if (readArray[2]) Serial.println("Automatik BackLight: is true");
    if (!readArray[2]) Serial.println("Automatik BackLight: is false");

    if (readArray[3]) Serial.println("Manual BackLight: is true");
    if (!readArray[3]) Serial.println("Manual BackLight: is false");

    if (readArray[4]) Serial.println("Automatik Irrigation: is true");
    if (!readArray[4]) Serial.println("Automatik Irrigation: is false");

    if (readArray[5]) Serial.println("Manual Irrigation: is true");
    if (!readArray[5]) Serial.println("Manual Irrigation: is false");

    if (readArray[6]) Serial.println("Automatik roofWindow: is true");
    if (!readArray[6]) Serial.println("Automatik roofWindow: is false");

    if (readArray[7]) Serial.println("Manual roofWindow: is true");
    if (!readArray[7]) Serial.println("Manual roofWindow: is false");

    if (readArray[8]) Serial.println("Automatik TankRefill: is true");
    if (!readArray[8]) Serial.println("Automatik TankRefill: is false");

    if (readArray[9]) Serial.println("Manual TankRefill: is true");
    if (!readArray[9]) Serial.println("Manual TankRefill: is false");
}

Ich habe jetzt also 2 Request vom Slave zum Master geschaufelt. Sprich die Sensor, und Auto/Manual -Daten kann der Master schon mal vom Slave besorgen.

So lange ich die WEMOS D1 Mini Pro-16 nicht hier liegen habe und die vorhandene Hardware umgebaut habe kan ich weiter erst mal nur die Daten Sachaufeln.

Ich mache noch mini kleine Schritte aber der Plan ist klar Wink Mein Duomilanove soll der WebServer zwischen Mega und Nexus werden.

Es gibt ja viele Möglichkeiten mit Arduino seinem Android ein paar Daten zu senden und umgekehrt.
Aber ich möchte ja nicht in den PlayStore und möchte auch keine externen Server nutzen wie "Notify my Android" oder ähnliches.

Darum glaube ich das ein WebServer auf dem Arduino privat bleibt zumindest so lange ich nicht im Router das Lan frei gebe.
Da gibt es noch ein Haufen Stuff für mich den ich mir rein ziehen muss damit ich privat bleiben kann.

Bisher konnte ich die Warnungen in der Android IDE bezüglich der Google Links ignorieren, das sollte mit WebServer wohl auch weiter so bleiben.
Bis auf den Umbau der ToogleButtons hab ich noch nichts weiter mit der Android IDE gebastelt.

Ich habe halt jetzt nur die 10 Buttons für Automatik und Manual gemacht, Nachteil ist eben das beim benutzen der Button das Nexus die Zusände bis jetzt noch nicht kennt.

Meine Fragen für diese Woche sind:

-Ist der WebServer oder WebSocketServer überhaupt geeignet um mit dem Nexus privat zu Kommunizieren?
-Ich habe gesehn es gibt SSL und WPA2-WiFI für Arduino, das WPA2-WiFi ist ja nur Local von bedeutung aber geht das SSL für den Arduino-WebServer damit die APP SSL conecten muss um Daten zu sammeln?

Das sind jetzt 2 Fragen die eher in der Zukunft liegen aber um ein Plan zu basteln muss ich ja Möglichkeiten klären.
Ich Hänge damit sowiwso noch etwas in der Luft wie ich am besten das Schaufeln der Daten zum Nexus umsetzten soll.
Ein getaktetes Senden von Daten zum Nexus brauch ich bestimmt nicht, da reicht ein auf die Nexus Aktivittät abgestimmtes Senden der Daten.

Für das was ich schon habe ist es ja so das ich die Sensor Daten senden muss sobald auf dem Nexus die Anzeige aktualisiert wird und erst beim ändern von Auto/Manual halt die Zustände gesendet werden usw.

Puhh.... bis demnächst

gruß

"It is better to make a good copy, than to have a bad original"

Hardware: SainSmart Mega 2560 R3 + 3,2" LCD-Touch-Screen/Arduino Duemilanove
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.01.2018, 16:33 (Dieser Beitrag wurde zuletzt bearbeitet: 31.01.2018 16:48 von ArduTux.)
Beitrag #12
Photo RE: Arduino <=> Nexus 7 los geht´s
Hallo Leute
Am Wochenende konnte ich etwas Zeit für mein Projekt finden und habe mir eine passende Bibliothek besorgt um mit dem ENC28j60 Chipsatz noch etwas herum zu spielen bevor das Shipping zu ende ist und ich das WLAN Zeug aufbauen kann.

Ich habe ein Android für Anfänger Anleitung bis zur Lektion-10 abgearbeitet. Funktioniert auch prima.

In der Anleitung geht es darum irgendwelche Finanz-Daten von einem Webserver ab zu fragen. Das funktioniert bekannter Weise ja oft über eine "query.php" Seite.

Mit dem neuen Wissen und den Anleitungen die ich bezüglich Arduino gelesen habe dachte ich mir vielleicht etwas voreilig -> auch ein sql-server zu installieren. Was ja auf ein Debian-Desktop nicht das schlimmste ist. Die Datenbank ist auch für den LAN-Zugriff vorbereitet und funktioniert prima.

In der Android-Anleitung werden die Daten ja in das Array geladen. Etwas weiter in der Anleitung werden noch zusätzliche Infos zu den Finanzdaten verarbeitet damit die APP auch mehr hergibt als nur einfache IST-Daten.

Vom Prinzip her das was ich auch vor habe eben nur mit den Sensor-Statistiken. Als weiter führende Informationen würden bei mir dann neben dem Average noch der Maximum-Average des Tages und der Maxiumum-Average des Monats und natürlich der jeweilige Minmum-Average zu sehen sein.

Ich habe bisher nur das Beispiel aus der ENC28j60 benutzt um die Daten als html-seite im Netzwerk bekannt zu machen, funktioniert auch prima. Und er zeigt die Daten vom Mega2560 direkt bei "if Client Conected" über das UNO mit der Netzwerkkarte.

Jetzt bekomme ich also keine Arduino Webserver-query.php Seite zusammen gebastelt die meine "Finaz-APP" verstehen würde. Warum ich das so umständlich mache liegt ja auf der Hand Wink => Keine Ahnung von Arduino und noch weniger von Android dazu kommt noch -> "zu alt um mir die Eier zu rasieren und noch mal zu Schule zu gehen" Tongue

Die Finanz-App benötigt so etwas ->
Code:
<?xml version="1.0" encoding="utf-8"?>
<query>
<diagnostics>
<symbols>DAI.DE</symbols>
<created>2018-01-29 03:18:26</created>
</diagnostics>
<results>
<row>
<symbol>DAI.DE</symbol>
<name>DAI</name>
<currency>°C</currency>
<exchange>GER</exchange>
<price>25.06</price>
<date>01/29/2018</date>
<time>3:18am</time>
<change>0.999648</change>
<percent>2.08%</percent>
<open>26.559824</open>
<high>24.4595072</high>
<low>26.8604224</low>
<volume>16959824</volume>
</row>
</results>
</query>

Meine Fragen zu all der Bastelei ->
1. Finanz-APP vergessen, und irgendwas HTML mäßiges benutzen?
2. Die mySQL Lösung benutzen weil das auf die Zukunft des Projekt bezogen einfacher wäre?

Leider habe ich keine passendes komplett Anleitung gefunden und gehe darum diesen Weg der Anpassung. Wie man eine LED ON/OFF Schaltet gibt es viele aber nicht wie Android Daten vom Arduino holt und anzeigen kann.

EDIT:
Wenn ich den Link zu der Arduino Webserver-Seite hier einstelle meckert mein FF NoScript Addon hier der Link -> KLICK und hier das Bild dazu ->
   

Das auch wieder etwas das ich nicht verstehe...

gruß

"It is better to make a good copy, than to have a bad original"

Hardware: SainSmart Mega 2560 R3 + 3,2" LCD-Touch-Screen/Arduino Duemilanove
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.01.2018, 16:52 (Dieser Beitrag wurde zuletzt bearbeitet: 31.01.2018 16:53 von Tommy56.)
Beitrag #13
RE: Arduino <=> Nexus 7 los geht´s
Wenn Du sowieso einen Server am Laufen hast, würde ich eine MySQL-DB dort einrichten.
Der Arduino/ESP kann dann direkt da rein schreiben.
Zur Darstellung kannst Du PHP/HTML auf einem Webserver nehmen. Das holt sich dann die Daten aus der DB.
Du musst halt den Seitenaufbau so gestalten (Größe), dass er auf dem Tablett im Browser gut sichtbar ist.
Da musst Du Dich nicht mit Android-Apps rumschlagen.

Für Grafiken verwende ich jpGraph.

Das Ganze läuft bei mir im Testbetrieb (Arbeitszimmer, noch nicht Balkon) mit WEMOS D1 mini pro und BME280 seit fast einem Jahr rund um die Uhr. Ich sende Dir mal per PN einen Link.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.01.2018, 17:19
Beitrag #14
RE: Arduino <=> Nexus 7 los geht´s
@Tommy56
Ahh OK das sieht gut aus Smile aber irgendwie habe ich bereits eine kleine Sucht entwickelt mich weiter mit diesem Adroid-Studio zu beschäftigen Big Grin

Ein Webserver auch wenn er ein SODA-Apache ist (ein apache der nur so da ist) muss ja immer auch mit laufen. Mein Arduino hängt ja nur am Router und ist ja eh immer Online so lange ich meine Rechnungen Bezahle ,,,

Daher dachte ich mir ich lasse das LAN Kabel oder WiFi am Arduino und Fertig .

Den Rest wollte ich mit APP machen. Selbst wenn die APP Sicherheits- Lücken ohne ENDE hat würde ja lediglich mein Arduino Duomilanove oder mein MEGA bzw. im schlimmsten Fall halt beide Boards vom Bösen Hacker zerstört oder Ausspioniert werden können. Das Tablet hat sonst keine Funktion oder wird für irgendwas benutzt. OK das google Konto mit Fake Namen könnte noch Angriffsziel sein...

Aber stört mich das? ...mal sehen ich habe ja noch ne menge Zeit bis die neue Hardware hier ist.

"It is better to make a good copy, than to have a bad original"

Hardware: SainSmart Mega 2560 R3 + 3,2" LCD-Touch-Screen/Arduino Duemilanove
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.01.2018, 17:30
Beitrag #15
RE: Arduino <=> Nexus 7 los geht´s
Bei mir laufen die DB und der Webserver beim Provider, da ich sowieso 3 Websites dort betreibe.
Leider lassen nur wenige Provider einen Fernzugriff auf die Datenbanken zu. Meiner zum Glück ja und da kann der WEMOS direkt rein schreiben.

Wie Du das realisierst, ist allein Deine Entscheidung. Es gibt viele Wege.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2018, 22:08
Beitrag #16
RE: Arduino <=> Nexus 7 los geht´s
(31.01.2018 17:30)Tommy56 schrieb:  Wie Du das realisierst, ist allein Deine Entscheidung. Es gibt viele Wege.
Gruß Tommy

Im Namen der Konjunktur ist Webspace bei meinem ISP Extra. Aber davon abgesehen könnte ich dann gleich "Notify My Android" nutzen. Damit könnte man auf die "Schnelle" herum Spielen.
... warum ich so viel Aufwand betreibe und was ich alles umsetzten möchte...

Bereits am laufen und das seid längerem sogar stabil allerdings nur in der Sommerzeit bzw. Frühling. =>

- mein Mega2560 mit 3,2" Touch-Screen wo ich wie schon erwähnt ein ~4m² Acrylglas-Gewächshaus im Garten Kontrolliere und Überwache.
dazu gehört ->
- öffnen und schließen der zwei Dachfenster für passive Belüftung (Servo Motor)
- sammeln von daten für Temperatur, Luft feuchte, Dewpoint=wird im sketch errechnet, Bodenfeuchte u. Lichtintensität (SHT30-D + Soil Moisture Sensor, BH1750FVI)
- Bewässerung abhängig von der Boden feuchte (4xSensor 15cm tief verbuddelt)
- Regenwasser-Tank mittels Teichluftpumpe (8€ Baumarkt) regelmäßig mit Sauerstoff versorgen. (Timer)
- Alarm Meldung wenn Regenwasser-Tank Leer ist bzw wenn von Hand Nachgefüllt werden muss weil es nicht genug geregnet hat.

- die Steuerung lässt sich auf Automatik und Manual Mode betreiben.
- die 2 SHT30-D Sensoren werden einzeln abgefragt und addiert danach in einer Statistik Bibliothek als Average wieder abrufbar.
- stündliches Speichern der Sensor Daten auf SD-Card, und 1 Minute nach "Day-Change" wird der 24 Std Average errechnet und auch auf SD-CARD als Tages Average für 30 Tage gespeichert.
- für Temperatur, Luft feuchte, Dew-Point gibt es einen aus der Statistik gebildeten Graph. -> Eigentlich sollte noch PH-Wert und EC-Wert vom Regenwasser mit aufgenommen werden aber die Sensoren sind mir für eine reine Info Page zu Teuer!
- etwas Theme Style für das Touch-Screen ist auch dabei, ein kleiner Screenseaver läuft ebenfalls (analog Uhr von Henning Karlsen).

Das ist also der alte Stand von meinem Arduino Projekt welches auf dem Mega2560 läuft.
Für diesen Frühling habe ich ja eine Erweiterung bzw. Umbau zum WiFi und einem Duomilanove als "Daten-Vermittler" geplant.
Vielleicht tausche ich dazu noch die Sensoren gegen zwei ESP8266 Temperature/Humidity DHT11 WIFI Wireless Transceiver Module ESP-01/01S, das ist aber eher unwichtig und etwas für die Langeweile zwischendurch.

Jetzt wurde ich ja auch noch von der Idee mit der APP für das Nexus Tablet inspiriert.
Die Agenda hierzu ist ja so Umfangreich das es für diesen Frühling nicht zum direktem Einsatz kommen wird. Dazu habe ich wie gerade jetzt auch im nächsten Winter wieder viel Zeit um zu testen.

Im Grunde soll jetzt die APP alles können was das Touch-Screen auch kann.
- bis heute habe ich es geschafft mit diesen Toggle-Button alles was Auto/Manual am Touch-Screen Steuerbar ist, auch auf der APP läuft.
- der "Touch-Screen" bekommt dabei die Aktivity von der APP auch mit.

- jetzt kommt also das übertragen der Sensor-Daten zur APP dran, und damit ich auch gleich auf dem richtigen Kurs bin muss ich danach bzw. wärend dessen die Beiden Screens in der APP zusammen bringen.
- Ergebnis soll dann sein das ich ein Home-Screen auf der App habe wo die Sensor-Daten zu sehen sind und ein Menue wo ich in die Auto/Manual Settings kommen kann. Diese ganze WischiWaschi Technik von Apps soll auch benutzt werden aber erst mal die Basics machen und das klick Menu basteln.

Damit dürfte der Frühling vorbei sein und im Sommer wird ja nicht am PC rumgebastelt sondern im Garten gefrillt Wink

Um ein gewisses Sicherheits- Denken kommt ja heute niemand mehr herum sobald es um Funkferngesteuerte Datenübertragung geht.
Auch in diesem Projekt möchte ich da auch nicht hinter her hängen und muss mir darüber erst mal ein paar Gedanken machen.
Auch wenn das Tablet immer zu Hause liegen bleibt und ich damit quasi nur im "privatem" LAN mit meiner APP agiere will ich aber auch in der Android IDE Sicherheitsrelevante Aspekte meiner APP überprüfen und nicht gleich eine "Schweizer Käse" APP basteln Wink

Naja was soll ich noch sagen, Umsetzten ist jetzt angesagt Wink viel Text interessiert keinen...

Ich habe jetzt diese XML auch genau wie in der Anleitung gebastelt und Ich bekomme im Browser schon einmal die gleiche Anzeige.

Arduino Webserver ->
Code:
client.println(F("<?xml version = \"1.0\" encoding=\"UTF-8\"?>"));
          
          client.print(F("<query>"));
          client.print(F("<diagnostics>"));
          client.print(F("<symbols>"));
          client.print("DAI.DE,BMW.DE");
          client.print(F("</symbols>"));
          client.print(F("<created>"));
          client.print("2018-02-01 22:05:36");


und der Rest ....

So gehts aber noch nicht wirklich, Die Temperatur wird zwar im Tag <price> angezeigt wie ich sie auch übertrage. Jetzt noch der APP zu test Zwecken bei bringen das es aktuelle Daten sind damit auch eine Aktualisierung gemacht wird. Sonst steigt die APP aus mit der Meldung das nichts Aktuelles am Start ist.

...

gruß

"It is better to make a good copy, than to have a bad original"

Hardware: SainSmart Mega 2560 R3 + 3,2" LCD-Touch-Screen/Arduino Duemilanove
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Lightbulb Wie geht das? :) Mischa 4 2.640 02.06.2016 10:38
Letzter Beitrag: SkobyMobil
  2 LCDs und eins geht nur Gandalf 10 4.368 12.06.2015 13:59
Letzter Beitrag: eftokay83
Question [Problem] TFA Nexus über Arduino auf WeatherUnderground übertragen Alfonz_Ritzek 0 2.938 28.03.2015 10:42
Letzter Beitrag: Alfonz_Ritzek
  Arduino Neuling: Zugeklappten Laptop mit Arduino aufwecken + Kiste aufklappen? Ikearegal 2 8.674 02.02.2014 07:59
Letzter Beitrag: Ikearegal

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste