ich bin in meinem Wetterserver nach dem Einsatz des dritten Arduinos ins Stocken geraten. Hier geht es um die Komunikation von Sensorwerten die zuvor über Xbees transportiert wurden.
Mit im Spiel ist ein Ethernet Shield und ein Dipslay.
Das Display blockiert mir den I2C Port, Versuche den Displayanschluss auf PIN 8 und 9 (mehr ist nicht frei) umzulegen waren ohne Erfolg.
Da das Gegenüber ein Mega ist, dachte ich an die Verbindung der seriellen Schnittstellen, aber das ging absolut nicht.
Die Soft Serial Libray kann (so habe ich das gelesen) nicht konditionell eingebunden werden (..isdata() )
Kann ich bei dem Arduino über Port 8 und 9 irgendwie kommunizieren ?
df6ih:
Das Display blockiert mir den I2C Port, Versuche den Displayanschluss auf PIN 8 und 9 (mehr ist nicht frei) umzulegen waren ohne Erfolg.
Wieso sollte das Display den I2C Port blockieren? I2C ist ein Bus interface und kann (ohne erweiterung) bis zu 127 Geräte ansprechen. Da kann locker auch ein Arduino mit dranhängen.
Na der Port als solcher, 4 und 5. Hatte versucht das auf 8 und 9 zu tauschen, das hat aber nicht funktioniert.
Da am Xbee ein Mega hängt, werde ich das Display dem Mega verordnen. Ethernet shield und Xbee arbeiten nicht zusammen, was ein weiteres Gerät erforderlich gemacht hat.
Ich berichte weiter. Mal sehen ob ich die Verbindung über IIC auf Anhieb hinbringe. Danke für die Hilfe bis hier...
Ooooooooooooops ... schlechte Recherche hat ihren Tribut gefordert. Danke uwefed für den Hinweis ! Ich war von den beiden Mega 1280 verwöhnt, die den I2C Bus freigestellt haben.
Aus jedem Verlust entsteht ein Gewinn, das Display hat den Arduino gewechselt und ich kann nun bestätigen, dass die digitalen Ports frei wählbar sind. räusper
Was mich nun beschäftigt ist der Umstand, dass ich mit den normalen Schnittstellenabfragen beim Mega1280 die von den Xbees perfekt transportierten Daten nicht erreiche. (Ich sehe sie im Monitor auf dem Terminal am Ende der Funkstrecke)
Habe nacheinander alle (1....3) seriellen Schnittstellen auf >0 abgefragt und in die Abfrageschachtel eine einfache Ausgabe gelegt um sicher zu sehen wo Daten anliegen, aber das ist bisher erfolglos. Ich meine sagen zu können, dass Serial1 bis Serial3 leer sind, also keine Daten im Puffer haben. Sicherheitshalber auch den Serial Monitor abgehängt, ohne Erfolg.
Daraus resultiert die Frage: Wo genau treffen die Daten auf ? Die Xbees sitzen auf DFrobot shields.
Die Xbee Funkstrecke transportiert die Sensor Werte perfekt. Die Krux ist aber, dass das Xbee anscheinend ausschließlich den TX Pin des Arduino mit den empfangenen Daten belegt.
Zunächst hatte ich alle Serial.reads von 1-3 am Mega 1280 ausprobiert und nirgendwo Erfolg.
Seit ich Tx1 nach RX2 gebrückt habe, kann ich Daten empfangen.
Diese will ich ins Internet senden und für das LCD Display aufarbeiten.
Einfachere Frage wäre also: Wie erhalte ich aus dem Empfang einen String den ich dann weiterbearbeiten kann und auf dem Display anzeigen. Ich habe alle möglichen google Anstrengungen unternommen um das für mich nachvollziehbar zu "ergoogeln".
Ich hänge mal einen Anhang der nicht richtig funktionstüchtigen Routine an (stark verhunzt durch 100erte Versuche )
Also: Auf keinem der Empfangspins gibt es etwas vom Xbee zu lesen, das wäre was ich erwartet hätte.
Anstatt dessen kommt der Empfang vom Xbee direkt auf den TX der seriellen Schnittstelle. Da kann ich den aber nicht abfangen, deswegen habe ich TX -> RX2 gebrückt.
Die ankommenden Daten sollen ja erst in dem Arduino im Haus aufbereitet werden und nicht nur über die Schnittstelle wieder rausgeschickt.
Dumm dabei ist eben, dass ich es nicht schaffe die Bits zu sinnvollen Texten zu verarbeiten, oder eben Sensorwerte. Da fehlt mir vermutlich das Handshake zwischen den beiden Schnitstellen.
Habe ich etwas übersehen? Wie sonst kann ich die Xbee Daten in den Ram des Empfangsarduinos befördern ? Irgendwo hatte ich etwas von einer Xbee Libray gelesen, würde die helfen ?
Ja , Du hast was übersehen. Du beschreibst wage die Verbindungen aber nicht welche HW (Boards) Du wie verbindest. Das macht Dir helfen schwer.
Grüße Uwe
Board1: Draussen, Mega 1280 mit Xbee2 und Sensoren (Wind, Temp, Feuchte .... )
Board2: Innen, Mega 1280 mit Xbee2 mit LCD Display 20x4 und geplanter Weiterverbindung nach Board 3
hinzu soll noch
Board3: Uno mit Internetshield
Die ersten beiden sind aufgebaut, ich erhalte die draussen abgesendeten Werte innen auf der Schnittstelle zum PC. Ich habe keinen Schimmer wie ich die auf der Schnittstelle von Board2 befindlichen Daten in Board2 weiterverarbeiten könnte, streng genommen witschen die über die Schnittstelle weg.
Welchen Ansatz kann ich den aufgreifen um das Xbee IN den Board2 Speicher (sprich in den sketch verarbeitbar) auszulesen ? Hilft mir die Xbee Libray dabei ?