Forum: Mikrocontroller und Digitale Elektronik DS18B20 Identifier Schaltungsfragen


von Daniel B. (dannyboy1994)


Angehängte Dateien:

Lesenswert?

Hallo zusammen.
Dar nun wieder einmal der Winter anbricht wird es wieder Zeit seinem 
Basteltrieb freien Lauf zu lassen. Dar wir im Betrieb sehr viel mit 
Parasitären DS18B20 zur Hausautomatisierung Arbeiten, und das einbinden 
selbiger in die Haussteuerung ein gewisses Fehlerpotenzial birgt, dachte 
ich mir folgendes.

Ziel:
Kleines Handliches Gerät in der Größe einer Zigarettenschachtel das auf 
Knopfdruck die Hardwareadresse eines angeschlossenen DS18B20 Ausließt 
und auf einem Oled ausgibt.
Integriert sollte eine Schaltung zum Schutz des Akkus sein.
Des weiteren sollte es via USB möglich sein Softwareupdates auf zu 
spielen.

Bis jetzt ausgewählte Bauteile:
Lade und Schutzbeschaltung:
-fs8205A 
https://datasheet.lcsc.com/szlcsc/2010271837_FUXINSEMI-FS8205A_C908265.pdf
-DW01A                http://hmsemi.com/downfile/DW01A.PDF
-TP4056               http://www.tp4056.com/d/tp4056.pdf

MC soll der Mega 48P oder 88P werden.
Als Serielle Schnittstellen IC dachte ich an den CH340

Nun wäre ich Dankbar wenn jemand eventuell ein paar Minuten hätte um 
einmal über den ersten Entwurf des Schaltplans zu sehen um Fehler gerade 
beim Lade-IC auszuschließen.
Der CH340 ist noch nicht mit integriert.

Die Softwareseite habe ich schonmal grob vorbereitet, nur mangelt es mir 
gerade noch an einigen Teilen zum testen dar ich mein einziges Oled das 
ich noch hier hatte geschossen habe.

Gruß Daniel

PS: der LM340 fliegt natürlich noch raus und wird gegen einen 3,3V LDO 
Regler ersetzt wegen dem Display.

: Bearbeitet durch User
von Jester (Gast)


Lesenswert?

Daniel B. schrieb:
> Kleines Handliches Gerät in der Größe einer Zigarettenschachtel das auf
> Knopfdruck die Hardwareadresse eines angeschlossenen DS18B20 Ausließt
> und auf einem Oled ausgibt.
> Integriert sollte eine Schaltung zum Schutz des Akkus sein.
> Des weiteren sollte es via USB möglich sein Softwareupdates auf zu
> spielen.

Wenn ich dich richtig verstanden habe, soll das ein Einzelgerät werden?

Ich würde mir da nicht groß den Kopf machen, einen Arduino besorgen und 
da ein Display ran frickeln.

Beim Akku kommt es drauf an, welche Technologie und welche Kapazität dir 
vorschwebt. Da lässt sich - und würde ich unbedingt so handhaben - 
unabhängig von deiner Messchaltung eine Lösung finden. U.U., abhängig 
vom Einsatzbereich, bist du auch mit einem Batteriefach für 2 AA-Zellen 
oder einer Wandwarze besser bedient.

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

Daniel B. schrieb:
> Kleines Handliches Gerät in der Größe einer Zigarettenschachtel das auf
> Knopfdruck die Hardwareadresse eines angeschlossenen DS18B20 _Ausließt_
> und auf einem Oled ausgibt.

Die Adresse wird nicht ausgelassen, sondern ausgelesen!
Schaltpläne als .png, nicht als .jpg, die beim Vergrößern matschig 
werden!

Hardware mit USB-Anschluß gibt es fertig, Arduino-Nano. Wenn Du es 
selbst layouten willst, baue den Nano nach - bequemer als mit dem 
A*-Bootloader bekommst Du kein Softwareupdate hin.

