Ergebnis 1 bis 7 von 7

Thema: Arduino: DME auslesen?

  1. #1
    Registriert seit
    02.08.2011
    Beiträge
    4

    Arduino: DME auslesen?

    Hallo zusammen,

    ich bin gerade neu hier und auch noch nicht ganz mit dem Thema DME vertraut. Ich habe bereits ein paar Beiträge zum Thema "Melder auslesen" angeschaut und dementsprechend auch versucht, den DME mittels Arduino-Board (http://arduino.cc/) auszulesen. Bisher leider ohne Erfolg...

    Hier das, was ich versuche:
    - der Arduino haengt ueber das RS232-Shield (http://www.cutedigi.com/product_info...oducts_id=4329) an meinem DME.
    - sobald ein Alarm eingeht, liest Arduino die Daten von der RS232-Schnittstelle aus.
    - die Daten werden dann ueber das Ethernet-Shield (http://arduino.cc/en/Main/ArduinoBoardEthernet) an einen Server geschickt.

    Ich benutze einen Swissphone Patron Plus. Ein paar Fragen hierzu: hat das Jemand schon erfolgreich geschafft auszulesen (über den Arduino)? Falls ja, gibt es dazu irgendwo Beispiel-Code? Welche Baud-Rate muss ich einstellen? Ist 9600 ok?

    Was ich natürlich gerne machen würde, wäre, sobald die Kiste läuft, den Code frei zur Verfügung zu stellen. Das einzige was wirklich noch fehlt, ist das auslesen der Schnittstelle. Ich weiss leider auch nicht, ob da ASCII rauskommt, oder sonst irgendwas...

    Wer mir Tipps geben kann, oder auch helfen möchte, der kann sich ja hier melden.

    Vielen Dank und einen schönen Abend!
    Rudy

  2. #2
    Registriert seit
    02.08.2011
    Beiträge
    4
    Achso, ganz vergessen: ich lese wie unten gezeigt von der Schnittstelle. Wenn ein Alarm auf den Melder kommt, sehe ich nicht 1 einziges Byte, das ausgegeben wird... Als der DME programmiert wurde, wurde darauf geachtet, dass der Melder die Daten über die Schnittstelle ausgibt. Davon hab ich mich gestern selbst noch überzeugen können.

    if (Serial.available() > 0) {
    // read the incoming byte:
    incomingByte = Serial.read();

    // say what you got:
    Serial.print("I received: ");
    Serial.println(incomingByte, DEC);
    }

  3. #3
    Registriert seit
    11.02.2011
    Beiträge
    30
    Tach Frau Schmitz ;)

    also, ich kenne mich zwar nicht mit dem arduino aus, aber - wenn ich an deiner Stelle wäre, würde ich mal folgendes machen;

    * Melder an nen echte serielle Schnittstelle hängen und gucken, was da ankommt, damit sollten spätestens dann auch die Parameter (Baudrate, etc.) für die Verbindung bekannt sein/werden...

    * Arduino-Board an ne serielle Schnittstelle hängen, ein paar Tastatureingaben tätigen und gucken, was der arduino damit macht, bzw. dein Code auf dem µC.

    Die beiden Vorschläge sollten für dein debugging durchaus hilfreich sein, je nachdem was Du noch für Technik da hast, (Oszi, Logiganalyzer, etc.) könnte später im Detail auch noch hilfreich sein.

    Ich mache hier sowas ähnliches:
    http://www.funkmeldesystem.de/foren/...t.php?p=403251

    Allerdings macht der Atmel da nix anderes, als die seriellen Daten 1:1 als virtuelle Schnittstelle per USB auszugeben. Die Verarbeitung erfolgt dann auf einem Debian - Server in einem Bash - Script, was in etwa sowas macht:

    #!/bin/sh
    while read -r line
    do echo "$line"
    # verarbeite daten aus $line nach meinen vorgaben, etc.
    done

    Der Server steht da aber eh im Gerätehaus und verarbeitet auch noch andere Aufgaben, alleine für eine DME - Auswertung wäre das wohl etwas "over-powered", da würde ich dann auch ehr etwas kleineres nehmen...

    Vielleicht hilft das ja...

  4. #4
    Registriert seit
    02.08.2011
    Beiträge
    4
    Hallo Lemur,

    entschuldige die späte Antwort. Allerdings bin ich ein bisschen schlauer geworden seit dem letzten Post.

    Ich sehe jetzt, dass der Arduino Daten senden und empfangen kann über die serielle Schnittstelle.

    Allerdings gibt der Patron Plus nichts über die serielle Schnittstelle aus. Ich habe die SerialTools für den Mac an den Melder angeschlossen und es kommt gar nichts bei einem Alarm. Ich weiss aber, dass das Tool funktioniert. Meine Einstellungen waren 9600baud 8n1.

    Da der Melder in meinem Beisein programmiert wurde, weiss ich auch das die Ausgabe von Meldungen selektiert wurde...

    Ehrlich gesagt habe ich keine Ahnung, warum das jetzt nicht funktioniert...

    Trotzdem noch mal Danke für die Antwort! Sollte ich etwas herausfinden, werde ich hier den kompletten Quelltext (oder auf einer Seite wie z.B. Github) mit Anleitung posten.

  5. #5
    Registriert seit
    26.03.2009
    Beiträge
    301
    Spannungspegel beachtet?

  6. #6
    Registriert seit
    02.08.2011
    Beiträge
    4
    Ich muss zugeben, ich kenne mich auf dem Gebiet kaum aus. Das RS232-shield arbeitet aber mit einer Spannung von 12V. Ich gehe also davon aus, dass dies korrekt ist.

    Würde es an dem Arduino liegen, würde ich ja auch vermutlich was auf dem Mac zu sehen bekommen, oder?

    Oder meinst du was Anderes damit?

  7. #7
    Registriert seit
    11.02.2011
    Beiträge
    30
    Autsch, da fehlen die Grundlagen für RS-232.
    Das kann in deinem Fall schonmal böse nach Hinten losgehen, wenn man da einfach mal was "zusammen steckt".

    Die klassische Serielle Schnittstelle am PC (wird am Mac auch so sein), nutzt Spannungspegel von -15V bis +15V, somit entspricht z.B. eine Spannung zwischen −3 V und −15 V (ANSI/EIA/TIA-232-F-1997) einer logische Eins und eine Spannung zwischen +3 V und +15 V einer logischen Null.

    Im Microcontrollerbereich, da gehört auch dein Arduino und dein Melder dazu, kann man diesen Bereich von 30V aber nicht gebrauchen, der würde im schlimmsten Fall den Microkontroller zerstören. Deshalb muss man die Pegel hier umsetzen, z.B. auf 0-5V, oder 0-3,3V - je nach Versorgung des Microcontroller-Systems. Dazu verwendet man z.B. den IC Max232, der diese Pegel dann umsetzt.

    Dein Arduino hat (wahrscheinlich) schon so einen Pegelwandler drauf, ich hoffe nur, dein Melder hat nicht die vollen 30V vom Mac abbekommen, normalerweise verwendet man in den Verbindungen zwischen Melder+PC (Hersteller nennen sowas meistens Programmierstation o.ä.), dann eben auch einfach nur einen Pegelwandler, der die Signale passend umsetzt.

    Wenn der Melder für dich Programmiert "wurde", wirds dafür ja auch so eine Programmierstation (im einfachsten Fall Kabel mit Pegelwandler) geben. Vielleicht kannst Du das für deine Versuche einfach mal ausleihen?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •