AVR Ethersex Temperatursensoren: Unterschied zwischen den Versionen

Aus Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: =Einleitung= Dallas bietet zahlreiche Bausteine -unter anderem mehrere Temeratursensoren- mit 1-Wire Interface an. Für die Datenübertragung vom/zum Mocrocontroller is...)
 
Keine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 5: Zeile 5:
* DS1820 (Temperatursensor)
* DS1820 (Temperatursensor)
* DS18B20 (Temperatursensor)
* DS18B20 (Temperatursensor)
* DS18S20 (Temperatursensor)
* DS1822 (Temperatursensor)
* DS1822 (Temperatursensor)
* DS2502 (EEPROM)
* DS2502 (EEPROM)
* DS2450 (4 Kanal ADC)  
* DS2450 (4 Kanal ADC)  


=Anschluss an Ethersex=
=Anschluss an Ethersex=
Der 1-Wire Bus kann an jeden freien Portpin angeschlossen werden. Neben dem 1-Wire-Bus benötigen die Temperatursensoren lediglich noch +5V und GND Spannungsversorgung. Der 1-Wire-Bus wird mit einem 4,7kOhm Pullup-Widerstand versorgt.
Der 1-Wire Bus kann an jeden freien Portpin angeschlossen werden. Neben dem 1-Wire-Bus benötigen die Temperatursensoren lediglich noch +5V und GND Spannungsversorgung. Der 1-Wire-Bus wird mit einem 4,7kOhm Pullup-Widerstand versorgt. Der 1-Wire-Bus kann an jeden beliebigen freien Pin angeschlossen werden. Hier im Beispiel Port B3 ('''''PB3''''').


{|border="0" width="100%" cellpadding="15"
!Schaltung!!Pinbelegung DS1820
|-
|valign="top"|[[Bild:1Wire.png]]
|[[Bild:DS18S20.png]]
|}


=Konfiguration Ethersex=
=Konfiguration Ethersex=
cd ~/Dokumente/ethersex
  make menuconfig
  make menuconfig
Folgende Option (zusätzlich) aktivieren:
Folgende Option (zusätzlich) aktivieren:
Zeile 29: Zeile 38:
  /* onewire support */
  /* onewire support */
  pin(ONEWIRE, '''''PB3''''')
  pin(ONEWIRE, '''''PB3''''')
