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
11.02.2018, 06:30
Beitrag #25
RE: Arduino <=> Nexus 7 los geht´s
(04.02.2018 11:02)Tommy56 schrieb:  Ein Hinweis zur externen Antenne: Wenn Du die nutzen willst, musst Du den Widerstand zwischen interner Antenne und Anschluss umlöten.

Gruß Tommy
Ahh Super Tipp Danke Schöööön Cool ..........

Ich habe jetzt einige Experimente hinter mir und kann nur wenige Resultate liefern. Blush Und jetzt kommt schon wieder eine menge Text Tongue

Das Wemos D1 Shield habe ich zum laufen bekommen aber noch nicht Geprüft ob die Verbindung zum Router permanent bestehen bleibt. Unabhängig davon ob Daten Transfer besteht.
Hier könnte ja ein Fehlerteufel versteckt sein der einen im Kreis laufen lässt.

Leider habe ich jetzt mit den neuen Sensoren die ja auf dem "Wire" Bus Kommunizieren Probleme mit dem Wemos D1 Shield.
Hier habe ich das Wifi Shield als Master festgelegt, damit die APP Vorrang hat. So bilde ich mir das wenigstens ein.

Dabei scheint es einen Konflikt zu geben mit den Sensoren, denn mit den alten DHT11 Sensoren die nicht auf dem "Wire" Bus Kommunizieren bekomme ich, sobald die APP "Activity" das verlangt, die Daten im Serial Monitor auf dem Wemos D1 Angezeigt.

Ich dachte immer der "Wire" Bus ist so was wie "Token Ring" und der Fehler der sich mir aufdrängt ist eben ->
Das der Slave die Daten über den "Wire" Bus gleichzeitig Kommunizieren muss, aber das Wemos D1 ja ebenfalls gerade in der Kommunikation mit dem Slave steckt und auf die Daten wartet.

Ich habe bereits probiert ->
Einfach die Sensoren vom Master (Wemos D1 Shield) selbst zu besorgen, was auch prima klappt. Aber dann kann der Slave nicht mehr Selbstständig die Sensoren Ansprechen.
Anders herum kann kann das Wemos D1 auch nicht Selbstständig die Sensoren Ansprechen.
Damit das mit den Sensoren jeweils klappt muss ich entweder den Slave oder den Master vom "Wire" Bus abklemmen.

Ich dachte auch schon, vielleicht im Slave den Lese-Takt erhöhen und nur den Speicherinhalt an das Wemos schicken.
Aber das erscheint mir unnötig da es nicht den Fehler behebt, das Sensoren, Master und Slave auf dem "Wire" Bus Probleme miteinander haben wenn die zusammen angeklemmt sind.

Also habe ich hier noch bedarf an einem Lösungsweg, so lange muss ich eben, um mit der APP voran zu kommen, die alten Sensoren benutzen.
Ich hoffe das ich vielelicht das Wemos D1 auf den SPI lege kann damit das Problem der Live-Abfrage auch klappt.

Mein aktuellen Sketch dazu habe ich mal im Anhang gelegt.
Die Basis für den Sketch kommt von der Installation der Board Infos über die Boradmanager Variante wie auf der Hersteller Seite beschrieben ist. (WiFiWebServer Lib -> Beispiel)

Meine aktuelle APP habe ich auch mit in den Anhang gelegt.
Ich denke das die Import Funktion vom Android Studio das Teil korrekt Importiert, hier funktioniert der Import prima.
Schleißlich habe ich die Export Funktion dafür benutzt, der Datei Ordner ist 6MB groß und damit hier nicht mehr kompatibel.
Kann natürlich bei Interesse per Mail übermittelt werden. Ich halte eben nix von diesen Cloud Servern wo jeder seine Daten ablegen soll.

Ich habe bei der APP einmal den Inspector (Lint) durch laufen lassen und es gibt da noch ein paar Kleinigkeiten die sich aber im laufe der APP Entwicklung von selbst erledigen werden.
So die Hoffnung nach dem ich etwas voraus gelesen habe....

Dabei geht es in der Hauptsache um die "AUTO Backup" Geschichte. Das ganze Thema Debuging ist sowieso noch ne extra "Reise" die noch vor mir liegt.

