Event (Rückmelder) per LAN in RR auslösen

rjversluis
Site Admin
Posts: 42037
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Event (Rückmelder) per LAN in RR auslösen

Post by rjversluis » 30.10.2015, 07:20

bbernhard wrote:Robs Beispiel verwendet leider auch auch Waggons und hat auch noch einiges an Scripten drin :?:
Das ist mir zu heavy, ich geh da erstmal lieber Schritt für Schritt vor und baue Schrittweise auf.
die XmlScripts werden nicht verwendet.
Ich habe auch noch ein Beispiel mit CBUS und Lok Kennung.
You do not have the required permissions to view the files attached to this post.

Liviu M
Posts: 942
Joined: 03.12.2011, 20:44

Re: Event (Rückmelder) per LAN in RR auslösen

Post by Liviu M » 30.10.2015, 13:25

Hallo,
ich denke, ich habe es.
Im Block Eigenschaften muss man bei allen Fahrstraßen den RFID-Sensor als "ident" definieren.
Bei mir zeigt jetzt eine Lok wenn ich über Empfänger fahre. Die falsche Lok :) *), aber zeigt mindestens eine.

*) Muss sehen was mache ich noch falsch.

Danke,
Liviu
You do not have the required permissions to view the files attached to this post.

Liviu M
Posts: 942
Joined: 03.12.2011, 20:44

Re: Event (Rückmelder) per LAN in RR auslösen

Post by Liviu M » 30.10.2015, 23:34

Hallo, ich schon wieder.
Heute ist das ESP8266 (Version 7, die Platine mit 16 Pins, SPI Schnittstelle) eingetroffen.
Hab' geschafft, auf eine Lochrasterplatine eine Adapterplatine zu basteln und die erste Tests zu machen.
Ich kann das ESP8266 programmieren, die MFRC522 Bibliothek lässt sich kompilieren und die SPI-Kommunikation MFRC522 Reader - ESP8266 funktioniert.
Bleibt "nur" der WIFI Teil. Da ich noch keine solche Programmierung gemacht habe, wird das ein bisschen dauern.
Zusammenfassung: danke Bernhard!

Grüße,
Liviu

bbernhard
Posts: 1229
Joined: 23.02.2008, 19:07
Location: Villach/Kärnten/Austria
Contact:

Re: Event (Rückmelder) per LAN in RR auslösen

Post by bbernhard » 31.10.2015, 00:04

Servus Livio

Wifi hab ich hier fertig.
Ehrlich gesagt es war keine große Leistung, eigentlich nur Copy&Paste aus den Beispielen. :oops:
Doku und Beispiele findest hier:
https://github.com/sandeepmistry/esp826 ... SP8266WiFi

Code: Select all

#include <ESP8266WiFi.h>

const char* ssid     = "Baptist_Wlan";
const char* password = "xxxxxxxx";
const char* RocrailServer = "10.0.0.4";
const int port = 8051;
IPAddress ip(10,0,0,110);
IPAddress gateway(10,0,0,38);
IPAddress subnet(255,255,255,0);


void setup() {
  Serial.begin(115200);
  delay(10);
  // We start by connecting to a WiFi network
   WiFi.begin(ssid, password);
   WiFi.config(ip, gateway, subnet);
   while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");  
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  delay(1000);
  WiFiClient client;
  if (!client.connect(RocrailServer, port)) {
    Serial.println("connection failed");
    return;
  }
  
  client.print("XML Message to Rocrail");
  delay(10);
  
  Serial.println();
  Serial.println("closing connection");
}
RFID über SPI auslesen funktioniert auch hier. Der Demo Sketch ging auf Anhieb. Bisl umgebaut und gut. Den hab ich zum debuggen noch am original Arduino, da hier hochladen des Codes schneller ist.
Hab heute den ganzen Abend die die Doku gewälzt, da ich eigentlich lieber I2C benutzen würde. Dann könnte man nämlich das kleien ESP8266-01 Modul nehmen. - Ich Liebe den kleinen, das Teil ist einfach nur geil.
Da wir ja nur die RFID ID brauchen und keine Datenblöcke und auch nicht schreiben sollte sich der Aufwand dies selbst zu coden in Grenzen halten.-
Aber schon alleine rausfummeln welche der vielen vielen Konfigurationsregister nun wie gesetzt sein müssen ist nicht ohne. 1-2 Abende werde ich noch in I2C investieren, wenns nicht geht bleib ich bei der fertigen SPI LIbrary.

