• Du musst dich registrieren, bevor du Beiträge verfassen kannst. Klicke auf Jetzt registrieren!, um den Registrierungsprozess zu starten. Registrierte User surfen werbefrei, können Suchen durchführen und sehen die volle Darstellung des Forums mit vielen anderen Unterforen!!!

WLAN-Thermometer selbst bauen mit Raspberry Pi

Hallo,
wegen der nachfragen vorab mal die Stückliste für meine Platine.

1x Kohleschichtwiderstand 3,3kOhm R8
8x Metallschichtwiderstand 47kOhm R9-R16
1x AD Converter MCP 3208-CI/P IC1
1x Transistor NPN BC 548C T4
1x IC-Sockel, 16-polig für IC1
1x Stiftleiste 2-reihig gerade 2x8pol K2
2x Stiftleiste 2-reihig gerade 2x4pol K9 und K10
1x Buchsenleiste 2-reihig gerade 2x13pol K1
1x Piezosummer SUMMER KPE 232A Summer

Plus natürlich die Teile für die Außenbeschaltung der Platine.
Sprich die Verbindungen zu den Buchsen und dem LCD.

Was ich allerdings nicht gemerkt oder beachtet hatte, Reichelt hat keine Pfostensteckverbinder 2x4pol zum klemmen. Meine hatte ich bei Conrad geordert. Auf der Platine ist aber genug Platz um 2x5pol zu verwenden.

Grüße Marco
 
Nochmal zu der Ramdisk.

Das geschilderte Vorgehen ist zwar einmal aufwändig, bietet aber die Möglichkeit die Größe zu beschränken.

Es gibt auch noch die Möglichkeit ein ramfs zu mounten. Ist wesentlich einfacher aber auch gefährlicher, da im Extremfall der komplette Hauptspeicher zulaufen kann und der Raspi dann abschmiert.

Grüße Marco
 
@armin

Hatte noch ein display rumliegen leider nur
4x16 habs heute angeschlossen und wie zu
Erwarten sind die zeilen verschoben...
Könntest du mir sagen was ich wo ändern muss
Damit ich das 4x16 nutzen kann oder
muss ich mir ein anderes display kaufen?!
Bzw. kann man die display conf
auslagern?! damit unterschiedliche
Typen verwendet werden können?
Lg
 
Code:
#Temperaturen auf Display anzeigen
    if LCD:
       for kanal in range(8):
        if Temperatur[kanal] <> 999.9:
         Displaytemp[kanal] = "%.2f" % Temperatur[kanal]
        else:
         Displaytemp[kanal] = ' ERR '

       lcd_byte(LCD_LINE_1, LCD_CMD)
       Meldung = '1:' + Displaytemp[0] + chr(0xdf)+'2:' + Displaytemp[1] + chr(0xdf)
       lcd_string(Meldung,2)
       lcd_byte(LCD_LINE_2, LCD_CMD)
       Meldung = '3:' + Displaytemp[2] + chr(0xdf) + '4:' + Displaytemp[3] + chr(0xdf)
       lcd_string(Meldung,2)
       lcd_byte(LCD_LINE_3, LCD_CMD)
       Meldung = '5:' + Displaytemp[4] + chr(0xdf) + '6:' + Displaytemp[5] + chr(0xdf)
       lcd_string(Meldung,2)
       lcd_byte(LCD_LINE_4, LCD_CMD)
       Meldung = '7:' + Displaytemp[6] + chr(0xdf) + '8:' + Displaytemp[7] + chr(0xdf)
       lcd_string(Meldung,2)

wenn du das machst gehen pro zeile 2 zeichen weg, da die kanäle nun nur mit nummern von 1-8 versehen sind.
weitere 2 pro zeile verschwinden, wenn du das ° oder C hinter der temp nicht brauchst.
dafür einfach chr(0xdf) entfernen. das sind dann die 4 pro zeile. das sollte dann passen.

*EDIT*
so sollte es gehen. gerade getestet. sind dann pro zeile nur 16 zeichen.

MfG
samson82
 