=Funktionstest=
Ethersex neu kompilieren und übertragen.
==Weboberfläche==
Browser öffnen und Adresse http://IP_ETHERSEX öffnen.
Die Temperaturwerte können entweder tabellarisch angezeigt werden, oder grapfhisch.
* Tabellarische Anzeige
In der Ethersex Mainpage auf den Link "The onewire temperature values are accessible '''here''' ..." klicken.
Folgende Webseite erscheint:
:[[Bild:Temp_data.png]]
Sämtliche gefundenen Temperatursensoren werden mit ihrer 64Bit-Adresse und zugehörigem Temperaturwert tabellarisch aufgelistet.
* Graphische Anzeige
In der Ethersex Mainpage auf den Link "'''graphical Variant'''"  klicken.
Folgende graphische Darstellung des Temperaturverlaufes erscheint:
:[[Bild:Temp_graphik.png]]
Analog zu der tablellarischen Auflistung wird auch hier jeder Temperatursensor mittels Adresse und Temperaturwert digital angezeigt. Zusätzlich werden die Werte graphisch ausgegeben, um den Temperaturverlauf sichtbar zu machen.
==ECMD==
Eine Verbindung zum Ethersex, wie [[AVR_Ethersex#ECMD_Interface|→ hier beschrieben]], aufbauen.
1w list
Eine Auflistung der 64Bit Adressen sämtlicher gefundener Temperatursensoren wird ausgegeben.
Z.B.
'''''10db1d7001080022'''''
Anschließend eine Konvertierung des Temperaturwertes anstossen:
1w convert
Und schließlich den Temperaturwert des Sensors anzeigen (64Bit-Adresse '''''10db1d7001080022''''' durch eben ermittelte Adresse ersetzen):
1w get '''''10db1d7001080022'''''
=Einbindung in Control6 Script=
Neben der reinen Temperaturanzeige in der Weboberfläche bzw. mittels ECMD-Interface können mittels Control6 auch Temperaturüberwachungen und Temperaturregelungen realisiert werden. Beispielhaft wird hier eine Temperaturüberwachung vorgestellt.
Control6 Script bearbeiten:
gedit ~/Doumente/ethersex/control6/control6.src
Folgende Zeilen einfügen (64Bit-Adresse '''''10db1d7001080022''''' durch die oben ermittelte Adressse ersetzen):
CONTROL_START
CLOCK_USED;
ECMD_GLOBAL(Temperatur,0,uint16_t);
  THREAD(TEMP_ALARM)
      Temperatur=ONEWIRE_GET('''''10db1d7001080022''''');
      ON Temperatur > 250 DO
        PIN_SET(LED_ALARM);
      END
      ON Temperatur < 240 DO
        PIN_CLEAR(LED_ALARM);
      END
      WAIT(2);
  THREAD_END(TEMP_ALARM)
  ON STARTUP DO
      THREAD_START(TEMP_ALARM);
  END
CONTROL_END

Aktuelle Version vom 23. April 2010, 19:33 Uhr

Einleitung

Dallas bietet zahlreiche Bausteine -unter anderem mehrere Temeratursensoren- mit 1-Wire Interface an. Für die Datenübertragung vom/zum Mocrocontroller ist lediglich eine Leitung erforderlich. Sämtliche Bausteine hängen an diesem 1-Wire-Bus. Die Adressierung der einzelnen Bausteine erfolgt über eine eindeutige, einmalige 64Bit Seriennummer, die jeder Baustein während der Fertigung erhält. Diese Seriennummer kann neben der Adressierung auch für die eindeutige Identifikation eines kompletten Gerätes dienen.

Ethersex unterstützt folgende 1-Wire Bausteine, wobei im Folgenden nur Temperatursensoren angesprochen werden:

  • DS1820 (Temperatursensor)
  • DS18B20 (Temperatursensor)
  • DS18S20 (Temperatursensor)
  • DS1822 (Temperatursensor)
  • DS2502 (EEPROM)
  • DS2450 (4 Kanal ADC)


Anschluss an Ethersex

Der 1-Wire Bus kann an jeden freien Portpin angeschlossen werden. Neben dem 1-Wire-Bus benötigen die Temperatursensoren lediglich noch +5V und GND Spannungsversorgung. Der 1-Wire-Bus wird mit einem 4,7kOhm Pullup-Widerstand versorgt. Der 1-Wire-Bus kann an jeden beliebigen freien Pin angeschlossen werden. Hier im Beispiel Port B3 (PB3).

Schaltung Pinbelegung DS1820
1Wire.png DS18S20.png

Konfiguration Ethersex

cd ~/Dokumente/ethersex
make menuconfig

Folgende Option (zusätzlich) aktivieren:

|-I/O
|   |-Onewire Support
|   |   |-Onewire Device detection support
|-General Setup
|   |-VFS (Virtual File System)
|   |   |-VFS File Inlining
|   |   |    |-Inline Onewire

Pinning bearbeiten:

gedit ~/Dokumente/ethersex/pinning/hardware/netio.m4

Folgende Zeilen einfügen, falls diese noch nicht vorhanden sind. Den Port Pin PB3 evtl. anpassen:

/* onewire support */
pin(ONEWIRE, PB3)


Funktionstest

Ethersex neu kompilieren und übertragen.

Weboberfläche

Browser öffnen und Adresse http://IP_ETHERSEX öffnen.

Die Temperaturwerte können entweder tabellarisch angezeigt werden, oder grapfhisch.

  • Tabellarische Anzeige

In der Ethersex Mainpage auf den Link "The onewire temperature values are accessible here ..." klicken. Folgende Webseite erscheint:

Temp data.png

Sämtliche gefundenen Temperatursensoren werden mit ihrer 64Bit-Adresse und zugehörigem Temperaturwert tabellarisch aufgelistet.


  • Graphische Anzeige

In der Ethersex Mainpage auf den Link "graphical Variant" klicken. Folgende graphische Darstellung des Temperaturverlaufes erscheint:

Temp graphik.png

Analog zu der tablellarischen Auflistung wird auch hier jeder Temperatursensor mittels Adresse und Temperaturwert digital angezeigt. Zusätzlich werden die Werte graphisch ausgegeben, um den Temperaturverlauf sichtbar zu machen.


ECMD

Eine Verbindung zum Ethersex, wie → hier beschrieben, aufbauen.

1w list

Eine Auflistung der 64Bit Adressen sämtlicher gefundener Temperatursensoren wird ausgegeben. Z.B.

10db1d7001080022

Anschließend eine Konvertierung des Temperaturwertes anstossen:

1w convert

Und schließlich den Temperaturwert des Sensors anzeigen (64Bit-Adresse 10db1d7001080022 durch eben ermittelte Adresse ersetzen):

1w get 10db1d7001080022


Einbindung in Control6 Script

Neben der reinen Temperaturanzeige in der Weboberfläche bzw. mittels ECMD-Interface können mittels Control6 auch Temperaturüberwachungen und Temperaturregelungen realisiert werden. Beispielhaft wird hier eine Temperaturüberwachung vorgestellt.

Control6 Script bearbeiten:

gedit ~/Doumente/ethersex/control6/control6.src

Folgende Zeilen einfügen (64Bit-Adresse 10db1d7001080022 durch die oben ermittelte Adressse ersetzen):

CONTROL_START

CLOCK_USED;
ECMD_GLOBAL(Temperatur,0,uint16_t);

  THREAD(TEMP_ALARM)
     Temperatur=ONEWIRE_GET(10db1d7001080022);
     ON Temperatur > 250 DO
        PIN_SET(LED_ALARM);
     END
     ON Temperatur < 240 DO
        PIN_CLEAR(LED_ALARM);
     END
     WAIT(2);
  THREAD_END(TEMP_ALARM)

  ON STARTUP DO
     THREAD_START(TEMP_ALARM);
  END
CONTROL_END