Mit Rocrail selbst hatte ich aber noch kein Glück.
Hab aber nur mal ganz kurz mal deinen Tip mit dem IDENT probiert, ging trotzdem nicht, dann hab ichs wieder gelassen.

schöne grüße
bb
Last edited by bbernhard on 31.10.2015, 00:21, edited 2 times in total.

Liviu M
Posts: 942
Joined: 03.12.2011, 20:44

Re: Event (Rückmelder) per LAN in RR auslösen

Post by Liviu M » 31.10.2015, 00:15

Hallo Bernhard,

danke für den Code, werde ihn demnächst probieren.
Wollte nur noch sagen, das alle RC522 fertige Platine die ich bei den Chinesen gesehen habe, haben nur die SPI Schnittstelle. Theoretisch kann man die Schnittstelle ändern, praktisch ist der verantwortlicher Pin an der Masse unter dem Chip verbundet und, mMn, nicht möglich umzuverdrahten.

Gute Nacht,
Liviu

PS Auf meiner Tablet funktioniert die Rechtschreibkorrektor nicht. Schuldigung für die extra Massakrierung der Deutsche Sprache.

bbernhard
Posts: 1229
Joined: 23.02.2008, 19:07
Location: Villach/Kärnten/Austria
Contact:

Re: Event (Rückmelder) per LAN in RR auslösen

Post by bbernhard » 31.10.2015, 00:33

Liviu M wrote: nicht möglich umzuverdrahten.
.
Ohh, da ist aber blöd. Hab mir nur die NXP Specs angesehn und noch gar nicht überprüft ob man auf der Platine auch drankommt.
Naja, dann solls halt SPI und ein anders ESP6388 Modul sein. Spart Arbeit :-)

-- vorher wollte ich den Umgekehrten Weg gehen und die freien GPIO am ESP8366-01 für SPi zugänglich machen. Aber es kahm wie es kommen mußte, ein blöder Lötkurzschluß und beim reparieren hab ichs dann ganz versaut. In der Fa. unterm Mikroskop geht sowas leidlich gut,zu löten, aber zu Hause nur mit der Lupe wars nix.

gute Nacht
bb

bbernhard
Posts: 1229
Joined: 23.02.2008, 19:07
Location: Villach/Kärnten/Austria
Contact:

Re: Event (Rückmelder) per LAN in RR auslösen

Post by bbernhard » 01.11.2015, 01:05

Liviu M wrote:Hallo,
ich denke, ich habe es.
Im Block Eigenschaften muss man bei allen Fahrstraßen den RFID-Sensor als "ident" definieren.
Bei mir zeigt jetzt eine Lok wenn ich über Empfänger fahre. Die falsche Lok :) *), aber zeigt mindestens eine.

*) Muss sehen was mache ich noch falsch.

Danke,
Liviu
Servus ihr beide

So, nachdem mir Rob heute im Chat so 100% selbstsicher gesagt hat das es funktioniert hat es mir keine Ruhe gelassen.
Nach 2 Stunden Autobahnfahrt hab ich mich nochmals zur Moba gesetzt und nun nach weiteren 3 Stunden auch endlich die Lösung gefunden. :P
Unbenannt.JPG
Dies beiden Optionen waren bei mir ausgeschaltet. Darum gings nicht.
Alles andere ist egal, auch egal ob der Sensor nun als "RFID" oder im Block als "Ident" konfiguriert ist, alles wurscht.
Nur diese beiden Hacken sind der Trick. Hab da beim rumprobieren oft drübergelesen, aber nicht daran gedacht sie einzuschalten da ich ja gar kein Bidi im eigentlichen Sinne habe.
Ich verwende ja die RCP Schnittstelle und die ist doch eher zur Kommunikation zwischen RR-Server und Clients gedacht.