Die Automatik Manual Activity funktioniert über das "Action Menu" insoweit das, ->
sobald die APP die Verbindung korrekt aufgebaut hat die Manual Pins korrekt geschaltet werden.
Hier ist natürlich noch der APP "Activity" beim Start zu verraten wie der Aktuelle Staus ist.

Zur Zeit ist die APP ja noch "Dumm und Dämlich" daher kann es passieren das beim herum Spielen ein Button zwar auf der APP funktioniert aber der PIN nicht reagiert weil er schon den Zustand hat den er bekommen soll,
Denn das Touch-Screen ist ja auch ein Interface und soll erst mal noch activ bleiben.
Das Verhalten erledigt sich natürlich wenn die APP "Activity" den aktuellen Staus kennt usw.

Ich habe in den nächsten Wochen nur wenig Zeit meine "APP-Activity" weiter aus zu bauen.
Die nächsten Schritte sind wohl erst mal die Aneignung von Wissen über den SPI Bus, damit das Wemos D1 nicht am "Wire" Bus hängen muss, und ich die Sensoren benutzen kann wie ich das am Anfang gedacht hatte.

gruß

HIER DIE ANHÄNGE

.zip  WiFiWebServer.zip (Größe: 2,83 KB / Downloads: 35)

.zip  EasyGrow_11.2.18.zip (Größe: 83,51 KB / Downloads: 56)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.02.2018, 10:34
Beitrag #26
RE: Arduino <=> Nexus 7 los geht´s
Der I2C-Bus iust kein Tokenring.

Wenn Du am I2C 2 Prozessoren hast, die selbständig tätig werden, dann hast Du einen Multimasterbetrieb. Das geht auch, es dürfen nur nicht beide gleichzeitig Master sein wollen. Ich habe es noch nicht probiert.

Der DHT hängt aber nicht am I2C, d.h. den kann der Slave unabhängig in bestimmten Zeitabständen abfragen und sich die Werte merken.
Wenn der Master diese anfordert, werden dann diese Werte gesendet.
Damit kommt der 2. Prozessor nicht in die Verlegenheit, Master spielen zu wollen.

Echte I2C-Sensoren sollte dann der Master selbst abfragen. Auch dort würde ich in festen Zeitabständen die Werte erfassen und die gespeicherten Werte der App übergeben.

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
13.02.2018, 03:09
Beitrag #27
RE: Arduino <=> Nexus 7 los geht´s
(11.02.2018 10:34)Tommy56 schrieb:  Der I2C-Bus iust kein Tokenring.
...
Gruß Tommy

Alles klar, Idea
Danke für die ausführliche Beschreibung. Multi-Master muss jetzt natürlich auch nicht unbedingt zur Anwendung kommen. Aber gut zu wissen das es da auch noch Möglichkeiten gibt.

Am Wochenende habe ich mich wieder mit der APP beschäftigen können.
Da war ja noch ein Anfänger Fehler in der Manifest.xml, der daher rührt das ich ein CP Coder bin, ...wenigstens bin ich kein SoDa Coder Wink

1,
Die Manifest.xml hatte einen Fehler der 2 Luncher Icon Erstellt hatte.
Das habe ich schnell beheben können indem ich den passenden identFilter eingebaut habe. Bei der Aitomatik/Manual Avtivity reicht ja ein View ohne irgendetwas anderem.

2. Die Warungen vom Inspector LINT habe ich bis auf die Backup-Warnung allle gesäubert.
Bei der Backup Geschichte hatte ich schon in Vorlauf beim Testen und kennen lernen der IDE schlechte erfahrungen gemacht.
Daher spare ich mir das Automatische beheben der Warnung erstmal für später auf.

3.
Bei den ToggleButtons war es bisher so das Automatik nicht Vorrangig Programiert war, das habe ich, wenn auch wieder mit viel Lesen und Probieren, auch erledigt.

Jetzt hat die Automatik Vorrang und der Manual-ToggleButton ist erst "Clickable" wenn Automatik AUS ist.

Der kleine Hacken den es hier noch gibt ist das beim Manual-ToggleButton die Grafik noch nicht zurückgedsetzt wird falls er beim Umschalten aktiviert war.
Das bekomme ich aber auch noch auf den "Schirm" wie das Funktioniert. Wichtiger ist mir jetzt das die APP nicht vergisst welche Button Aktiv waren/sind und welche nicht. Beim Starten der APP ist halt noch alles auf "AUS"