Zuletzt bearbeitet:
Nach meinen Unterlagen hat das 16x4 andere Speicheradressen für die Zeilen. Falls es nicht geht wie samson beschrieben, ändere zusätzlich diese Zeilen
Code:
  [FONT=&quot]LCD_LINE_1 = 0x80 # LCD RAM Adresse fuer die erste Zeile[/FONT]
  [FONT=&quot]LCD_LINE_2 = 0xC0 # LCD RAM Adresse fuer die zweite Zeile[/FONT]
  [FONT=&quot]LCD_LINE_3 = 0x94 # LCD RAM Adresse fuer die dritte Zeile[/FONT]
  [FONT=&quot]LCD_LINE_4 = 0xD4 # LCD RAM Adresse fuer die vierte Zeile[/FONT]
[FONT=&quot]
[/FONT]
[FONT=&quot]so ab:[/FONT]


Code:
  [FONT=&quot]LCD_LINE_1 = 0x00 # LCD RAM Adresse fuer die erste Zeile[/FONT]
  [FONT=&quot]LCD_LINE_2 = 0x40 # LCD RAM Adresse fuer die zweite Zeile[/FONT]
  [FONT=&quot]LCD_LINE_3 = 0x10 # LCD RAM Adresse fuer die dritte Zeile[/FONT]
  [FONT=&quot]LCD_LINE_4 = 0x50 # LCD RAM Adresse fuer die vierte Zeile[/FONT]
[FONT=&quot]
[/FONT]


Grüßle und Tschöh!

Armin
 
Hallo ihr zwei,

Danke für euer bemühungen ;-)

Hat fast wunderbar geplappt.
Nur die Speicheradressen sind anders

TC1604A-01
Zeile 1: 0x80
Zeile 2: 0xA8
Zeile 3: 0x90
Zeile 4: 0xD0

Leider habe ich nicht wirklich ein Datenblatt davon. Hab die Adressen aber gottseidank im Netz gefunden.
Hier ein Link falls mal wer das Display probieren will :hammer:
LCD-Modul TC1604A-01 - Bauelemente / Bauteile - Aktive Bauelemente - Displays - Pollin Electronic
Läuft gut wobei ich noch ein schickes 128x64 LCD liegen habe was ich in meinem alten Projekt nicht mehr zwingend benötige...
naja mal schaun ;-)
 
Moin,

nachdem ich gestern nach fertigen Temp.fühlern gesucht habe, kam mir auch schnell die Idee doch einfach meinen PI zu benutzen um das ganze zu steuern. Ganz schnell bin ich dann auch auf diesen Thread gestoßen. Echt klasse!!!

Ich selber komme eher aus der Entwicklung und habe mit der Elektrotechnik leider eher weniger am Hut.

Ich habe hier bereits einen RaspberryPi und diesen AC/DC Converter in der Schublade liegen.

Den könnte ich doch benutzen um die Werte abzugreifen oder?

Auf dem Board sind zwei MCP3424 Chips verbaut. Die Datenübertragung von Converter zu Pi läuft über das I²C Protokoll.
Wenn ich mal die Daten auf meinem Pi habe will ich das ganze über ne Webapp auf meinem Smartphone/Tablet bereitstellen.

Als Fühler wollte ich vlt. den Fanart einsetzen.

Haltet ihr das so für Sinnvoll oder sollte ich meinen ADC wieder zurücklegen und doch hier nach dem Schaltplan arbeiten?

Mein Problem ist, dass ich nicht weiss wie ich den Temp.fühler an meinen ADC anschließe.

Benötige ich einfach einen 47k Widerstand zw. Fühler und ADC?
 
Hallo winni,

ich denke die Investition in ein Humble PI board +Bauteile sind auch gering und mit Hilfe der Anleitung von Armin sollten es kein Problem sein, auch ich habe dies geschafft es war auch meine erste Hardware die ich aufgebaut habe ;-)

LG

Joe
 
Zuletzt bearbeitet:
Klar kannst du den ADC kaufen. Aber dann schreibst du dir auch die ganze Software neu!

:D


Grüßle und Tschöh!


Armin
(Mobil)
 
hi winni

würde dir auch eher zum humble pi oder gar die vorgefertigten platine zu nehmen.
auf grund der tatsache, das dir die leute hier dann auch besser helfen können, wenn was nicht so will.

noch nen vorschlag

kann man das nicht so einstellen, das die temperatur im display blinkt,wenn sie zu hoch oder zu niedrig ist?

gibt es eigendlich auch die möglichkeit sich so auf den raspi per handy zu verbinden um die seite zu sehen?
also mit ner festen ip, bzhw ner kennung. man hat ja nicht immer wlan. wenn man z.b. bei freunden ist will man das ding ja auch nicht unbedingt mit deren wlan verbinden.

MfG
samson82
 
kann man das nicht so einstellen, das die temperatur im display blinkt,wenn sie zu hoch oder zu niedrig ist?
MfG
samson82

Hi,

wenn ihr das macht, dann richtig: Zu hoch - schnelles Blinken
Zu niedrig - langsames Blinken.

Das ist dann ein bisschen "analog" - man kann ohne Zahlen zu lesen den Zustand erkennen.

Gruß Johannes
 
Das Display unterstützt leider keine Attribute wie Blinken oder Invertieren. Man könnte ein Ausrufezeichen oder ein * vor die Temperatur setzen.

Grüßle und Tschöh!

Armin
 
Aber das Display unterstützt selbst definierte Zeichen! Habe zwei Pfeile generiert und ein wenig am Code geschraubt.
Bei Übertemperatur erscheint jetzt ein Pfeil hoch vor dem Wert, bei Untertemperatur ein Pfeil runter.
uploadfromtaptalk1365537335161.jpg


Wer möchte, kann sich da Script im Beta Bereich des repository herunter laden:
http://www.a-thinnes.de/wlanthermometer/beta

Einfach nach /usr/sbin kopieren und service WLANThermo restart eingeben.




Grüßle und Tschöh!


Armin
(Mobil)
 

Anhänge

  • uploadfromtaptalk1365537335161.jpg
    uploadfromtaptalk1365537335161.jpg
    25,1 KB · Aufrufe: 1.490
Hi,

@ Armin,

Hab mich heute mal einwenig mit mit dem einlesen und schreiben der WLANThermo.conf beschäftigt.
Meine Frage ist ob ich die min/max Werte für dich auch in die WLANThermo.conf
schreiben kann?! Dann würde die temperaturen.csv wegfallen. Desweiteren müsstest du alle x-sekunden die config neu einlesen.Demnach würden ja die restlichen Einstellungen auch Automatisch übernommen oder?!
Lg
 
moin moin

hat eigendlich einer von euch auch probleme mit dem signal auf dem handy?

ich hab ein galaxy nexus.auf dem laufen der standart android browser und der aktuelle firefox.
leider habe ich bei keinem der beiden einen ton, wenn temp zu hoch oder zu niedrig. am pc ja.

kann das am vormat vom soundfile liegen?

MfG
samson82
 
Chrome geht nicht. Steht auch in der Doku.


Grüßle und Tschöh!


Armin
(Mobil)
 
Hallo Phantomias,

du kannst auch über den Watchdog ein neustart des Temp Service veranlassen, also wenn nur das mit dem Logfilenamen noch geklärt wird ist das denke ich die bessere Lösung oder?

Bei jeder für den Thermo Dienst relevanten änderung an der config einfach den Dienst neustarten lassen.

LG

Joe
 
Hallo Armin, Phantomias,

eine einfach Lösung für das Logfile problem wäre:
Wenn Armin beim Starten des Dienstes zuerst in der Config nachschauen würde ob ein Dateiname für das Logfile festgelegt ist und dann einfach dieses weiterverwendet. Wenn nicht einen neuen Namen generieren.

So könnte auch über den GUI der Name der Datei festgelegt werden z.B. PP_10.04.2013.csv.

LG

Joe
 
mal wieder ne blöde Frage.

wenn ich den raspi als AP betreibe,musste ich doch ohne Router und Internet, einfach so zugreifen konnen ,oder?

mir geht es ja nur um das aufrufen und einstellen der Seite und nicht als SSH.
hoffe das einer von euch da etwas drüber weiß.

MFG
samson82
 
Zurück
Oben Unten