OLED muß man gucken, die A*-Library von Adafruit frisst extrem viel 
dynamischen Speicher. Wer nur Text braucht, ist mit der von Greiman 
sparsam bedient, bietet die A*-IDE zum Download an.

Achte auf Deine Pegel, die China-OLEDs haben einen 3V3-LDO drauf und 
mögen keine 5V als Steuersignal - wenngleich sie das scheinbar 
überleben.

> Integriert sollte eine Schaltung zum Schutz des Akkus sein.

Fertiges Modul vom Chinesen nehmen, 4056 + DW01 gibt's fertig. DW01 ist 
aber nur der Notnagel, für den Regelbetrieb schaltet der zu spät aus.

Es ist kein Hexenwerk, einen P-MOSFET in die Versorgung zu setzen, den 
µC die Spannung messen zu lassen und dann selbst abzuschalten. Ich habe 
sowas gerade mit einem A*ProMini laufen, aber 8MHz und nur einer LiIon 
18650. Laut Maxim-Datenblatt funktionieren die 18B20 bis 3,0 Volt, würde 
also auch für Dich passen - bis auf den fehlenden USB.

von Rüdiger B. (rbruns)


Lesenswert?

Arduino, LCD Display, PowerBank und fertig

von Daniel (Gast)


Lesenswert?

Also danke erstmal für die schnellen Antworten. Zu Beginn wird das ganze 
zu Testzwecken zu 99% erst einmal aus einem arduino und den genannten 
fertigen Modulen zusammen gewürfelt werden um zu sehen ob alles soweit 
funzt. Deswegen viel die Wahl z.B auch auf die oben genannten ICs für 
den LiPo. OLED Display Lib habe ich bereits eine schmale, welche ich 
schon mehrfach in Benutzung habe. Den genauen Speicherbedarf kann ich 
morgen Mal erproben. Sicherlich geht es um Funktion und 
Wirtschaftlichkeit, allerdings soll das ganze am Ende soweit wie möglich 
geschrumpft werden und in einem gedrucktem Gehäuse Platz finden in dem 
ein negativ des verwendeten Bauteils mit Federkontakten und da hinter 
liegendem Taster komfortable zu benutzen ist. Akkulaufzeit sollte für ca 
25-30 Tests ausreichen. Nachdem ich die Stromaufnahme des zusammen 
gewürfeltem geräts gemessen habe werd ich hier schlauer sein. Denke aber 
das ist iwo in Richtung 300mAh gehen wird, dar diese praktisch keinen 
Platz verbrauchen.

Das mit den 3v3 zwecks Display ist mir bewusst, weswegen die 
Spannungsversorgung noch geändert werden muss.
Die größte Frage die ich mir aber Stelle ist ob mein Laderegler soweit 
richtig ist.

Gruß Daniel

von Alt G. (altgr)


Lesenswert?

Ein projekt der art "wie mach ich einfaches möglichst kompliziert".

von svensson (Gast)


Lesenswert?

So etwas habe ich an einem Tag zusammengebaut und programmiert.

Arduino Nano mit LCD-Display angesteuert über I2C. 9V-Block und 7805 als 
Spannungsregler. (Stromaufnahme der Schaltung liegt bei ca. 40mA, so daß 
einige Stunden Betrieb mit einer Batterie möglich wären, ich nutze aber 
bisher immer ein Netzteil.) Aufgebaut mit ein paar Tastern und einer 
Fassung sowie zwei Schraubklemmen auf einer Lochrasterplatine.

Gehäuse habe ich aber keines.

von Andre (Gast)


Lesenswert?

Daniel schrieb:
> Die größte Frage die ich mir aber Stelle ist ob mein Laderegler soweit
> richtig ist.
> Gruß Daniel

Die Ladeschaltung ist doch Millionenfach auf fertigen Modulen verbaut. 
Da brauchst du dich doch nur danach orientieren. 
https://www.sunrom.com/media/content/1203/DW01A.gif

von Wolfgang (Gast)


Lesenswert?

Daniel B. schrieb:
> Ziel:
> Kleines Handliches Gerät in der Größe einer Zigarettenschachtel das auf
> Knopfdruck die Hardwareadresse eines angeschlossenen DS18B20 Ausließt
> und auf einem Oled ausgibt.

Kann man machen, wenn man sonst nichts zu tun hat.
Besitzt du keinen PC, an den du einfach per USB einen Arduino xxx 
anschließen kannst und über irgendein Programm, das mit seriellen Daten 
über COM-Schnittstelle umgehen kann, die Adresse ausgibt?

von Alt G. (altgr)


Lesenswert?

Normalerweise frägt ja der uC die adressen bei jedem start ab. Dann muss 
man nur noch die abfolge richtig machen. Also sensor zwischen die finger 
und man weiss welcher wo ist. Dann tauscht man die positionen der 
sensoren bis es stimmt. Mach ich so.
Eine adressenabfrage um dann die adresse hw-codiert in der firmware zu 
speichern ist nicht servicefreundlich, sollte man vermeiden.

von Εrnst B. (ernst)


Lesenswert?

Alt G. schrieb:
> Eine adressenabfrage um dann die adresse hw-codiert in der firmware zu
> speichern ist nicht servicefreundlich, sollte man vermeiden.

Man könnte jedem DS18B20 seinen "Einsatzort" in seinem EEPROM Kodieren, 
die zwei Alarm-Grenzwertregister sind ja frei belegbar.
Wenn der Service dann einen Sensor austauscht, muss der Neue halt einmal 
auf die richtige Position konfiguriert werden.
Wär noch so eine Aufgabe für den Zigarettenschachtel-DS18B20-Tester.

Und natürlich das hier mit implementieren:
https://github.com/cpetrich/counterfeit_DS18B20

von Daniel B. (dannyboy1994)


Lesenswert?

Danke erstmal für die vielen Antworten. Der Punkt ist ja genau jener das 
man nicht den Laptop durch die ganze Hütte schleppen muss um die 
Sensoren zu verbauen, und keine Fehler bei der Zuordnung mehr machen 
kann. Natürlich wäre theoretisch ein Arduino alles was man benötigt, 
aber da fehlt eben der Mobilitätsfaktor.


Die Schaltung hab ich mir bereits angesehen, aber ein zweites Paar Augen 
sieht meist mehr.

Die Software steht soweit schon

Gruß Daniel

von Jester (Gast)


Lesenswert?

Daniel B. schrieb:
> Die Schaltung hab ich mir bereits angesehen, aber ein zweites Paar Augen
> sieht meist mehr.
>
> Die Software steht soweit schon

Du hast also schon eine sehr präzise Vorstellung von deinem 
Mess-Kasterl?
Na dann los, worauf wartest Du noch?

von Cyblord -. (cyblord)


Lesenswert?

Daniel B. schrieb:
> Dar wir im Betrieb sehr viel mit
> Parasitären DS18B20 zur Hausautomatisierung Arbeiten

Oh je. Was ist das für eine Bastelbude?

> Kleines Handliches Gerät in der Größe einer Zigarettenschachtel das auf
> Knopfdruck die Hardwareadresse eines angeschlossenen DS18B20 Ausließt

Habe ich mal an einem langweiligen Nachmittag vor vielen Jahren gemacht. 
Ganz ohne Forum. Krass oder? Warum auch? Das ist straight forward. Quasi 
eine No-Brainer.
Was soll die Fragerei? Wer hier rumfragt kanns wohl einfach nicht.

: Bearbeitet durch User
Beitrag #7217024 wurde von einem Moderator gelöscht.
von Joachim B. (jar)


Angehängte Dateien:

Lesenswert?

Rüdiger B. schrieb:
> Arduino, LCD Display, PowerBank und fertig

fehlt nur der DS18x20 + LIB + Taster
etwas Eigenarbeit sollte drin sein

von Daniel B. (dannyboy1994)


Lesenswert?

Die DS18b20 gibt's in prächtig kompakter als Platinchen von Loxone, als 
falls du der Meinung bist dass das Murks sei sprich doch bitte mit den 
österreichern.
Frag mich echt warum immer solche Kameraden um die Ecke kommen müssen.

Die eigentliche Frage war nun ob Mal jemand die LiPo Schaltung 
überprüfen möchte/würde.
Die Idee mit dem P-MOSFET und Abschaltung über ADC find ich übrigens 
Klasse, daran hatte ich überhaupt nicht gedacht.

Gruß

von Sascha W. (sascha-w)


Lesenswert?

Hallo,

schreib doch mal Karl-Heinz an - vielleicht kann der den DS1820 noch in 
die Software des allseits beliebten und millionenfach nachgebauten 
Komponententester (aka Transistortester) einbauen :)

Sascha

von Manfred (Gast)


Lesenswert?

Daniel schrieb:
> Nachdem ich die Stromaufnahme des zusammen
> gewürfeltem geräts gemessen habe

Ich habe 8 MHz ohne USB-Wandler, einen ADS1115 und ein SD-Modul dran. 
Vom A* die LEDs und den Ax1117-33 runter, ebenso den 1117 vom SD-Modul 
entfernt. Auf dem 0,96"-OLED bleibt der Regler, kommt direkt an den 
Akku. Insgesamt bin ich um 5mA unterwegs, MCP1702-33 als Regler.
Dazu kommen 5..20mA für das OLED, je nach Anzeigeinhalt.

Das Ding soll über mehrere Tage eine Gleichspannung messen und jede 
Sekunde auf die Karte schreiben.
Um Strom zu sparen und das Display zu schonen, wird es im Regelbetrieb 
nach 10s ausgeschaltet, eine blaue LED blinkt als Lebenszeichen.

Du solltest ohne jegliche Verrenkungen mit 30mA auskommen.

Daniel B. schrieb:
> Die Idee mit dem P-MOSFET und Abschaltung über ADC find ich übrigens
> Klasse, daran hatte ich überhaupt nicht gedacht.

Sind immerhin 5 Bauteile, dafür bin ich an anderer Stelle schon 
bemeckert worden - ich möge doch besser einen LDO mit Enable nehmen.

Weißt Du vermutlich, aber trotzdem: Für den A/D des µC muß dessen 
interne Referenz verwendet werden. Lässt man ihn gegen seine VCC laufen, 
kann es sein, dass er zuviel Spannung ausgibt.

In meinem Aufbau habe ich eine Platine mit TP4056 und DW01, die mir den 
Akku schützen würde, wenn der µC abstürzt und natürlich die Ladung per 
USB macht. Tatsächlich will ich aber deutlich früher abschalten, unter 
3,25 V bricht mir sonst die Versorgung zu weit ein.

von Florist (Gast)


Lesenswert?

Cyblord -. schrieb:
> Habe ich mal an einem langweiligen Nachmittag vor vielen Jahren gemacht.
> Ganz ohne Forum. Krass oder? Warum auch? Das ist straight forward. Quasi
> eine No-Brainer.
> Was soll die Fragerei? Wer hier rumfragt kanns wohl einfach nicht.

Ist gestern schon mal gefragt worden: Kommt von Dir mal eine konkrete 
Antwort mit Schaltplan und Programm von der langweiligen 
Nachmittagsbastelei -oder ist das wieder nur ein weiterer Beleg für 
Deine Großmäuligkeit?

von Cyblord -. (cyblord)


Lesenswert?

Florist schrieb:
> Ist gestern schon mal gefragt worden: Kommt von Dir mal eine konkrete
> Antwort mit Schaltplan und Programm von der langweiligen
> Nachmittagsbastelei

Wozu denn? Was ist denn an sowas unklar?
Das habe ich auf Lochraster mit einer 9V Batterie und einem ultra 
billigen Pollin LCD realisiert. Mit irgend einem AVR der grade rumlag.

Ich kann ein Bild davon hochladen. Aber was hilfts? Wie gesagt, entweder 
man kann sowas umsetzen oder halt nicht. Ich bin sicher nicht der 
Foren-Bausatz-Beauftragte der hier Bastelanleitungen für ultra trivial 
Schaltungen hochlädt.