Im Anhang habe ich wieder mein Schaffen abgelegt. Der Arduino-Teil hat sich nicht geändert, da habe ich nur im Slave die Verarbeitung der Incommings von Auto/Manual so gestaltet das auch hier die Automatik Vorrang hat.

Das macht die Sache sicherer da Arduino 230V Schalten soll. Habe mir noch überlegt das Gartenlicht und Terassen Licht auch vom Tablet aus zu schalten.
Dazu besorge ich mir Funksteckdosen, da schaue mal was auf dem Gebiet schon von den Herstellern auf dem Markt ist. Nächstes Jahr Tongue

Das war mein Wochenende Wink
...ich halte mich weiter Hart und bleibe am "Start". Macht ja auch Spaß...


Angehängte Datei(en)
.zip  EasyGrow_13.2.18.zip (Größe: 83,71 KB / Downloads: 67)

"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
19.02.2018, 03:35 (Dieser Beitrag wurde zuletzt bearbeitet: 19.02.2018 03:38 von ArduTux.)
Beitrag #28
RE: Arduino <=> Nexus 7 los geht´s
An diesem Wochenende konnte ich mich um die TooglButton kümmern.

Jetzt wechselt das Image vom Manual-Button wenn Automatik aktiviert wurde zum "OFF-Image".
Wird Automatik wieder Deaktiviert so zeigt uns der Manual-Button auch wieder das passende Image seines letzten Staus an.

Die Manual-Button können natürlich noch nicht wissen ob Arduino im Automatik Mode den Pin geschaltet hat.
Zumindest wird schon "set.Clickable(true/false)" und der letzte Staus vom Button wieder korrekt angezeigt sobald Automatik Aktiviert/Deaktiviert wurde.

Ich habe ja im Arduino Sketch die wichtige Gegenseilteige Verriegelung programmiert.
Das ist zwar nur eine Software Verriegelung aber besser als nix. Eine LED ist ja nicht so gefährlich wie 230V, oder höher, Wechelspannung.

Ich habe nicht die eleganteste Lösung für die ToggleButton gefunden. Obwohl ich mir wirklich mühe gegeben habe Rolleyes die Android Developer Seite zu verstehen.

Ich musste um in der "OnClick" Funktion zu bleiben so was wie Globale Variable Anlegen.
Sicher funktioniert das bestimmt auch irgendwie "magischer" in der "xml" und muss nicht mit in die Funktion eingebaut werden.

Da habe ich auch irgendwann keine Lust gehabt weiter zu Suchen um noch mehr zu Lesen. Es Funktioniert so, und ich konnte den Code klein halten.

Entweder konnte die toggle1.xml nicht mit den "set.Clickable(true/false)" umgehen oder "set.Enabled(true/false)", "set.Focus(true/false)" usw.
hatte keinen nutzen in der "OnClick" Methode.

Weil das "set.BackrounDrawable(R.by.Id)" nicht mehr in den neueren Android Versionen Funktioniert. Am Ende musste ich eben das Image-Switching ohne "find.by.Id blabla" in der "OnClick" Funktion umsetzten und diese Variablen im "Header" einbauen.

Ich freue mich jedenfalls das die Button erst mal so Funktionieren wie ich mir das ausgedacht habe.
Es gibt einen "Haufen" von Beispielen aber ich musste schon aus Prinzip meine eigenen Button hin bekommen.
Ich will ja noch viel mehr schaffen und wenn das so weiter geht dauert das auch noch eine ganze weile..

Im Anhang ist wieder das Ergebnis meiner Bemühungen.


.zip  EasyGrow.zip_18.2.18.zip (Größe: 111,2 KB / Downloads: 59)

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.02.2018, 01:47
Beitrag #29
RE: Arduino <=> Nexus 7 los geht´s
Update ->

Diese Woche habe ich mich mit dem Arduino-Teil beschäftigt, und dabei ist wieder etwas Text für Euch heraus gekommen.

Ich möchte an dieser Stelle noch einmal erwähnen das ich ein CP-Arduino bin, d.h. ich Bastel mir aus Code-Schnipseln immer das passende zusammen. Also wenn es im "IOT" nicht all die netten Profis, und die die es werden wollen gäbe, würde ich nicht ein einzigen Sketch zustande bekommen! Vielen Dank also an die vielen Menschen die es mir möglich machen meiner Bastel- Leidenschaft zu frönen.

