FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: John am 14 Juli 2013, 20:29:36

Titel: DINO-Arduino auf Hutschiene
Beitrag von: John am 14 Juli 2013, 20:29:36
Ich habe folgende Arduino Implementierung entdeckt:

(siehe Anhang / see attachement)


Es verfügt über:
4x DI via Optokoppler
4x Relais 230VAC/10A
1x RS485
1x Ethernet
1x USB
Power 12VDC
ATmega328

Durch das Hutschienengehäuse und die Klemmen macht es einen sehr professionellen Eindruck.
Möglicherweise kann man über die freien an der Pfostenleiste P1 gesetzten Signale noch einen
Onewire Bus anschliessen.

(siehe Anhang / see attachement)


Hat jemand damit schon Erfahrungen gesammelt ?

Zu finden ist das Teil hier
http://sigma-shop.com/product/73/web-internet-ethernet-controlled-relay-board-arduino-compatible-rs485-usb-boxed-for-din-mount-rail.html (//sigma-shop.com/product/73/web-internet-ethernet-controlled-relay-board-arduino-compatible-rs485-usb-boxed-for-din-mount-rail.html)

John




Titel: Aw: DINO-Arduino auf Hutschiene
Beitrag von: ntruchsess am 15 Juli 2013, 11:03:21
Erfahrung damit habe ich nicht. An sich ein echt cooles Teil zu einem sehr fairen Preis.

Was mir aber gleich dazu einfällt:

Ethernetanbindung mit ENC28J60 -> aktuell kann man darüber keine TCP-basierte (dauerhafte) Verbindung zum Arduino machen. Alle Beispiele die ich finden konnte, wickeln quasi-TCP in einem einzigen Packet, welches implizit die Verbindung wieder schließt ab. Damit kann man natürlich http1.0 ganz gut abwickeln (http ist je eh verbindungslos), Firmata geht darüber erst mal nicht. (Das kann sich aber durchaus bald ändern, ich arbeite gerade daran die enc28j60-Ethershield-library mit dem uip-Stack von Adam Dunkels Arduino-konform zu verheiraten). Grundsätzlich wird aber jede enc28j60-basierte Lösung einen signifikant höheren Speicherverbrauch im Vergleich zu einer einer auf dem WIZ5100 (wie das original Arduino Ethernet-shild) basierenden Lösung haben. D.h. man ich in der Realisierung weiterer Funktionalität auf dem ATMega368 schon deutlich eingeschränkt, dafür ist's halt billiger. (Mit WIZ5100 wäre das Gerät sicher mindestens 10EUR teurer).

1-Wire: Software-1-wire über die Digital-pins 1+2 geht natürlich. Je nachdem, was man an 1-Wire-chips dranhängen will kann das völlig ausreichend sein. Leider sind die Pins A4 und A5 nicht freigehalten, damit liegt die hardwareseitige I2C-Unterstützung brach und damit entfällt die Möglichkeit einen DS2480 als 1-Wire-Busmaster dranzuhängen, was die Leistunsfägigkeit als 1-Wire-Ethernet-relais deutlich erweitern würde. Eigentlich unverständlich, warum das überhaupt auf die Analog-pins gelegt wurde, das Manual spricht ja von '4 Opto isolated Digital Inputs', die wären auf den Digitalen I/Os sicher besser aufgehoben, wenn man wg. der Optokoppler eh nicht mehr sinnvoll analog messen kann. (Das soll das Teil jetzt nicht abwerten, es wird ja für Digital-Input angeboten, und dafür sind über Optokoppler galvanisch getrennte Eingänge echt eine prima Sache).

Gruß,

Norbert
Titel: Aw: DINO-Arduino auf Hutschiene
Beitrag von: John am 15 Juli 2013, 11:50:12
Hallo Norbert,
besten Dank für die hilfreichen Informationen.

Habe noch einen weiteren Vertreter dieser Gruppe gefunden unter
http://kmpelectronics.eu/en-us/products/dinoii.aspx (//kmpelectronics.eu/en-us/products/dinoii.aspx)


(siehe Anhang / see attachement)


Was hälts du davon ?
Der Ethernet Chip ist ein W5200.
One-Wire ist herausgeführt.

Schaltplan gibts unter
http://kmpelectronics.eu/Portals/0/Projects/DinoII/Doc/NETSTARTER.pdf (//kmpelectronics.eu/Portals/0/Projects/DinoII/Doc/NETSTARTER.pdf)

John
Titel: Aw: DINO-Arduino auf Hutschiene
Beitrag von: ntruchsess am 08 August 2013, 15:29:04
Zitat von: John schrieb am Mo, 15 Juli 2013 11:50Was hälts du davon ?
Der Ethernet Chip ist ein W5200.
One-Wire ist herausgeführt.

Hallo John,

Das mit dem W5200 gefällt mir schon viel besser (auch wenn mein µIP-Port für den ENC29J60 gute Fortschritte macht...). 'One-Wire herausgeführt' heißt bei dem Ding aber auch nur einen digitalen Pin mit Pullup an die Anschluss-klemme gelegt. D.h. genauso gut wie die OneWire-software-implementierung eben ist (ist ja gar nicht mal so schlecht...). Die Möglichkeit einen DS2482 als leistungsfähigen Busmaster zu verwenden ist mangels nach außem geführten I2C aber genauso verbaut. D.h. jetzt nicht, dass man damit kein 1-Wire machen kann. DS18B20-Temperatursensoren und DS2443-Counter z.B. gehen über die Softwarelösung ganz prima, das muss man ausprobieren, wo bei einer konkreten 1-Wire-installation da die Grenzen liegen. Ich habe nur die Erfahrung gemacht, dass ein echter Hardware-busmaster (wie ds2482 oder ds2480) einfach mit deutlich mehr Chips gleichzeitig auf dem Bus klarkommt (liegt vieleicht auch gar nicht mal an der Software, sondern am fehlenden 'Strong-pullup' dieser simplen 1-wire Anbindung, d.h. daran, dass bei zu vielen Devices das Timing auf dem Bus über den simplen Pullup-wiederstand einfach zu langsam wird). Ich plane den DS2482-I2C-Busmaster in der ConfigurableFirmata zu supporten, damit auch größere 1-Wire-installationen mit einem Arduino+Ethernetshield als 1-Wire-IP-Gateway nutzbar werden.

Gruß,

Norbert
Titel: Aw: DINO-Arduino auf Hutschiene
Beitrag von: John am 08 August 2013, 15:42:31
Hallo Norbert,
besten Dank für deinen Kommentar.

John
Titel: Antw:Aw: DINO-Arduino auf Hutschiene
Beitrag von: ntruchsess am 13 Oktober 2013, 11:32:31
Zitat von: ntruchsess am 15 Juli 2013, 11:03:21
Ethernetanbindung mit ENC28J60 -> aktuell kann man darüber keine TCP-basierte (dauerhafte) Verbindung zum Arduino machen. Alle Beispiele die ich finden konnte, wickeln quasi-TCP in einem einzigen Packet, welches implizit die Verbindung wieder schließt ab.
Nur falls jemand den Thread über die Suche rauszieht: Mittlerweile ist meine ENC28J60 library für den Arduino fertig: https://github.com/ntruchsess/arduino_uip (https://github.com/ntruchsess/arduino_uip). Abgesehen vom höheren Speicherbedarf der library (beim ENC28J60 muss der Arduino das ganze TCP selbst machen, beim WIZ5100 macht es der Chip) spricht jetzt nichts mehr gegen das Teil...

Gruß,

Norbert
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: mcmuller am 04 Dezember 2013, 14:25:12
Hallo Norbert,

bin tatsächlich über die Suche hierher gestolpert...

Also: Ich habe das eingangs beschrieben DINo-Teil mit ENC28J60. Ich hatte vor einer Woche mal das Gefühl, das ich's am Laufen hatte - aktuell verzweifel ich aber wieder.

In Deiner ConfigurableFirmata habe ich Pin10 auf ignore, damit kommt bei FHEM auch was an, leider nur:

2013.12.04 13:19:20 3: querying Firmata Firmware Version
2013.12.04 13:19:20 3: no response from Firmata, closing DevIO
2013.12.04 13:19:20 1: 3030 disconnected, waiting to reappear
2013.12.04 13:19:28 3: querying Firmata Firmware Version
2013.12.04 13:19:29 3: querying Firmata Firmware Version
2013.12.04 13:19:30 3: querying Firmata Firmware Version
2013.12.04 13:19:30 3: no response from Firmata, closing DevIO
2013.12.04 13:19:30 1: 3030 disconnected, waiting to reappear


Liegt's am (aktuellen) FHEM-Firmata? oder doch an dem Arduino-Sketch?

...außer den Relais würde ich wohl auch gerne onewire-Temp-Sensoren daran nutzen, habe aber noch keine Idee, wie das gehen soll...

Kannst Du mir auf die Sprünge helfen?

Grüße aus Portugal,
Gregor




Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: John am 04 Dezember 2013, 17:06:54
Hallo Norbert,
an Deinen Antworten zu Gregors Fragen bin ich auch sehr interessiert.

Dazu noch eine weitere Frage:

Ich möchte mit meinem Dino eine autarke Zusatz-Steuerung zu meiner Heizung aufbauen.
Es macht hier keinen Sinn, wenn Firmata direkt auf die IOs zugreift.
Wichtig wäre es vielmehr, dass man von FHEM aus Parameter setzen kann, die die Applikation auf dem DINO verarbeitet.