Vielleicht ist es ja bei neueren Installationen default eingeschaltet. Meine Konfiguration ist schon sehr alt, damals gabs noch gar kein Bidi.
Naja, Ende gut alles gut. Jetzt kanns weitergehen mit dem eigentlichen Sinn der Übung. :beer:

gute Nacht
bb
You do not have the required permissions to view the files attached to this post.

Liviu M
Posts: 942
Joined: 03.12.2011, 20:44

Re: Event (Rückmelder) per LAN in RR auslösen

Post by Liviu M » 01.11.2015, 08:36

Hallo Bernhard,

ich kann bestätigen - bei mir sind beide Haken gesetzt.

Viel Spaß beim Üben,
Liviu

Liviu M
Posts: 942
Joined: 03.12.2011, 20:44

Re: Event (Rückmelder) per LAN in RR auslösen

Post by Liviu M » 01.11.2015, 13:09

Hallo Bernhard,

mittlerweile habe ich geschafft, den UID an Rocrail über WIFI zu schicken.
Da ich nicht so viele Protokolle rund meine Anlage pflegen möchte, habe ich mit dem ESP8266 eine Loconet-UDP Schnittstelle emuliert.
Das bedeutet, ich kann das Board, genau wie meine alle andere Loconet Boards, über dem LocoIO Menu im Rocrail programmieren und betreiben.
Ich überlege noch, ob ich ein extra Webserver für die Programmierung einbaue.

Jetzt überlege ich, was ich noch mit dem kleinen Board implementieren kann. :mrgreen:

Danke nochmal dass du mir die Neugier über dem Board (ich kannte es schon, aber hat mir nichts gesagt) aufgewacht hast.

Grüße,
Liviu

PS Ich hänge mein Sketch an, falls es jemandem interessieren sollte.
You do not have the required permissions to view the files attached to this post.
Last edited by Liviu M on 13.12.2017, 14:59, edited 1 time in total.

bbernhard
Posts: 1229
Joined: 23.02.2008, 19:07
Location: Villach/Kärnten/Austria
Contact:

Re: Event (Rückmelder) per LAN in RR auslösen

Post by bbernhard » 01.11.2015, 23:22

Servus Liviu
das mir ein paar Anwendungsbeispiele eingefallen sind hast du ja schon gesehen. Ehrlich gesagt bis gestern kannte ich die auch nicht, hab mir nur während einer Autofahrt bisl was überlegt.

Da du über Loconet gehst verhält sich dein Modul vermutlich so wie ein natives Loconet Modul, d.h. Konfiguration ist gleich wie bei den anderen Loconet Modulen.
Das ist für Leute die bereits Ln haben sicher ein Vorteil, da es keinen Bruch in der Userbillity gibt.

Ich hab einfach den Rückmeldernamen hard einkompiliert. Das ist zwar nicht schön, aber da man ja sowiso zur Anpassung ans lokale Wlan neu kompilieren muß (SSID und WLan Passwort müßen ja vergeben werden, ebenso wie die IP des RR Servers) sollte dies kein allzu großes Problem sein.
Man könnte dies wohl vermutlich irgendwie automatisieren, und mit einer fixen Syntax für Meldernamen arbeiten, aber mir reichts erstmal so.

schöne Grüße
bb

bbernhard
Posts: 1229
Joined: 23.02.2008, 19:07
Location: Villach/Kärnten/Austria
Contact:

Re: Event (Rückmelder) per LAN in RR auslösen

Post by bbernhard » 01.11.2015, 23:44