Zum Projekt:
Der Automatik/Manual Status von den 5 "ToggleButton" steht auf dem Wemos für die App bereit zur "Abholung". Ist ja auch "nur" ein Boolen Array...
Die Sensoren u. Statistik- "Float-Daten" auf dem Slave (Mega2560), stehen auch auf dem Wemos D1 Mini Shield "Automatisiert" zum abholen bereit.

Dazu habe ich mir überlegt das ich mir die "Live Sensoren" vom Slave (Mega2560) auf das Wemos-Shield hole (alle 60 Sek. Messticker u. 10 Sek warten bis Daten geschaufelt werden).
Wenn die App dann die Daten haben will bekommt die eben nur was auf dem Wemos gespeichert ist.

Alle Float-Daten sind in einem "union uint8_t Array[]" Abgelegt.
Das können die meisten Boards und Shield lesen, ich hoffe ich sage da jetzt nichts falsches. Das Geschriebene Wort verwirrt nämlich oft meinen Geist...

Das soll mir zum Thema "Send Float Variable over I2C to Wemos D1 Mini" erst mal reichen.

Das Thema hatte ich etwas vorgezogen weil es in dem Projekt mit zu den Wichtigen Teilen gehört.

Jetzt muss ich halt mal sehen ob das alles auch Stabil läuft und ich jederzeit am Serial Monitor vom Wemos Shield die Daten sehen kann oder ob es irgendwo "Hängt" Was es natürlich auch tut...
Dazu muss ich mir noch ein 2. Daten/Lade Kabel besorgen das ist nervig immer die "Stöpselei". Was vielleicht auch gut ist, denn am Ende bin ich ja auch nur zum Ändern oder Kontrollieren bei Fehlern am USB vom Wemos dran.

Die App hat beim Starten noch Probleme sofort und ohne Umwege die Befehle zum Wemos zu Senden. Das Wemos-Shield reagiert noch nicht schnell genug. Es ist auch noch nicht gut abgestimmt weil die Daten ja ale 60 Sek. vom Slave abgefragt werden und das "Timeing" wohl noch Ärger macht, oder der Router ist einfach nur eine Bremse usw...

Bis ich die Daten auch an die App Senden kann dauert es ja noch. Das Thema muss ich mir ebenfalls erst "Reinziehen".

Das Schaufeln der Daten zwischen Wemos und Mega klappt schon ganz gut.
Wobei hier auch das "Timeing" und/oder die Prioritäten nicht gut auf einander abgestimmt sind.

Da muss noch einiges gemacht werden damit es kein Chaos auf dem I2C-Bus gibt.
Die Sensoren sind ja alle am I2C und ein SHDC Micro SD-Card Shield ist ja auch am Mega zum Speichern der Daten verbaut.

Es gibt auch Beispiele die ein SD-Card Shield mit am Wemos haben um dort eine kleine Webseite aubzulegen...
...mal sehen wie sich das weiter Entwickelt vielleicht muss ich darauf zurück kommen damit die App die Daten, ohne eine MySQL Lösung, Mundgerecht rein geschaufelt bekommt.

Langsam komme ich in die Phase in der ich die Profis um Hilfe bitten muss damit ich auch einen Stabilen Sketch hinbekomme.
Viele "Bugs" und Fehler im Quellcode sind ja erst nach einer bestimmten Laufzeit überhaupt erst zu erkennen.
Da sind immer eine Menge Überraschungen im Bereich CPU-Taktung, Zykluszeiten usw. zu erwarten.

Und dafür reicht mein Wissen bei weitem nicht aus um alleine damit klar zu kommen.
Ich habe schon Probleme eine vernünftige Struktur in mein Arduino Sketch ein zu Pflegen.
Und da sollte ich auch ansetzten wenn es um Hilfe von den Profis geht.

Von den möglichen "Bugs" in der Hardware will ich jetzt lieber nicht reden...

Also bitte schaut Euch den Sketch einmal an und schuppst mich in die richtige Richtung damit ich nicht in einem Code-Chaos unter gehe, und das Projekt nicht in der Bastelkiste vergessen wird.

Ich habe in der Dokumentation vom Sketch meine ersten wichtigsten Fragen mit aufgeschrieben.

Achso, ich muss hier ja auch noch extra erwähnen das ich keine Verantwortung für das Handeln anderer übernehme!
Und ich somit die Dateien hier im Anhang problemlos Einstellen kann.