Ist FIRMATA in dieser Konstellation überhaupt sinnvoll ?
Kann man mit FIRMATA auch Parameter anstelle von IOs abfragen/setzen ?

@Gregor
die Beispiele der Herstellers laufen auf meinem DINO, bei Firmata stehe ich noch ganz am Anfang.

John
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: ntruchsess am 04 Dezember 2013, 18:39:02
Firmata ist nicht dafür entworfen um als Basis autarker Steuerungen zu arbeiten, sondern um die IOs des Arduinos effizient remote steuern zu können.
Du könntest natürlich deine Steuerung als eigenes Firmata-feature implementieren und Firmata nur als effizientes binär-Protokoll verwenden. Hier (https://github.com/firmata/arduino/tree/configurable/examples/DHT11Firmata) mal ein Beispiel, wie das grundsätzlich geht. Ob da nun Sensorwerte, oder Steuerungsparameter übertragen werden ist dem Protokoll ja egal. Also es wäre sicher machar, aber eben ziemliches Neuland.

- Norbert
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: ntruchsess am 04 Dezember 2013, 18:54:57
Zitat von: mcmuller am 04 Dezember 2013, 14:25:12
2013.12.04 13:19:30 3: querying Firmata Firmware Version
2013.12.04 13:19:30 3: no response from Firmata, closing DevIO
2013.12.04 13:19:30 1: 3030 disconnected, waiting to reappear

Schaut ja imprinzip so aus, als ob eine Verbindung (also zumindestens ein SYN-packet) reinkommen würde. Weißt Du, an welchen Pins der ENC28J60 im DINO angeschlossen ist? Die müssen alle auf ignore konfiguriert werden. Falls noch was anderes am SPI-hängt, müssen die CS-Pins dieser Hardware auch auf ignore und zusätzlich als Output/High (Analog dem CS des SD-kard-readers auf dem original Ethernet-shield, wie es in der ConfigurableFirmata Zeile 242 (https://github.com/firmata/arduino/blob/configurable/examples/ConfigurableFirmata/ConfigurableFirmata.ino#L242) gemacht wird) konfiguriert sein. Natürlich müssen die SPI-pins alle korrekt in der Enc28J60Ethernet.h angegeben sein, da ist erst Uno und Mega2560 berücksichtigt, falls die Defines für SS,MISO,MOSI und SCKL für deinen DINO existieren, dann kannst Du die da natürlich verwenden. Dann kannst du in der UIPEthernet.h verschiedene Arten von Debug-logging anstellen (dann muss das Teil an der seriellen Konsole angeschlossen sein und die Ausgaben zu sehen). Zusätzlich hilft es mit Wireshark auf der Leitung zu gucken, ob das, was dann im Debug-log auftaucht sich auch auf dem Netzwerk wiederfindet.

Zitat von: mcmuller am 04 Dezember 2013, 14:25:12
...außer den Relais würde ich wohl auch gerne onewire-Temp-Sensoren daran nutzen, habe aber noch keine Idee, wie das gehen soll...
das hier im fhem-wiki (http://www.fhemwiki.de/wiki/Arduino_mit_OneWireFirmata) schon gelesen?

Gruß,

Norbert
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: mcmuller am 05 Dezember 2013, 12:22:30
Hallo Norbert,

danke für Deine ausführliche Antwort! Ich bin jetzt ein Stück weiter. ConfigurableFirmata.ino wie folgt angepasst:
#ifdef NETWORK_FIRMATA
  // ignore SPI and pin 4 that is SS for SD-Card on Ethernet-shield
  for (byte i=0; i < TOTAL_PINS; i++) {
    if (IS_PIN_SPI(i)
        || 4==i
        || 10==i // is SPI CS on DINo ;explicitly ignore pin 10 on MEGA as 53 is hardware-SS but Ethernet-shield uses pin 10 for SS
        || 11==i // is SPI_MOSI on DINo
        || 12==i // is SPI_MISO on DINo
        || 13==i // is SPI_SCK on DINo
        || 3==i  //is RS485 TX/RX control on DINo
        || 0==i  //is RS485 RX on DINo
        || 1==i  //is RS485 TX on DINo
       ) {
      Firmata.setPinMode(i, IGNORE);
    }
  }
  //pinMode(PIN_TO_DIGITAL(53), OUTPUT); //configure hardware-SS as output on MEGA
  pinMode(PIN_TO_DIGITAL(4), OUTPUT); // switch off SD-card bypassing Firmata
    digitalWrite(PIN_TO_DIGITAL(4), HIGH); // SS is active low;
  pinMode(PIN_TO_DIGITAL(10), OUTPUT);
    digitalWrite(PIN_TO_DIGITAL(10), HIGH);
  pinMode(PIN_TO_DIGITAL(3), OUTPUT);
    digitalWrite(PIN_TO_DIGITAL(3), HIGH);
  pinMode(PIN_TO_DIGITAL(0), OUTPUT);
    digitalWrite(PIN_TO_DIGITAL(0), HIGH);
  pinMode(PIN_TO_DIGITAL(1), OUTPUT);
    digitalWrite(PIN_TO_DIGITAL(1), HIGH);


ebenfalls habe ich die Enc28J60Network.h angepasst, äh, "provisorisch auskommentiert..", um sicher zu sein, daß SPI 10-13 gesetzt ist. :

//#if defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__)
//#define ENC28J60_CONTROL_CS     53
//#define SPI_MOSI        51
//#define SPI_MISO        50
//#define SPI_SCK         52
//#else;
#define ENC28J60_CONTROL_CS     10
#define SPI_MOSI        11
#define SPI_MISO        12
#define SPI_SCK         13
//#endif;


Hier ist die Dokumentation der Pins: http://www.kmtronic.com/manuals/kmtronic_DINo_Netboard_manual.pdf (http://www.kmtronic.com/manuals/kmtronic_DINo_Netboard_manual.pdf)

So, damit komme ich in der FHEM schonmal weiter:
2013.12.05 11:10:12 1: 3030 disconnected, waiting to reappear
2013.12.05 11:10:20 3: querying Firmata Firmware Version
2013.12.05 11:10:20 3: Firmata Firmware Version: Configurable.ino V_2_05

Ich sehe das FRM-Device, kann aber die Relais (Pin 8,7,6,5) mit "define Relais1 FRM_OUT 8" zwar anlegen, aber ein "set Relais1 on" löst  zwar ein IP-Paket aus, bewirkt im DINo aber nix...

Thema Debug: ich habe in der UIPEthernet.h die #define UIPETHERNET_DEBUG aktiviert, kann aber im Serial Monitor der Arduino-IDE nix sehen. Denkfehler? Arduino ist noch "Neuland" für mich...

Thema onewire stelle ich mal zurück - das Wiki habe ich gelesen und mit einem Arduino Duo auch schon erfolgreich getestet.

Gruß,
Gregor


Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: ntruchsess am 12 Dezember 2013, 17:02:06
hallo Gregor,

hab Deinen Post leider grade erst gesehen.
Wenn Du noch nicht weitergekommen bist, dann schau doch erst mal, ob UIPEthernet auf dem Dino prinzipiell läuft. Nimm dazu z.B. die Beispielssketche der UIPEthernet-lib aus. Die Counterparts zu den Sketches habe ich als perl-tests im Verzeichnis tests/perl (https://github.com/ntruchsess/arduino_uip/tree/master/tests/perl) als perl-scripte implementiert. Alternativ geht auch der Webserver.ino-sketch von der Ethernet-library, wenn Du da den Include von SPI.h entfernst und aus Ethernet.h 'UIPEthernet.h' machst. Den kann man dann mit dem Browser aufrufen.
In der UIPEthernet.h kann man mit den dort vorhandenen Defines verschiedene Debug-varianten aktivieren (loggt dann auf das Serial-device, verbinde dazu die Serielle Konsole der Arduino-ide). Da kann man dann sehen, ob denn überhaupt was ankommt.

- Norbert
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: John am 12 Dezember 2013, 18:55:36
Hallo Norbert und Gregor,

folgende Libraries von Norbert laufen auf meinem Dino.

UDPServer

Ping Test:OK

Paket-Test
# command in der linux shell ausführen
echo -n "hello from john" | nc -4u -q1 192.168.0.6 5000    
liefert
Zitathello world from arduino

Im Monitor der Ardino IDE:
   
Zitatreceived: 'hello from john'
      remote ip: 192.168.0.1
      remote port: 38622
      beginPacket: success
      bytes written: 26
      endPacket: success
      restart connection: success

-------------------------------------------------------------
TCPServer
Auch der funktioniert.

Kommand in Shell
echo -n "hello from john" | nc -q1 192.168.0.6 1000

Ausgabe in Shell
ZitatDATA from Server!

Ausgabe im Arduino-Monitor

Zitathello from john

John
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: mcmuller am 13 Dezember 2013, 11:37:50
Hallo Norbert und John,

Die Tests mit den Beispiel-Sketches sind auch bei mir positiv. Ich vermute, es liegt an der Pin-Konfiguration. Die Debug-defines in der UIPEthernet.h führen bei mir dazu, das gar nix mehr ankommt - nicht am Netzwerk und auch nicht auf der seriellen Konsole.
Der DINo wird kurz nach dem sketch-upload von der FHEM-Firmata erkannt, dann fangen die Ausgänge/Relais auf dem DINo ungefragt an zu schalten, dann ist die Kommunikation tot. Kannst Du einen Blick auf meine ConfigurableFirmata.ino-Anpassungen werfen, und checken, ob ich da auf dem Weg bin? Kann ich die DINo-PINs manuell konfigurieren, zB:
#ifdef NETWORK_FIRMATA
  // ignore SPI and pin 4 that is SS for SD-Card on Ethernet-shield
  for (byte i=0; i < TOTAL_PINS; i++) {
    if (IS_PIN_SPI(i)
        || 4==i
        || 10==i // muss sein!!explicitly ignore pin 10 on MEGA as 53 is hardware-SS but Ethernet-shield uses pin 10 for SS
        || 11==i
        || 12==i
        || 13==i
        || 3==i
        || 0==i
        || 1==i
        ) {
      Firmata.setPinMode(i, IGNORE);
    }
  }
  //pinMode(PIN_TO_DIGITAL(53), OUTPUT); // configure hardware-SS as output on MEGA
  pinMode(PIN_TO_DIGITAL(4), OUTPUT);// switch off SD-card bypassing Firmata
    digitalWrite(PIN_TO_DIGITAL(4), HIGH); // SS is active low;
  pinMode(PIN_TO_DIGITAL(3), OUTPUT);
    digitalWrite(PIN_TO_DIGITAL(3), HIGH);
  pinMode(PIN_TO_DIGITAL(0), OUTPUT);
    digitalWrite(PIN_TO_DIGITAL(0), HIGH);
  pinMode(PIN_TO_DIGITAL(1), OUTPUT);
    digitalWrite(PIN_TO_DIGITAL(0), HIGH);
  pinMode(A5, INPUT);
  pinMode(A4, INPUT);
  pinMode(A3, INPUT);
  pinMode(A2, INPUT);
  pinMode(8, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(5, OUTPUT);

  // start up Network Firmata:
  Firmata.begin(stream);
#else


Diese Konfiguration führt bei mir in FHEM aber zu:
2013.12.13 10:33:54 3: querying Firmata Firmware Version
2013.12.13 10:33:55 3: querying Firmata Firmware Version
2013.12.13 10:33:56 3: querying Firmata Firmware Version
2013.12.13 10:33:56 3: no response from Firmata, closing DevIO
2013.12.13 10:33:56 1: 3030 disconnected, waiting to reappear
Use of uninitialized value in addition (+) at FHEM/lib/Device/Firmata/Protocol.pm line 184.
Use of uninitialized value in addition (+) at FHEM/lib/Device/Firmata/Protocol.pm line 184.
2013.12.13 10:34:48 3: querying Firmata Firmware Version
2013.12.13 10:34:49 3: querying Firmata Firmware Version
2013.12.13 10:34:50 3: querying Firmata Firmware Version
2013.12.13 10:34:50 3: no response from Firmata, closing DevIO
2013.12.13 10:34:50 1: 3030 disconnected, waiting to reappear


Confused...

Grüße,
Gregor
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: mcmuller am 13 Dezember 2013, 12:07:51
OK, ich probiere weiter - und bin nun wieder zu folgender Minimal-Konfiguration zurück:
#ifdef NETWORK_FIRMATA
  // ignore SPI and pin 4 that is SS for SD-Card on Ethernet-shield
  for (byte i=0; i < TOTAL_PINS; i++) {
    if (IS_PIN_SPI(i)
        //|| 4==i
        || 10==i // muss sein!!explicitly ignore pin 10 on MEGA as 53 is hardware-SS but Ethernet-shield uses pin 10 for SS
        ) {
      Firmata.setPinMode(i, IGNORE);
    }
  }
  //pinMode(PIN_TO_DIGITAL(53), OUTPUT); // configure hardware-SS as output on MEGA
  pinMode(PIN_TO_DIGITAL(4), OUTPUT);// switch off SD-card bypassing Firmata
    digitalWrite(PIN_TO_DIGITAL(4), HIGH); // SS is active low;

  // start up Network Firmata:
  Firmata.begin(stream);
#else

Die liefert im FHEM-LOG zumindest schon mal einen erfolgreichen Firmware-Query, um dann kurze Zeit später FHEM abzuschiessen:

Use of uninitialized value in addition (+) at FHEM/lib/Device/Firmata/Protocol.pm line 184.
2013.12.13 11:00:35 3: querying Firmata Firmware Version
2013.12.13 11:00:35 3: Firmata Firmware Version: ConfFirm251.ino V_2_05
Use of uninitialized value in addition (+) at FHEM/lib/Device/Firmata/Protocol.pm line 184.
Use of uninitialized value in addition (+) at FHEM/lib/Device/Firmata/Protocol.pm line 184.
Use of uninitialized value in addition (+) at FHEM/lib/Device/Firmata/Protocol.pm line 184.
Wide character in print at /opt/bin/fhem.pl line 650.
Use of uninitialized value in addition (+) at FHEM/lib/Device/Firmata/Protocol.pm line 184.
2013.12.13 11:00:35 3: received String_data: Unha㙮㊀㈀s㋹㰀c㛯む
2013.12.13 11:00:39 1: 3030 disconnected, waiting to reappear
Wide character in print at /opt/bin/fhem.pl line 650.
2013.12.13 11:00:46 3: querying Firmata Firmware Version
2013.12.13 11:00:46 3: Firmata Firmware Version: C㳯ʂConfFirm251.ino V_2_05
2013.12.13 11:01:45 2: CUL_HM set buero.control statusRequest
Wide character in memGzip at ./FHEM/01_FHEMWEB.pm line 366


Still confused...

Grüße,
Gregor
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: mcmuller am 02 Januar 2014, 17:59:24
Erfolg!
Also, der DINo (V1) läßt sich folgendermaßen mit der ConfigurableFirmata betreiben:


//#include <SPI.h>
//#include <Ethernet.h>

/*
* To configure 'Network Firmata' to use an ENC28J60 based board include
* 'UIPEthernet.h' (no SPI.h required). The UIPEthernet-library can be downloaded
* from: https://github.com/ntruchsess/arduino_uip
*/

#include <UIPEthernet.h>

#if defined ethernet_h || defined UIPETHERNET_H


...danach die Network-Settings ans eigene Netzwerk anpassen und alle Classes bis auf

#include <utility/DigitalInputFirmata.h>
DigitalInputFirmata digitalInput;

#include <utility/DigitalOutputFirmata.h>
DigitalOutputFirmata digitalOutput;


auskommentieren (der DINo kann nur 4 RelaisOutputs und 4 Schalteingänge (5V-12V)
Ab Zeile 229 dann:
#ifdef NETWORK_FIRMATA
  // ignore SPI and pin 4 that is SS for SD-Card on Ethernet-shield
  for (byte i=0; i < TOTAL_PINS; i++) {
    if (IS_PIN_SPI(i)
        || 4==i
        || 10==i // explicitly ignore pin 10 on MEGA as 53 is hardware-SS but Ethernet-shield uses pin 10 for SS
        || 3==i
        || 0==i
        || 1==i
        ) {
      Firmata.setPinMode(i, IGNORE);
    }
  }
  pinMode(PIN_TO_DIGITAL(10), OUTPUT); // is SPI on DINo
  pinMode(PIN_TO_DIGITAL(4), OUTPUT);// switch off SD-card bypassing Firmata
  digitalWrite(PIN_TO_DIGITAL(4), HIGH); // SS is active low;

  pinMode(PIN_TO_DIGITAL(3), OUTPUT);
    digitalWrite(PIN_TO_DIGITAL(3), HIGH);
  pinMode(PIN_TO_DIGITAL(0), OUTPUT);
    digitalWrite(PIN_TO_DIGITAL(0), HIGH);
  pinMode(PIN_TO_DIGITAL(1), OUTPUT);
    digitalWrite(PIN_TO_DIGITAL(1), HIGH);

  // start up Network Firmata:


in FHEM dann zB.:

define DINo FRM 3030 global
define Relais1 FRM_OUT 8
define Relais2 FRM_OUT 7
define Relais3 FRM_OUT 6
define Relais4 FRM_OUT 5
define INPUT1 FRM_IN 19
define INPUT2 FRM_IN 18
define INPUT3 FRM_IN 17
define INPUT4 FRM_IN 16


Schade ist, das die Eingänge nicht wirklich Arduino-Digital-Eingänge sind, sondern optokoppler-getrennte Schalteingänge (5V-12V getestet), also muß ich für OneWire einen seperaten Arduino opfern.
Danke Norbert für die Erleuchtung und John fürs mitprobieren!

Frohes Neues,
Gregor









Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: John am 02 Januar 2014, 21:03:39
Hallo Gregor,
über den P1-Header wie hier
http://forum.fhem.de/index.php/topic,13767.msg85883.html#msg85883 (http://forum.fhem.de/index.php/topic,13767.msg85883.html#msg85883)
beschrieben solltest du auch 1-Wire anschliessen können oder nicht ?

Du musst nur noch die Pfostenleiste drauf löten.


John
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: ntruchsess am 02 Januar 2014, 23:52:38
schick :-)

das ruft ja quasi danach im Wiki (http://www.fhemwiki.de/wiki/Arduino_Firmata) dokumentiert zu werden. Vieleicht sollte man da mal ein paar Unterseiten für spezielle 'Arduinos' (DINO, AVR-NetIO etc...) anlegen.

Gruß,

Norbert
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: mcmuller am 03 Januar 2014, 10:37:09
@John: Zündende Idee - funktioniert genau so, Danke!
@Norbert: Wiki-Eintrag steht auf der Agenda!
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: d00773 am 03 Januar 2014, 14:36:08
Danke, das ist ja wirklich ein Geburtstagsgeschenk für mich ;-)

Ich werde das die nächsten Tage hier ausprobieren und dann berichten.

Gruss
Micha
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: d00773 am 06 Januar 2014, 21:16:59
Zitat von: d00773 am 03 Januar 2014, 14:36:08
Danke, das ist ja wirklich ein Geburtstagsgeschenk für mich ;-)

Ich werde das die nächsten Tage hier ausprobieren und dann berichten.

Gruss
Micha

So, ich bin gerade fleissig dabei zu probieren....
Ich benutze die Arduino-IDE 1.0.5 unter meinem Ubuntu
Compilieren des Sketch ging dann nach etlichem hin und her...

Hochladen ging auch, nur dann nix mehr....
Hab dann gesehen, das der DINO sich eine IP von der Fritz-Box per DHCP gezogen hatte, inzwischen aber wieder inaktiv war...

Reset, bzw. Power off/on hat nix bewirkt ;-)

Dann hab ich mal auch den Digital-Input auskommentiert, seit ich den Sketch auf den DINO Uploadet habe antwortet der auf meinen PING ;-)

Soweit der heutige Zwischenstand

Ergänzung:

alles auf Fixe IP-Addr. Umgestellt, nun scheint's zu laufen ;-)


Gruss
Micha

Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: d00773 am 10 Januar 2014, 11:28:56
Hallo,

vorweg die Erfolgsmeldung: der DINo läuft in meiner FHEM Umgebung, und ich kann die Relais steuern.
Das war das was ich damit anstellen wollte. ;-)

Problem: mein 2. DINo lässt sich nicht mehr ansprechen.
Ich hatte den zuerst zum experimentieren her genommen, und verschiedene Sachen probiert.
Derzeitiger zustand ist, das nach einschalten und offensichtlichem Bootvorgang die Gelbe LED neben dem ISP Kontakten im Sekundentakt blinkt.....

Kann sein, das ich da als letztes das Blink Beispiel Sketch geladen hatte....

Über die IDE kann ich keinen Sketch laden ;-(

Ich weiss nicht was ich mir da zerschossen habe...

Daher 3 Fragen:

- Hat wer einen Stromlaufplan / Platinenbeschreibung für mich bzw. wo kann ich das her bekommen?
- was ist das für eine LED?
- Wie kann ich das Teil wiederbeleben? Habe einen AVR Programmer  ATTiny2313 mit USBtiny firmware hier.

Danke im Voraus für Eure Hilfe

Gruss
Micha
8)
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: ntruchsess am 10 Januar 2014, 12:15:26
Mir ist das mit einem normalen Arduino nano auch schon mal passiert, dass nach einem abgebrochenen Flash-vorgang der Bootloader nicht mehr ansprechbar war.
Einfach über den auch auf dem Dino vorhandenen ICSP-Anschluss den Bootloader neu brennen (http://arduino.cc/en/Hacking/Bootloader?from=Main.Bootloader). Sollte kein Problem sein, der USBTinyISP ist jedenfalls in der Arduino-IDE unter 'tools'->'programmer' auswählbar.

- Norbert
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: djhans am 17 Februar 2014, 21:08:41
Hallo,
ich bin auf der Suche nach einer "einfachen" Möglichkeit eine  OpenCollecter IR von Sick und einen Türkontakt ( Reedkontakte) in fhem zu integrieren. Habe mir den Dino dazu ausgeguckt. Ist es mit dem Gerät machbar? Wenn ja, wie bekommt man die Firmware auf die Büchse? Wird das alles über die USB-Schnittstelle gemacht, oder benötigt man noch irgendeine Hard-/Software um zu starten...

Können die Ports dann alle über fhem direkt angesprochen werden, oder muss man zusätzlich noch etwas im Dino programmieren.
Sorry für die blöden Fragen, aber ich kenne mich da nicht so toll aus und suche einfach nur eine Black-Box, die Interface zu den o.a. Komponenten ist.

Danke und Gruß,
djhans

Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: Funsailor am 23 Juni 2015, 12:43:05
Hallo,
bin auf der Suche nach einer RS485 Lösung hier aufgeschlagen.
Kann man die RS 485 Schnittstelle des Dino's für einen HomeMatic Wired (HMW / HM485) Bus nutzen?
Danke
Michael
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: Thorsten Pferdekaemper am 23 Juni 2015, 13:28:04
Zitat von: Funsailor am 23 Juni 2015, 12:43:05
bin auf der Suche nach einer RS485 Lösung hier aufgeschlagen.
Kann man die RS 485 Schnittstelle des Dino's für einen HomeMatic Wired (HMW / HM485) Bus nutzen?
Hi,
da scheint ein ganz normaler AtMega328 drauf zu sein, also würde ich mal sagen: ja. Allerdings muss man das Protokoll dann zu HMW kompatibel machen. Siehe hier: http://forum.fhem.de/index.php/topic,22952.0.html (http://forum.fhem.de/index.php/topic,22952.0.html).
Die bisher existierenden HBW-Devices sind hier aufgelistet: http://www.fhemwiki.de/wiki/HomeMatic_Wired (http://www.fhemwiki.de/wiki/HomeMatic_Wired) (nach unten scrollen).
Gruß,
   Thorsten
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: Funsailor am 19 August 2015, 12:46:20
Hallo Thorsten,
danke für deine schnelle Antwort, ich hatte vergessen den "Antwort Hacken" zu setzen und habe diesen Thread in letzter Zeit nicht besucht.
Leider funktioniert dein erster Link nicht mehr, kannst du mir da bitte nochmal auf die Sprünge helfen?
Danke
Michael
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: Thorsten Pferdekaemper am 22 August 2015, 10:09:37
Zitat von: Funsailor am 19 August 2015, 12:46:20Leider funktioniert dein erster Link nicht mehr, kannst du mir da bitte nochmal auf die Sprünge helfen?
Hi,
sorry für die späte Antwort. Ich bin grad im Urlaub...
Allerdings weiß ich auch nicht, wie ich da helfen kann. Für mich funktionieren beide Links. Vielleicht suchst Du im Forenbereich "Homematic" mal nach "Homebrew", das könnte auch helfen.
Gruß,
  Thorsten
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: rico5588 am 01 März 2016, 22:02:01
Das Thema ist zwar schon etwas Älter aber ich versuch es dennoch.

Ich habe mir einen Dino besorgt und in nach Anleitung, siehe oben, konfiguriert.
Ich kann, über Fhem, das Board ansprechen.
Aber es gibt 2 Probleme, die ich hoffe mit eurer Hilfe lösen zu können.
Problem1
Die Status LED's von den Relais, "klimmen" bei geschaltenem Relais (es ist kaum zu erkennen).
Den Unterschied sieht man deutlich wenn man das Dino Webserver-Sketch drauf läd und vergleicht.

Problem2
Und ich bekomme es nicht hin in Fhem einen Eingang als Signal zu sehen. Hier leuchtet die Status LED vom Dino wie man es erwartet. Nur in Fhem zeigen meine Angelegten Eingang keine veränderung.

MFG
Rico
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: rico5588 am 07 März 2016, 21:38:32
Hallo alle miteinander,

ich konnte meine beiden Probleme selbst beheben und möchte sie nun mit euch teilen.
Als Grundlage: ich nutze ein Dino Board von KMtronic

Ich bin der Anleitung von oben gefolgt und hatte 2 Problem.

1.Problem:
Die Relais schalten nicht, obwohl die status Leds am Board angehen. Nach langem Testen habe ich dann zusätzlich zum USB Strom ein 12V Netzteil ran gehangen und siehe da es geht.
2. Problem:
Die Eingänge werden in Fhem nicht angezeigt, das heißt status Led leucht/blinkt nach dem ich ein Signal drauf gebe jedoch in Fhem bleibt alles auf Off. Nach langer suche  im Netz bin ich drauf gekommen das in dieser Anleitung zuviel Auskommentiert wird.
--->diese Classes darf nicht auskomentiert werden
#include <utility/FirmataExt.h>
FirmataExt firmataExt;

Seit dem Aktivieren geht es nun bei mir.

Mfg Rico
Titel: Antw:DINO-Arduino auf Hutschiene
Beitrag von: Funsailor am 08 Juli 2016, 10:40:02
Hallo,
da sich an der HomBrew Front nun viel getan hat und ich im Moment wieder etwas mehr Zeit zum "Spielen" habe, wollte ich den Dino (V1 mit enc28j60) Testweise als HM485_LAN Adapter einsetzen.

Allerdings ist mir nicht ganz klar welchen Sketch ich dazu nehmen muss.
Ich habe da verschiedene Beispiele getestet aber erfolgreich war ich noch nicht. :-\

Kann mir da jemand den richtigen Link nennen? Ich suche schon fast 2 Tage im Netz und bin immer noch nicht zu einem Ergebnis gekommen.

Danke
Michael