Hi Forum, endlich mal wieder ein (etwas aufwaendigeres) Projekt fast fertiggestellt. Hier kurz vorgestellt: Meine neue Relaiskarte beherbergt vier Industrieralais (falls irgendwie mit dem vorhandenem Flash moeglich, auch noch Erweiterungsnmodule geplant), welche man auf recht flexible Art und Weise sowohl per Enet als auch per USB ansteuern kann (USB-Support steht softwareseitig noch aus). Hier die Eckdaten: - Eurokartenformat, doppelseitige Platine - 4 Industrierelais (Finder 55.32), zwei Kanaele direkt per Transistor schaltbar - Basiert auf Atmega169 - Schnittstellen: Enet (ENC28J60+Magjack), USB (FT232) - 3.5-stelliges LCD zur Anzeig der Zeit - Per Goldcap gepufferte Echtzeit (lange Laufdauer) - Flexible timer und unterschiedliche Modi spezifizierbar - Linuxbasierter Kommandozeilenclient - Uhr einstellbar und Relais steuerbar per RC-5 Fernbedienung - Einstellungen und Timer sind auf das EEPROM persistierbar und gehen nach power down nicht verloren Sourcen, Schaltplaene, Layout, Firmware und PC-Client hier zu finden: SVN: http://svn.coremelt.net/avr/ultimate_relay_card Bitte keine riesige Diskussion ueber Sinn/Unsinn oder welche Features ihr lieber gehabt haettet. Alles steht unter CC und kann daher frei modifiziert werden. Ein Bild des fertigen Aufbaus haengt an. Hier noch kurz eine Zusammenfassung unterstuetzter Befehle: supported switches and options: --help/-?, --version/-V ........ dump this screen --verbosive/-v ................. more verbosive output, including network traffic --usb/-u ....................... use USB connection rather than ethernet --address/-a <addr>[:<port>] ... USB serial number or IP address to connect to --on/-o <relay(s)> ............. switch relay(s) on, integer or bitmask 0b1...0 --off/-f <relay(s)> ............ switch relay(s) off, integer or bitmask 0b1...0 --toggle/-t <relay(s)> ......... toggle relay(s), integer or bitmask b1...0 --sysinfo/--S .................. show the relay card's settings and system status --get-time/-i .................. retrieve and display the real time from the card --sync-time/-s ................. synchronize the RTC with the local system time --set-time/-I <datetime> ....... set the RTC to this specific date and time syntax: dd.MM.yy[yy]-hh:mm:ss, all fields must be specified --network-conf/-n <option> ..... update a network setting of the card available settings: ip:<ip address>[:port], mac:<mac address>, port:<port> handshake:<8 byte handshake sequence>, restore_defaults --set-timer/-T <timer> ......... activate a timer (see below) syntax: <addr>[+]/<mode>/<start time>/[<end time>]. with time format 'dd.MM.yy[yy] hh:mm:ss', non-mandatory fields default to now- Optional '+' will add a timer rather than override all existing ones for <address>. --list-timers/-l ............... show all active timers of the relay card --delete-timer/-d <index> ...... delete a specific active timer syntax: [a]<start index>[-<end index>] (Optional 'a' will delete all timers for the specified address.) --persist/-p <mode> ............ persist all settings of the card to its EEPROM available modes: all, timers, settings --reset/-r ..................... trigger a watchdog reset --configfile/-c <file> ......... use this configuration file instead of the default Wuerde mich freuen, wenn der ein oder andere von Euch das nachbauen wuerde und mir evt. sogar beim Beseitigen noch vorhandener Fehler helfen koennte. Fuer Fragen stehe ich auch bereit. Greets, Michael
Hier noch ein paar Anwendungsbeispiele: - Abfragen der Systeminformationen: michael@quark:/stuff/test/avr/ultimate_relay_card/pc_client (svn)-[avr:215]- # ./rcontrol2 -S system status and information about the detected card: -------------------------------------------------------------- firmware revision: ....................... 344 real time: ............................... 23.02.2012 22:45:28 system uptime: ........................... 0d 0h 41m 34s ENC28J60 silicon revision: ............... 4 number of builtin relays: ................ 4 number of builtin switches: .............. 2 current relay switch status: ............. 000000 IP network address and port: ............. 192.168.0.42:80 PHY physical MAC address: ................ df:19:a0:f6:fa:48 duty cycle counter relay #1: ............. 4 duty cycle counter relay #2: ............. 0 duty cycle counter relay #3: ............. 0 duty cycle counter relay #4: ............. 0 WARNING: The firmware revision of this card (rev. 344) is too recent to work reliably with this client. Either upgrade the firmware or downgrade it to rev. 338. Not using the correct firmware could result in unexpected or broken operation and is generally unsupported by the scope of this project. - Synchronisieren der lokalen Uhrzeit mit der RTC: ./rcontrol2 -s - Anzeigen der aktuellen RTC-Zeit: michael@quark:/stuff/test/avr/ultimate_relay_card/pc_client (svn)-[avr:215]- # ./rcontrol2 -i 23.02.2012 22:46:36 - Setzen der aktuellen Zeit manuell: ./rcontrol -I 23.02.12-22:50:0 - Relais 0-4 einschalten: ./rcontrol -o b1111 - Relais 2 ausschalten: ./rcontrol -f 1 - Timer aktivieren (Relais 1 in 10 Minuten ein- und in 20 Minuten wieder aus schalten): ./rcontrol2 -T 0/of/10m/20m - aktuell definierte Timer listen: michael@quark:/stuff/test/avr/ultimate_relay_card/pc_client (svn)-[avr:215]- # ./rcontrol2 -l ----------------------------------------------------------- timer [1/1]@0 slot #0: ----------------------------------------------------------- timer mode: .............. 'of' [once off/on] start time: .............. 23.02.2012 22:57:52 start trigger time ....... 9m 24s end time: ................ 23.02.2012 23:07:52 end trigger time ......... 19m 24s timer resolution: ........ sec-min-hr-day-daym-mon-year Es gibt eine Vielzahl an Moeglichkeiten, weitere Timer zu definieren, darunter auch zyklische Timer (z.B. jeden Di um 18:00) und modulare timer (alle so und soviele Zeiteinheiten schalten). - Lösche den timer in slot 0: ./rcontrol -d 0 - Lösche alle timer, die auf Relaisadresse 0 definiert sind: ./rcontrol -d a0 - Lösche alle timer der Slots 0-19 ./rcontrol -d 0-19 - Persistiere alle Einstellungen und timer (geschieht auch ab und zu automatisch, jedoch nur einmal am Tag, um den EEPROM zu schonen) ./rcontrol -p all - Zeige Netzwerkverkehr: ./rcontrol -vi michael@quark:/stuff/test/avr/ultimate_relay_card/pc_client (svn)-[avr:215]- # ./rcontrol2 -vi sending 9 data bytes to 192.168.0.42:80: => 000: 0x84[132] 001: 0x57[087] 002: 0x05[005] 003: 0xb5[181] 004: 0x30[048] 005: 0x17[023] 006: 0x37[055] 007: 0x7e[126] 008: 0x02[002] received 8 response data bytes after 1.12ms: <= 000: 0xab[171] 001: 0x11[017] 002: 0x34[052] 003: 0x16[022] 004: 0x17[023] 005: 0x02[002] 006: 0x0c[012] 007: 0x01[001] 23.02.2012 22:52:17 - Aendere die IP-Adresse auf 192.168.0.100: ./rcontrol -n ip:192.168.0.100 - Loese einen Reset aus: ./rcontrol -r Bald wird auch noch ein Konfigfile unterstuetzt, in dem alle variablen Settings hinterlegt werden koennen, so dass man es nicht mehr in den Befehlen angeben muss. Viele Gruesse, Michael
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.