Zum Thema Elektrischer Einrichtungen kann ich nur sagen "Strom und Spannung ist gefährlich das sage ich Euch ganz ehrlich!"

Falls jemand Plant eine Steckdose mit Arduino zu Schalten. Bitte immer die Elektrofachkraft Eures Vertrauens fragen!

Im Anhang aktueller Arduino Teil und die aktuelle App.

Was noch zu erwähnen ist, die Grafiken für die ToogleButtons sind von dem netten Menschen Potzblitz7 gebaut worden.
Das "Starter" Icon ist aus den Pool der Unix Gemeinde entsprungen und schon so lange hier auf meinem PC das ich keinen Autor mehr ermitteln konnte!
Ich glaube das ich das damals aus so einer Kollektion von Vorlagen für Gimp gezogen hatte.
Ausser dem habe ich da mit Gimp schon dran herum gebastelt... Das war also auch wieder so eine Bastel- Sache die ich ohne Vorlage nicht hin bekommen hätte!

Zu gegebener Zeit werde ich das alles mit in den Quellcode Schreiben, die ja üblicher Weise eh die allg. Copyright Hinweise enthalten.

"Freies" Internet ist ja eh bald Vergangenheit wenn die ISP´s Ihre "Netzwerkfreiheit" an Ihre Kunden teuer Verkaufen werden! Falls die Kunden sich nicht Erheben um dagegen Vorzugehen. So lange aber werde ich weiter mein Schaffen hier Einstellen.


   


Anhang:

.zip  WemosD1_26.2.18.zip (Größe: 4,71 KB / Downloads: 46)

.zip  EasyGrow.zip (Größe: 179,23 KB / Downloads: 53)

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.02.2018, 14:03
Beitrag #30
RE: Arduino <=> Nexus 7 los geht´s
Ich werde nicht den ganzen Code durchwühlen.

Vorschläge:

Den ganzenBlock mit den nexus7.indexOf würde ich in eine Funktion auslagern.

Frage:
In Nexus7() wird nur 9 und 15 bis 37 ausgewertet. Du übergibst aber auch andere Werte. Das erscheint mir unsinnig.

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
26.02.2018, 21:36
Beitrag #31
RE: Arduino <=> Nexus 7 los geht´s
Warum verwendest du das "F" Macro, hast du zu wenig Ram auf dem Wemos?

Ein paar Zeilen Code kannst du im Sketch noch locker sparen.
Hier mal zwei Beispiele.

Code:
Serial.println();
  Serial.print(F("Server started @")); Serial.println(WiFi.localIP());

"Serial.println();" braucht es nicht

Code:
Serial.print(F("\nServer started @")); Serial.println(WiFi.localIP());

Immerhin eine Zeile eingespart.

Jetzt werden wir richtig sparsam.

Code:
void PrintAutoManualStatus()
{
  if (AutoManual[0]) Serial.println("Automatik1 is true");
  else Serial.println("Automatik1 is false");

  if (AutoManual[1]) Serial.println("Automatik2 is true");
  else Serial.println("Automatik2 is false");

  if (AutoManual[2]) Serial.println("Automatik3 is true");
  else Serial.println("Automatik3 is false");

  if (AutoManual[3]) Serial.println("Automatik4 is true");
  else Serial.println("Automatik4 is false");

  if (AutoManual[4]) Serial.println("Automatik5 is true");
  else Serial.println("Automatik5 is false");

  if (AutoManual[5]) Serial.println("Manual1 is true");
  else Serial.println("Manual1 is false");

  if (AutoManual[6]) Serial.println("Manual2 is true");
  else Serial.println("Manual2 is false");

  if (AutoManual[7]) Serial.println("Manual3  is true");
  else Serial.println("Manual3 is false");

  if (AutoManual[8]) Serial.println("Manual4 is true");
  else Serial.println("Manual4 is false");

  if (AutoManual[9]) Serial.println("Manual5 is true");
  else Serial.println("Manual5 is false");
}

Könnte man, damit es übersichtlich bleibt, so machen.