von Hans (Gast)


Lesenswert?

Sascha W. schrieb:
> Hallo,
>
> schreib doch mal Karl-Heinz an - vielleicht kann der den DS1820 noch in
> die Software des allseits beliebten und millionenfach nachgebauten
> Komponententester (aka Transistortester) einbauen :)
>
> Sascha

Ist doch schon in der "M" Version der Firmware implementiert.

von Alt G. (altgr)


Lesenswert?

Hans schrieb:
> Ist doch schon in der "M" Version der Firmware implementiert.

Und wie bekomm ich diese M version auf meinen tester?

von Hans (Gast)


Lesenswert?

Alt G. schrieb:
> Hans schrieb:
>> Ist doch schon in der "M" Version der Firmware implementiert.
>
> Und wie bekomm ich diese M version auf meinen tester?

Das hängt davon ab welchen Tester du hast. Ob der 328 gesockelt ist, 
oder das Board einen ISP Konnector hat, oder ...

Hier kannst du die Firmware finden, und in Kapitel 7 der Dokumentation 
die Infos über das Programmieren:

https://github.com/madires/Transistortester-Warehouse

von Alt G. (altgr)


Lesenswert?

TY

von Ein weiterer Neugieriger (Gast)


Lesenswert?

Cyblord -. schrieb:
> Ich kann ein Bild davon hochladen.

Ja, mach das mal!

> Aber was hilfts?

Das hilft, den Verdacht zu entkräften, daß es sich bei Dir 
ausschließlich um einen Mundwerker statt eines Handwerkers handelt.

> Wie gesagt, entweder
> man kann sowas umsetzen oder halt nicht.

Richtig. ...und da Du das kannst: Zeig mal Deinen funktionsfähigen 
Aufbau!

> Ich bin sicher nicht der
> Foren-Bausatz-Beauftragte der hier Bastelanleitungen für ultra trivial
> Schaltungen hochlädt.

Du bist der Beauftragte für Stunk un Zwietracht. Das ist unstrittig.

von Cyblord -. (cyblord)


Lesenswert?

Ein weiterer Neugieriger schrieb:
> Du bist der Beauftragte für Stunk un Zwietracht. Das ist unstrittig.

So ähnlich stehts in der Job Beschreibung.

von Wolfgang (Gast)


Lesenswert?

Daniel B. schrieb:
> Der Punkt ist ja genau jener das man nicht den Laptop durch die ganze
> Hütte schleppen muss um die Sensoren zu verbauen, und keine Fehler bei
> der Zuordnung mehr machen kann.

Du könntest auch in der Zentrale eine Datenaufzeichnung anschmeißen und 
dann rumgehen und nacheinander jedem Sensor mit den Fingern, einem 
Feuerzeug oder Kältespray gezielt einen Temperatursprung verpassen, ggf. 
mit Notizzettel und Uhr. Das erhöht die Mobilität und erspart dir die 
Rumsteckerei.

von svensson (Gast)


Lesenswert?

Mein kleiner Praxistip:

Bei jedem Sensor einmal die ID auslesen und die letzten 3 Bytes auf ein 
Stück Klebeband schreiben und an dem Kabel des Sensors befestigen. Das 
kann man auch vor der Montage am Werktisch machen.

Ja, ich weiß, theoretisch könnten die letzten 3 Doppelbytes gleich sein, 
denn es sind ja nur 255^3 ~ 16,5 Mio. Kombinationen. In der Praxis sind 
mir aber noch keine Sensoren mit gleicher Nummer begegnet.

von svensson (Gast)


Lesenswert?

Mein Geschreibsel wirkt vielleicht etwas unverständlich. Ich schreibe 
die Nummer so auf, wie es bei Netzwerkkarten üblich ist, also in 
hexadezimaler Schreibweise, jedoch ohne Bindestriche.
Beispiel 12-ab-c3 aufgeschrieben als 12abc3.

von Cyblord -. (cyblord)


Lesenswert?