Nochwas: ich hab mir eben deinen Code kurz angesehen, da ist mir folgendes aufgefallen:
if(!delaying){ //Avoid to many/to fast reads of the same tag
Ich hab da so gelöst, das nur zu RR gesendet wird wenn sich die gelesene ID ändert. So wird automatisch verhindert das die Zentrale mit Meldungen geflutet wird.
Sorry, will nicht kritisieren, es ist mir nur beim schnellen durchscrollen ins Auge gesprungen.

Ist aber ganz schön aufwendig so ein Loconet Client.
Über RCP ist das ein versenden der Nachricht Einzeiler. Naja, andererseits auch keine Kunst bei hardgecodeten Meldernamen ... :oops:

gute Nacht
bb

Liviu M
Posts: 942
Joined: 03.12.2011, 20:44

Re: Event (Rückmelder) per LAN in RR auslösen

Post by Liviu M » 02.11.2015, 07:24

Hallo Bernhard,
genauso habe ich am Anfang auch gemacht. Aber die Tests habe ich mit einem Kreis, einer Lok und einem RFID-Sensor gemacht. Überraschend weise :mrgreen: habe ich die Lok nur ein Mal detektiert.
Bei Loconet aufwändig ist der Empfang Teil, aber ich wollte die neue Schnittstelle mit den alten kompatibel machen.

Grüße,
Liviu

vikr
Posts: 522
Joined: 20.05.2012, 09:53

Re: Event (Rückmelder) per LAN in RR auslösen

Post by vikr » 14.11.2015, 09:40

Hallo Liviu,
Liviu M wrote:Hallo Bernhard,

mittlerweile habe ich geschafft, den UID an Rocrail über WIFI zu schicken.
Grüße,
Liviu
Die WiFi-Schnittstelle mit dem ESP8266 ist zwar irgendwie elegant, insbesondere wegen der Unterstützung des eingebauten Controllers durch die Arduino-IDE. Aber eigentlich hätte ich das Ganze lieber über Kabel gebundenes LAN. Ich kenne nur die knapp 10 Euro teuren LAN-Shields für Arduinos und das kaum erhältliche - und wenn dann ziemlich teure Arduino-Ethernet-Board. Beide belegen zudem i.d.R. die PINs die man auch für die Kommunikation mit dem RC522 nutzt.

Kennst Du sowas wie den ESP8266 - aber statt für WiFi - für Ethernet?

Beste Grüsse

vik

Liviu M
Posts: 942
Joined: 03.12.2011, 20:44

Re: Event (Rückmelder) per LAN in RR auslösen

Post by Liviu M » 14.11.2015, 14:06

Hallo Vik,

vielleicht schafft jemandem mit ein Ti Connected Launchpad *), ich bin nicht gut genug.
Für die Programm-Entwicklung gibt mehrere Möglichkeiten, dazwischen auch eine Arduino ähnliche Umgebung - Energia,
Ich habe irgendwann versucht, mit dem Board ein SRCP Server zu entwickeln, habe aber gescheiter wegen fehlende Socket Unterstützung seitens Energia.
Danach habe ich probiert, gleiche wie mit ESP8266 auf Kabel zu implementieren. Leider war ich nicht in der Lage, broadcast UDP-Pachete zu empfangen **). In eine Lösung wäre ich auch interessiert.

*) Ganz billig (~25 Euro) ist das Board auch nicht, kann aber einiges mehr als ein Arduino.

Grüße,
Liviu

[EDIT]
**) Ich soll RocNet studieren, vielleicht kommt von hier etwas. Das Board hat mehrere i2c mehrere SPI & mehrere UART Kanäle.
[/EDIT]
Last edited by Liviu M on 13.12.2017, 15:02, edited 1 time in total.

bbernhard
Posts: 1229
Joined: 23.02.2008, 19:07
Location: Villach/Kärnten/Austria
Contact:

Re: Event (Rückmelder) per LAN in RR auslösen

Post by bbernhard » 14.11.2015, 17:48

Servus vic

Unmittelbar empfehlen kann ich dir nichts, aber schau mal bei Olimex:
https://www.olimex.com da gibts jede Menge uC Evaluation Boards.

mein Brötchengeber bietet zb. sowas an:
http://www.ehitex.de/evaluation-boards/ ... x-kit?c=40
über dieses Board kannst dich hier schlaumachen:
http://www.infineonforums.com/forums/8-XMC-Forum


alternativ wäre vieleiht noch die Anbindung per USB - müßtest allerdings vorher Rob fragen ob das klappt.
- oder einen USB/LAN Adaper
Du sagst die Pins für RC522 sind beuim Arduino-LAN Sheeld schon belegt. Hmm das ist doch egal, an SPI kannst ja mehrer Client anhängen. Die Auswahl mit welchem zu kommunizieren ist erfolgt ja über CS (Chip Selecet) und dieses kannst ja auf einen beliebigen GPIO legen.

gruß
bb

Post Reply

Return to “Zentralen (DE)”