Code:
void PrintAutoManualStatus()
{
  Serial.println(AutoManual[0] ? "Automatik1 is true" : "Automatik1 is false");
  Serial.println(AutoManual[1] ? "Automatik2 is true" : "Automatik2 is false");
  Serial.println(AutoManual[2] ? "Automatik3 is true" : "Automatik3 is false");
  Serial.println(AutoManual[3] ? "Automatik4 is true" : "Automatik4 is false");
  Serial.println(AutoManual[4] ? "Automatik5 is true" : "Automatik5 is false");
  Serial.println(AutoManual[5] ? "Manual1 is true" : "Manual1 is false");
  Serial.println(AutoManual[6] ? "Manual2 is true" : "Manual2 is false");
  Serial.println(AutoManual[7] ? "Manual3 is true" : "Manual3 is false");
  Serial.println(AutoManual[8] ? "Manual4 is true" : "Manual4 is false");
  Serial.println(AutoManual[9] ? "Manual5 is true" : "Manual5 is false");
}

Oder die ganze Funktion richtig klein.

Code:
void PrintAutoManualStatus() {
  for (int i = 0; i <= 9; i++ ) {
   i<5 ? Serial.printf(AutoManual[i] ? "Automatik%i is true\n" : "Automatik%i is false\n", i+1) :
   Serial.printf(AutoManual[i] ? "Manual%i is true\n" : "Manual%i is false\n", i-4);
  }
}

Schau dir mal prinf an.

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.02.2018, 01:00 (Dieser Beitrag wurde zuletzt bearbeitet: 28.02.2018 01:02 von ArduTux.)
Beitrag #32
RE: Arduino <=> Nexus 7 los geht´s
Hallo Arduinos
@Fips, Öhhmmm ja die ganzen Serial Ausgaben habe ich nur um am Wemos zu Kontrollieren.
das "printf" habe ich schon kennen gelernt, das schaue ich mir unbedingt sowieso noch genauer an. Danke für deine Mühe und den Tipp Smile

@Tommy56, Nee nicht den ganzen Code durchwühlen, soviel ist das doch nicht Tongue
Ich lagere das noch aus, hab bisher noch nicht dran gedacht. Aber klar du hast recht das ist quasi ein Standard möglichst viel in Funktionen aus zu Lagern. Wird erledigt! Big Grin

Und die Sache mit der Funktion wo ich die Befehle vom Nexus7 "Übersetzte" habe ich so gemacht weil ich sonst nicht hinbekommen habe das der Slave weiß welche Daten genau der Master im Request will.
Ich sende dem Slave vor dem "RequestFrom" also 2-14 damit der Slave das richtige Sendet. Wie macht man so was den sonst? Der Slave muss ja das richtige Array Senden. Hab Dank für deine Zeit und die Tipps

Ich bin gerade sowieso beim Slave am rum wirbeln.

Update ->
1. Ich hatte mit der "WEMOS_SHT3X.h" , die ich für meinen Clone benutze, etwas Ärger beim Kombilieren, die twi hat wegen einem Datentyp "gemeckert".
Code:
...Arduino/libraries/WEMOS_SHT3x/src/WEMOS_SHT3X.h:12:0,
...Arduino/libraries/WEMOS_SHT3x/src/WEMOS_SHT3X.cpp:1:
...packages/arduino/hardware/avr/1.6.21/libraries/Wire/src/Wire.h: In member function 'byte SHT3X::get()':
.../packages/arduino/hardware/avr/1.6.21/libraries/Wire/src/Wire.h:64:13: note: candidate 1: uint8_t TwoWire::requestFrom(int, int)
     uint8_t requestFrom(int, int);
             ^
...packages/arduino/hardware/avr/1.6.21/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);
             ^
Archiving built core (caching) in: /tmp/arduino_cache_909428/core/core_arduino_avr_mega_cpu_atmega2560_07bbb0ab290071ebbc871be83327f4a2.a

Das allerdings nur wenn ich nach Start der Arduino IDE den Sketch Kombiliere, beim direkten 2. mal Kombilieren ist die Massage von twi verschwunden.

Ich habe daraufhin in der "WEMOS_SHT3X.cpp" folgendes geändert ->
Code:
// alt -> unsigned int data[6];
uint8_t datacount = 6;
unsigned int data[datacount];
    ...
    
    // Request 6 bytes of data
    // alt -> Wire.requestFrom(_address, 6);
    Wire.requestFrom(_address, datacount);

