Hallo!
Ich habe mir gerade folgendes überlegt: Sehr toll wären hier und da ganz
simple kleine Sensoren, z.B. Licht, Temperatur etc. aber vielleicht auch
Stromverbrauch & Co. Mit einem uC mit ADC kann man sowas gut aufbauen
und die Daten am PC auswerten.
Lediglich 2 Dinge machen das ganze nicht wirklich sexy:
* Stromversorgung!
* Datentransfer zum PC
Angenommen überall steht Ethernet zu Verfügung (was bei mir der Fall
wäre) hätte ich mir folgendes überlegt: Einen winzigen, sehr
stromsparenden AVR. Seine Sensorergebnisse werden extrem simpel direkt
über UDP und Ethernet verschickt (Software Implementierung, Igor-Plug).
Dadurch ist mal keine aufwändiger Controller nötig.
Was bleibt: Stromversorgung. Super wäre es natürlich diese direkt vom
Ethernet zu beziehen. Die Signalleitungen werden aber wohl viel zu wenig
Strom liefern (können). Auf der anderen Seite wird so ein
Temperatursensor i.d.R. nicht ständig Daten liefern müssen. Es müsste
doch eigentlich möglich sein, über die Zeit einen dicken Kondensator
aufzuladen. Wenn dieser einen gewissen Schwellwert überschritten hat,
speist er die Schaltung incl. Microcontroller. In dieser Zeit werden die
Messergebnisse ausgelesen und das UDP-Paket verschickt.
Ist das realistisch? Hat das schon wer gemacht?
Würd sich für mir jedenfalls sehr interessant anhören ;-)
lg,
divB
> Ist das realistisch?
vermutlich nicht.
Die Ehternet Chips brauchen die vielfache leistung eines µC. Alleine
schin Winzige Sensoren und Ethernet passen nicht zusammen. Ein Winziger
Sensor ist bei mir so 2x2mm - in der größe habe ich noch keine Ethernet
buchse gesehen.
Also die Initialidee mit einem Sensor am Ethernet sagt mir, dass du von
Ethernet keine Ahnung hast. Es ist sehr schwierig einen 8-Bitter an ein
Netzwerk anzubinden. Nicht nur, dass der Softwareaufwand enorm ist, nur
um ein zwei Bytes an Messwerten zu übertragen auch die Hardware, um ein
Ethernet-Signal zu erzeugen, ist nicht ohne.
Das und wahrscheinlich noch vieles mehr sind die Gründe warum keiner
soetwas machen würde.
Für so einen zweck gibt es bessere Übertragungswege, da wäre z.B. der
CAN-Bus, aus dem Automobilbereich.. Dann kommt mir noch der LIN-Bus in
den Sinn, der wäre wohl ziemlich gut geeignet für dich. Und da es sich
so anhört, als würdest du ein Einsteigerprojekt suchen, wäre der LIN-Bus
meine Empfehlung an dich.
Mit ein paar wenigen Bauteilen kannst du dir einen
LIN-zu-Seriell-Wandler basteln und an den PC anschließen. Die meisten
Mikrocontroller können bereits LIN und benötigen nur noch einen
Pegelwandler. Außerdem kann der LIN-Bus seine angeschlossenen Teilnehmer
mit 12V-Spannung versorgen.
Power over Ethernet geht auch mit Gigabit (was wohl aber kaum ein
kleiner uC schafft) und liefert bis 12,5 Watt.
Kann schon relativ kompakt werden, aber ich denke mal so 3x3cm werdens
so oder so werden :)
@achso: Jaja, das ist mir natürlich schon bekannt, aber bei weitem nicht
sexy. Das tolle wäre ja dass ich das Ding einfach unabhängig an jede
Ethernetbuchse anhängen könnte.
@Peter: Du hast mich offenbar nicht ganz verstanden. Ich möchte eben
genau KEINEN Ethernet-Controller verwenden sondern die Leitungen direkt
an den uC (siehe Igor's Ethernet Plug). Zu Versorgen wäre also wirklich
nur der uC (und die betreffenden Bauteile rund herum).
Und selbst wenn: Ich kann ja wirklich einen dicken Kondensator nehmen.
Der kann sich ja ruhig sehr langsam über die Zeit aufladen...
lg
divB
@Star Keeper: Nein, ich suche eigentlich gar kein Projekt und erst recht
kein Einsteigerprojekt. Mir kam lediglich einmal die Idee die mir
eigentlich sehr gefiel.
Also das was du mit Ethernet schreibst (Software und Hardware) ist so
nicht ganz korrekt. Es gibt bereits eine fix und fertige Implementierung
(wie bereits geschrieben IgorPlug Ethernet). Das Ding kann dann zwar nur
UDP senden und immer nur ein Byte aber mehr will man ja bei einem Sensor
gar nicht (ich zumindest).
Meine Frage bezieht sich also nach wie vor einzig und allein darauf die
Signalleitungen von Ethernet irgendwie als Mini-Energiequelle
missbrauchen zu können.
Es ist zwar möglich, UDP Pakete quasi mit einer "Einbahnstraße" zu
versenden - in der Praxis ist das aber wenig sinnvoll. Möglich wären nur
Broadcasts da für eine IP Auflösung ARP erforderlich ist und damit wird
die Erkennung woher das Paket kommt sehr schwierig. An die MAC Adresse
eines Pakets kommt man beim normalen UDP Empfang in der Applikation
nicht dran.
Außerdem erhöhen ständige Broadcasts die Netzwerklast erheblich.
Weiterhin sind weder die Datenraten noch die Spannungspegel beim
IgorPlug Ethernet normgerecht. Das ist keine fix und fertige
Implementierung, das ist eine reine Studie. Womöglich funktioniert das
schon mit 20m Kabel nicht mehr zuverlässig.
Ein paar mA kann man sicher über das Ethernet Kabel schicken - wenn es
nicht PoE konform ist, zerstört man aber u.U. andere Geräte die keine
Gleichspannung auf dem LAN Kabel erwarten.
Ist also alles nicht so einfach.
Eine saubere Implementierung mit PoE und PoE Trafo wird eher 5x5cm groß
werden.
Gruß, Marcus
Hallo,
divB schrieb:
> Ich habe mir gerade folgendes überlegt: Sehr toll wären hier und da ganz> simple kleine Sensoren, z.B. Licht, Temperatur etc. aber vielleicht auch> Stromverbrauch & Co. Mit einem uC mit ADC kann man sowas gut aufbauen> und die Daten am PC auswerten.
hat mit Ethernet nichts zu tun, trotzdem vielleicht eine Alternative:
http://www.avr.roehres-home.de/sensoren/
Alles noch unfertig, aber schon seit Anfang März so in Betrieb.
Gruß aus Berlin
Michael
Müsst mal schauen in einer der letzten CT's war ein Beitrag über
Sensoren, die Ihre Energie aus der Umgebung generieren. Die senden dann
in unterschiedlichen Abständen ein Datenpaket (glaube war auch über
Ethernet).
Habe den Artikel bloss noch in Erinnerung, da ich den Wahnsinning
interessant fand.
Waren autarge Sensoren (sprich keine externe Spannungsversorgung nötig).
>Also die Initialidee mit einem Sensor am Ethernet sagt mir, dass du von>Ethernet keine Ahnung hast. Es ist sehr schwierig einen 8-Bitter an ein>Netzwerk anzubinden. Nicht nur, dass der Softwareaufwand enorm ist,
Also diese Aussage sagt mir das du von Ethernet keine Ahnung hast. Es
gibt hier schon genug TCP/IP Stack die mit 8Bit AVR Controller laufen.
So enorm ist der Aufwand nicht einen TCP/IP Stack aufzubauen. Und wer
keinen TCP/IP Stack in Software aufbauen moechte kann das ganze auch fix
und fertig in Hradware gegossen bekommen. Die Firma Wiznet stellt TCP/IP
Kontroller (W5100) her die das ganze Protokoll in Hardware mitbringen.
Diese Chips sind in einem gerade mal l0 x 10 mm grossen Gehauese zu
bekommen. Die Anbindung an einen AVR Controller kann sowohl mit SPI
oder auch mit 8 Bit parallel erfolgen.
Die Software im AVR besteht dabei nur aus ein paar Zeilen Code. Auch mit
normalen Ethernet Controllern wie dem ENJ28C60 oder einem DM9000 ist
kein riesiges Hexenwerk.
Gruss Helmi
Wenn du überall Ethernet hast warum nutzt du dann nicht die Verkabelung
zum Transport des Sensorsignals? Am Sternpunkt kannst du dann immer noch
ins Netz wandeln.
Bei allem < 1Gbit sind sogar 2 Paare frei und du kannst zusätzlich noch
z.B. telefonieren oder die Kaffemaschine schalten ;-).
und dann hängst du irgend wann mal ein gerät dran (möglicherweise ohne
daran zu denken, oder es gar zu wissen), was gigabit-Ethernet kann und
du hast ein paar kaputte geräte
Helmut Lenzen schrieb:
>>Also die Initialidee mit einem Sensor am Ethernet sagt mir, dass du von>>Ethernet keine Ahnung hast. Es ist sehr schwierig einen 8-Bitter an ein>>Netzwerk anzubinden. Nicht nur, dass der Softwareaufwand enorm ist,>> Also diese Aussage sagt mir das du von Ethernet keine Ahnung hast. Es> gibt hier schon genug TCP/IP Stack die mit 8Bit AVR Controller laufen.> So enorm ist der Aufwand nicht einen TCP/IP Stack aufzubauen. Und wer> keinen TCP/IP Stack in Software aufbauen moechte kann das ganze auch fix> und fertig in Hradware gegossen bekommen. Die Firma Wiznet stellt TCP/IP> Kontroller (W5100) her die das ganze Protokoll in Hardware mitbringen.> Diese Chips sind in einem gerade mal l0 x 10 mm grossen Gehauese zu> bekommen. Die Anbindung an einen AVR Controller kann sowohl mit SPI> oder auch mit 8 Bit parallel erfolgen.> Die Software im AVR besteht dabei nur aus ein paar Zeilen Code. Auch mit> normalen Ethernet Controllern wie dem ENJ28C60 oder einem DM9000 ist> kein riesiges Hexenwerk.>> Gruss Helmi
Mir sind solche Module schon bekannt. Aber wer käme auf die Idee einen
1,-EUR Sensor an ein 70,-EUR Fertig-Ethernet-Modul zu hängen? Und das
die Software dabei nur aus ein paar Zeilen Code besteht, trifft nur auf
diese Fertigmodule zu. Bei einem ENJ28C60 oder dem DM9000 brauchst du
einen richtigen Ethernet-Stack. Das kleinste was mir da einfällt ist der
uIP und der hat weit mehr als ein paar Zeilen, da muss der Controller
schon etwas mehr Flash mitbringen.
Bei so einer Sensorsache ist es doch eigentlich immer das Ziel so viele
Sensoren wie möglich zu haben und dazu müssen die eben klein, Platz- und
Stromsparend sein. Vielleicht ist es möglich von deiner
Ethernet-Verkabelung ein paar Adern abzuzapfen und darüben einen bus für
die Sensordaten laufen zu lassen?
>an ein 70,-EUR Fertig-Ethernet-Modul zu hängen?
Wer sagt den das das ganze 70 Euro kostet ?
Die ganze Elektronik AVR + W5100 ist fuer rund 10 .. 15 Euro zu
bekommen.
>Das kleinste was mir da einfällt ist der>uIP und der hat weit mehr als ein paar Zeilen, da muss der Controller>schon etwas mehr Flash mitbringen.
Ist auch noch locker in den Controller zu bringen.
Ich habe mal einen TCP/IP Stack in einem 8051 Controller untergebracht
und habe da knapp an 7 KByte Code gebraucht (in C). Sollte also kein
Hinderungsgrund sein.
Einem Temperatursensor behagt die in unmittelbarer Nähe verbratene
Verlustleistung auch nicht sonderlich, der liefert dann bestenfalls noch
Hausnummern.
Wie wäre es einen AVR32, mit Phy-Chip und POE Chip. POE dann auf 24V
auslegen und das Teil als Class 0 konfigurieren. Das größte Bauteil ist
halt der Ethernet Übertrager.
Aber man hat dann den Nebeneffekt, dass es in jedem Fall funktioniert
und man hat am "Sensor" noch einen Anschluß für weitere (24V betriebene)
Kleinigkeiten, die mit RS232, etc. angebunden sind. So eine Art
Universalmodul, an das man alles anschließen kann.