svensson schrieb:
> Mein kleiner Praxistip:
>
> Bei jedem Sensor einmal die ID auslesen und die letzten 3 Bytes auf ein
> Stück Klebeband schreiben und an dem Kabel des Sensors befestigen. Das
> kann man auch vor der Montage am Werktisch machen.
>
> Ja, ich weiß, theoretisch könnten die letzten 3 Doppelbytes gleich sein,
> denn es sind ja nur 255^3 ~ 16,5 Mio. Kombinationen. In der Praxis sind
> mir aber noch keine Sensoren mit gleicher Nummer begegnet.

So macht man das nicht. Die DS18B20 haben persistente User Bytes. Dort 
kann man eine eigene ID hinterlegen. Die ID wird mit der Funktion (z.B. 
Temperatur Heizung) verknüpft. Der Controller scannt alle vorhandenen 
1Wire Geräte, liest die User Bytes aus und sieht so die IDs und kennt 
jetzt für jede ID den Romcode und kann ihn bei Bedarf abfragen. Die 
übergeordnete Applikation kennt nur die IDs, weiß aber nichts von 
Romcodes.

Das hat den Vorteil dass man beim Austausch nur die gleiche ID wie die 
des alten Sensor schreiben muss. Man muss sich nicht mit den echten 
1Wire ROM Codes plagen.

: Bearbeitet durch User
von Manfred (Gast)


Lesenswert?

Ein weiterer Neugieriger schrieb:
>> Ich bin sicher nicht der
>> Foren-Bausatz-Beauftragte der hier Bastelanleitungen für ultra trivial
>> Schaltungen hochlädt.
>
> Du bist der Beauftragte für Stunk un Zwietracht. Das ist unstrittig.

Einfache Naturen sehen das so, andere denken darüber nach, was er denn 
sagen wollte.

Beitrag #7218780 wurde von einem Moderator gelöscht.
von Ein weiterer Neugieriger (Gast)


Lesenswert?

...und erneut:


Manfred schrieb:
> Ein weiterer Neugieriger schrieb:
>>> Ich bin sicher nicht der
>>> Foren-Bausatz-Beauftragte der hier Bastelanleitungen für ultra trivial
>>> Schaltungen hochlädt.
>>
>> Du bist der Beauftragte für Stunk un Zwietracht. Das ist unstrittig.
>
> Einfache Naturen sehen das so, andere denken darüber nach, was er denn
> sagen wollte.

Ich weiß nicht, ob ich es überhaupt vermag, einem so komplex 
strukturierten
Denker wie Dir nahezubringen, was mein Anliegen ist. Vielleich liest Du 
noch einmal ganz langsam und hochkonzentriert:
Beitrag "Re: DS18B20 Identifier Schaltungsfragen"

Wenn Du es dann immer noch nicht begriffen hast, falte Dich säuberlich 
zusammen und lege Dich in das Wäschefach Deines Kleiderschrankes.

von Εrnst B. (ernst)


Lesenswert?

Cyblord -. schrieb:
> Die DS18B20 haben persistente User Bytes. Dort
> kann man eine eigene ID hinterlegen

Habe ich oben auch schonmal vorgeschlagen:

Εrnst B. schrieb:
> Man könnte jedem DS18B20 seinen "Einsatzort" in seinem EEPROM Kodieren,

Bei den allgegenwärtigen Fakes muss man halt schauen, ob das auch 
implementiert ist.

svensson schrieb:
> Bei jedem Sensor einmal die ID auslesen und die letzten 3 Bytes auf ein
> Stück Klebeband schreiben und an dem Kabel des Sensors befestigen.

Vorsicht, echte DS18B20 haben Adressen nach dem Schema
28:xx:xx:xx:xx:00:00:xx
d.H. zwei von den drei Bytes sind fix 0x00.

aus den
> nur 255^3 ~ 16,5 Mio. Kombinationen
werden so nur 255.

Lieber die Seriennummer-Bytes aus der Mitte verwenden.

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
Noch kein Account? Hier anmelden.