Hat mich gewundert das die Massage nur beim 1. Kombilieren auftaucht.
Dabei ist das immer Kombiliert worden wenn er mit den Default Libs geladen ist, beim Wemos wechselt da immer irgendwas.
Das erkenne ich daran das die Keywords von der "Wire.h" von Keyword2 auf Keyword1 wechselt.

Ich habe jetzt keine Massage vom twi mehr bekommen, und die Sensor-Daten Abfrage hat sich auch nicht "beschwert". Das reicht mir erst mal...

2. Dann bin ich jetzt der Meinung das ich für die "Time/Date" Geschichte nicht die Daten dauernd von der DS3231 abfrage.
Sondern einfach nur im Setup die System Uhr mit der RTC Synchronisiere.
Da ich nicht die passende Lib "DS3232RTC" verwende klappt das mit den Default Beispielen von der "TimeLib.h" ja erst mal nicht.

Ich habe da aber etwas gefunden, und mit etwas lese "Stoff" dazu habe ich auch die richtige Zeit (UTC+1) in meinem Sketch.

Bibliothek die ich gerade nutze ->
Code:
#include <DS3231.h> // Lib von Jack Christensen (RTC=0x68/AT24C32=0x57)

Im Setup geändert ->
Code:
...
setSyncProvider(syncProvider);
  if (timeStatus() != timeSet)
  ...

Und die Funktion dazu ->
Code:
uint32_t syncProvider()
{
  dt = clock.getDateTime();
  return dt.unixtime  + 3600; // UTC +1
}

Ich bin bei den DS3231 sowieso etwas verwirrt, die Alarm Funktion scheint dauernd den i2c Bus zu Blockieren.
Mit dem Alarm ist eh Schluss wenn eine Batterie eingesetzt wird, darum nehme ich jetzt "TimeAlarms.h" die passt prima zur "TimeLib.h"
Das soll mir auch hier erst mal reichen...

Fazit:
Bis jetzt habe ich keine Unterbrechung am Serial Monitor vom Wemos gesehen.
Der Tickert fleißig vor sich hin und holt jede Minute wie "Befohlen" die "Array-Blöcke" vom Slave.
Jetzt kommen noch die restlichen Abfragen dazu, die aber nicht so dramatisch sind wie dieser Float-Datentyp.
Und dann kann es mit dem Senden der Daten an das Nexus7 los gehen.

Dazu muss ich ja erst mal wieder in dieses Android-Studio.
Ich schaue mir an welche Möglichkeiten ich dort habe Daten zu Empfangen und zu verarbeiten.
Ich hatte das Tut ja bereits bis Punkt 12 Durchgearbeitet.

Dort wird die Verarbeitung von irgendwelchen Finanz-Daten beschrieben. ("mySQL Postfach")
Da bietet es sich für mich erst einmal an diesen Array-Adapter näher zu Betrachten und zu probieren.
Dabei kann ich auch weiter in dem Tut bleiben und komme nicht so schnell vom Weg ab.

Ändern und dazu lernen kann ich im laufe der "Build-Time" automatisch.
...das habe ich in meinem ganzen Leben nicht verhindern können!
Ich lasse diesem "Phänomen" also einfach weiter freien lauf.
Dabei hoffen das es nicht so lange dauert bis ich erfolgreich Daten ins Nexus geschaufelt bekomme.

Ich lehne mich jetzt mal etwas aus dem Fenster, und behaupte das der Arduino Teil soweit fertig ist.

Ich nehme dann die Vorschläge von den Arduinos hier noch mit in den Sketch auf.
Erweitern, Verbessern usw. kann ich immer dann wenn Zeit genug ist.

Jetzt geht es also an das Senden/Bereitstellen der Daten für das Nexus. Angefangen mit dem Arduino-Teil...

Ich lese mal....

Gruß

P.S.
Das WiFi Passwort im letzten Sketch kam daher zustande weil ich Böse mit mein WLan Router gewesen bin. Aber jetzt ist alles wieder gut Smile

Den Sketch vom Slave stelle ich auch irgendwann ein, da muss ich erst mal den "Trash-Code" vom SainSmart Touch-Screen raus schmeißen.
Wenn das so weiter geht benötige ich das Display sowieso nicht mehr.
Das ist nur ein Strom und Ressourcen Fresser, zwar noch nicht alt etwa 3 Jahre aber nicht mehr Zeit gemäß ...
...hab doch jetzt, das auch schon wieder "ältere", Nexus7 Smile
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