Eigenbau Bodenfeuchte-Sensor-433MHz-LaCrosse-TX2/3 mit ATTiny85 (SpinOff)

Begonnen von juergs, 30 Oktober 2016, 19:57:45

Vorheriges Thema - Nächstes Thema

locutus

Platine Ver. 1.1

Zitat von: juergs am 04 Februar 2017, 15:26:39
Mit angeschlossener Bodenfeuchte.Power + Pulse geht ISP nicht mehr. (SCK+MISO betroffen.)
Berücksichtig und hinzugefügt: SCK und MISO Lötbrücken zwischen IC1 und IC2. Im Normalbetrieb bleiben beide Brücken mit Lötzinn geschlossen. Zur Programmierung über ISP müssen beide Lötbrücken geöffnet werden.

Zitat von: juergs am 26 Februar 2017, 11:24:37
Als kleinen Verbesserungsvorschlag hätte ich noch ein paar Kleinigkeiten:
1. Leider passt nur eine kleinere Version der Schraubklemme, deshalb muss ich den Durchmesser mit Draht anpassen um die "Sensoren" zu bestücken. Diese verlieren aber dadurch an Stabilität. Das lässt sich aber durch ein 3D-Print-Gehäuse wieder abfangen.
Berücksichtig und geändert: größere Lötpads. Abstand zwischen P1 und GND auf 5 mm erhöht.

Zitat
2. Den 555 und den ATTtiny als SMD-Variante, die Rs + Cs ebenfalls?
3. Dann würde ich evtl. doch auf den ATTiny84 (ATtiny841-SSU) ausweichen, der hat noch ein paar mehr Pins zur weiteren Verwendung (Debug/Serial/Konfiguration etc.) zur Verfügung.
Wo finde ich die finale Version des Schaltplans? Kunststoffgehäuse aus dem Fachhandel oder 3D gedrucktes? Ich schlage für passive Bauteile die SMD Bauform 1206 vor.


juergs

Hallo Damian,
Super + Dank für die Initiative.

Den SMD Attiny habe ich schon bekommen.
Leider gerade noch etwas in 3D Erfahrungen sammeln, um ein
passendes Gehäuse dazu zu konzipieren.
Dann mache ich mich an das Design mit dem 841.
Da würde evtl. noch eine ZweifarbLed dazu passen plus weitere Sensoren...
Die Feuchtesensoren mit PH-Messung sind leider noch nicht gekommen.
Dauert noch etwas, weil ich gerade beim Skifahren bin :-)
Grüße,
Jürgen

juergs

Hier einige Vorschlägefür das ATtiny 841-Design:

The high-performance Microchip picoPower 8-bit AVR RISC-based microcontroller combines:
8KB ISP flash memory,
512-Byte EEPROM,
512B SRAM,
12 general purpose I/O lines,
32 general purpose working registers,
an 8-bit timer/counter with two PWM channels,??
two 16-bit timer/counters with two PWM channels,
internal and external interrupts,
an 12-channel 10-bit A/D converter,
2 On-chip analog comparators,
2 full duplex USARTs with Start Frame wake up from power down,
master/slave SPI serial interface,
slave I2C serial interface,
programmable gain stage (1x, 20x, and 100x) for 12 differential ADC channel pairs,
programmable watchdog timer with internal oscillator,
internal calibrated oscillator, and four software selectable power saving modes.
The device operates between 1.7-5.5 volts.

2mA Zwei-Farb Led 1206: smd-led-mehrfarbig-1206-rot-gruen-12-mcd-2-mcd-140-2-ma

Blinkfolge via Timerinterrupt ausgeben

LiPo 18650-Halter mit integriertem Lader

PeMue

Hallo Jürgen,

habe an den Sensor mal 2 AAA Batterien geklemmt und parallel zu dem XT300 in die Banane gesteckt. Mal sehen, wie der Unterschied ist. Der Sensor wird problemlos vom CUL 433 erkannt, beim RFXTRX ist das LaCrosse Protokoll ausgeschaltet (und mir der Aufwand gerade zu groß, das einzuschalten).
Ich vermute mal, dass das LaCrosse Protokoll es nicht hergibt, die Batteriespannung zu senden (oder doch)? Danke noch mal für Deine Arbeit.

Aus meiner Sicht könnte man noch folgendes verändern (ob es dann besser wird, sei mal dahingestellt  ;)):
- Stepup Wandler, damit man den Sensor mit einer Zelle (AA oder AAA) speisen kann
- geeignetes (kleines) Gehäuse drumrum, so dass man den Sensor direkt in die Erde stecken kann (ok, die beiden Öffnungen für die Elektrode müsste man dann irgendwie mit Silkon abdichten)
- generell würde ich das ganze vermutlich in SMD machen ...

Woher hast Du denn die schönen Elektronden?

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

juergs

Hallo Peter,

danke für die Anregungen:

ZitatAus meiner Sicht könnte man noch folgendes verändern (ob es dann besser wird, sei mal dahingestellt  ;)):
- Stepup Wandler, damit man den Sensor mit einer Zelle (AA oder AAA) speisen kann
- geeignetes (kleines) Gehäuse drumrum, so dass man den Sensor direkt in die Erde stecken kann (ok, die beiden Öffnungen für die Elektrode müsste man dann irgendwie mit Silkon abdichten)
- generell würde ich das ganze vermutlich in SMD machen ...

StepUp-Wandler habe ich auch schon in petto ... als China-Kaufteil.
Eigentlich war meine Planung eine CR2032-Batterie. Hat allerdings den Nachteil,
z.B. Status-Leds  mit einzubinden wegfallen, da Stromverbrauch zu hoch und die Batterie zu schnell leer wäre.
Ebenso wie die anderen Features z.B. Temperaturmessung, Licht- und pH-Messung  etc.
Deshalb auch der erste Wurf.

Meine weitere Planung ist schon am entstehen, mit oben erwähnten Teilen, den Step-Up-Wandler würde ich ebenfalls befürworten.
AA- oder AAA-Batterien (mit oder ohne StepUp) wären gegen den klobigen 18650-LiPo auch abzuwägen. Der Lipo lässt sich einfach per USB wieder aufladen ...

Die "kleinste" Variante als Kompromiss von Lebendauer der Batterie versus Gehäuse-Größe wäre eine SMD-Variante mit StepUpwandler.
Im Moment baue ich diese Variante auf, bzw. warte noch auf ein paar Teile, bevor es weitergeht.

Das Gehäuse ergibt sich dann aus dem PCB + Batterie.
Hier bin ich gerade am 3D-Druck + Design "optimieren", um es gefällig hinzubekommen (Lernkurve!).

Die Elektroden fertige ich einfach aus 3mm Messing-Rohr aus dem Baumarkt (1m für ca. 1€). Das Ganze
mit robustem Schrumpfschlauch überzogen und die Enden mit 2-Komponenten-Kleber abgedichet.
Sie sollen ja nur kapazitiv arbeiten, sollten also eigentlich wasserdicht sein und bleiben  ???.
Das direkte Anlöten der abgeflachten Enden an die Lötpads ist fast die stabilere Variante als die Verwendung einer 2,54mm
Schraubklemme... zumindest billiger  ;)
Außerdem taugen sie auch für CUL-Antennen usw. ...

Über den CUL433 wird das Protokoll als CUL_TX-Device empfangen und über autocreate auch einfach in FHEM angelegt und empfangen.
Man könnte das Ganze noch über ein DOIF auf ein Icon legen, welches abhängig vom Status die Farbe wechselt.
Nach einigen Probe-Exemplaren ist mir die Wiederholbarkeit der Messungen aufgefallen.
In der SW ist ja ein Fenster-Zeitraum definiert, in dem die hereinkommenden Impulse gezählt werden.
Die Abhängigkeit von Kapazität zu Sensorlänge habe ich eher empirisch ermittelt .... 

Die interessante Erweiterung wäre eine Mesh-Funktion mit einem "Durchleiten" der am weitesten entfernten
Sensoren. Dann benögt man aber auch noch einen 433-Empfänger dazu.
Einen Repeater dazu ist gerade auch am enstehen. Die ATtinies haben allerdings nur 8K Flash, da ist man etwas begrenzt ... 
Mal schauen ob es doch ein Micro mit 32U4 oder ein 328P oder ähnliches wird ...

Als Alternative zum LaCrosse-Protokoll könnte ich ebenfalls das Hideki-Protokoll verwenden.
Temperatur+Feuchte+Batteriespannung nur als Flag könnte das Protokoll hergeben.
Meine Lösung für die Baterriespannung war, dass ein Sensor über zwei IDs sendet.
Z.B. ID100 sendet HUM + TEMP und ID101 sendet nur Batteriespannung in größeren Abständen ....

Mittlerweile habe ich die China-Sensoren zur Feuchte, Licht und pH-Wert-Messung bekommen.
Bin von der schieren Größe und Einfachheit überwältigt!
Allerdings scheint es nicht für Dauer-Gebrauch ausgelegt zu sein.
Ein analoges mV-Messinstrument wird zwischen den Sensoren einfach umgeschalten.
Die Lichtmessung ist einfach ein kleine Photozelle 5x5mm.
Die Feuchtigkeitsmessung resultiert aus der Spannungdifferenz zwischen dem CU-Röhrchen und dessen isolierter Spitze.
Genauso die "pH-Messung" aus dem zweiten Röhrchen mit dessen isolierter Spitze.
Mehr nicht ....  :D

Anbei mal ein Foto  ;)

PeMue

Hallo Jürgen,

Zitat von: juergs am 12 März 2017, 16:52:16
Meine Lösung für die Baterriespannung war, dass ein Sensor über zwei IDs sendet.
Z.B. ID100 sendet HUM + TEMP und ID101 sendet nur Batteriespannung in größeren Abständen ...
hast Du das schon umgesetzt? Bei mir wird nur eine ID per autocreate angelegt. Wird die ID in der Software fest vergeben?

Danke + Gruß

Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

juergs

Hallo Peter,
Zitathast Du das schon umgesetzt? Bei mir wird nur eine ID per autocreate angelegt. Wird die ID in der Software fest vergeben?
Ja, umgesetzt ist es schon. Die ID wird in der SW (mangels Ports zum Jumpern) fest eingestellt. Die eingestellte Id + 1 wäre die Batteriespannung.

Hier der Sketch dazu: https://github.com/juergs/Bodenfeuchte_ATtiny85_V2/blob/deep_sleep_mode/Bodenfeuchte_433.ino

Nachteilig ist, bei der HW-Konfiguration, dass leider SCK und Mosi so belastet werden, dass ein Programmieren in der Schaltung
nicht immer fehlerfrei geht. Deshalb habe ich einen externen Programmier-Adapter (8p-DIP auf 6p-Pfostenleiste) dazu gebaut um den ATTiny85
umzuprogrammieren (siehe auch erste Seite). Die gedrehten DIP-Fassungen lassen aber leider bei den Pin-Abmessungen des Chips auch nicht so vieles
Umstecken zu, sie leiern leider aus. Deshalb ist die Lösung mit Lötbrücken zum Entkoppeln beim Programmieren besser geeignet.
14p NullkraftSockel für 1,45 €

Die nächste Version verwendet den ATTiny841 in SOIC-Gehäuse und SMD-555.
Drazzy.com/e/tiny841.shtml
https://github.com/SpenceKonde/arduino-tiny-841

Aktuell verbraucht die aktuelle SW in der Ruhephase 0.4 mA, was noch Faktor 100 zu hoch ist.
Beim Upgrade auf den 841 schaue ich mir das noch an ....

Noch zu den "Sensoren":
Gummibeschichtung 200ml für 19.90€:
http://www.plastidip-shop.de/index.php/plasti-dip-zubehoehr/plastidip.html


Grüße,
Jürgen


locutus

Zitat von: PeMue am 12 März 2017, 16:16:31
Aus meiner Sicht könnte man noch folgendes verändern (ob es dann besser wird, sei mal dahingestellt  ;)):
- Stepup Wandler, damit man den Sensor mit einer Zelle (AA oder AAA) speisen kann
Mein Vorschlag für einen DC-DC Converter: MAX1724
- 1.5μA Quiescent Supply Current
- 0.8V to 5.5V Input Voltage Range
Die externe Beschaltung besteht aus zwei Kondensatoren und einer Power-Induktivität.

juergs

Hallo locutus,

danke für den Vorschlag.
PMIC - Spannungsregler - DC/DC-Schaltregler Maxim Integrated MAX1724EZK33+T Boost TSOT-23-5
Bezugsquelle beim großen "C" für 5,78 €, Lieferzeit 2 Wochen.  In China?

Grüße,
Jürgen

PeMue

Zitat von: locutus am 13 März 2017, 21:59:13
Mein Vorschlag für einen DC-DC Converter: MAX1724
- 1.5μA Quiescent Supply Current
- 0.8V to 5.5V Input Voltage Range
Die externe Beschaltung besteht aus zwei Kondensatoren und einer Power-Induktivität.
Entspricht der Dirk's Schaltung für den Universalsensor. Hätte ich auch vorgeschlagen.
Und dann ein Batteriehalter für eine AA oder AAA Zelle auf der Rückseite und ein schickes 3D Gehäuse drumrum ... Dann kann ich alle meine alten Batterien "leerlutschen"  ;)

Zitat von: juergs am 14 März 2017, 07:45:48
Bezugsquelle beim großen "C" für 5,78 €, Lieferzeit 2 Wochen.  In China?
Ich schau mal, ob ich noch welche habe. Ich meine, ich hätte welche in China bestellt.

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Tom71

Warum möchtest du denn jetzt einen ATtiny841 einsetzen? Der ATTiny85 hat doch einen ähnlichen Stromverbrauch, oder? Oder geht es nur um den Sockel?
Homematic | RaspberryMatic

juergs

Hallo Tom71,

der ATTiny85 wird gerade im DIP-Gehäuse verwendet + ein DIP-Sockel trägt damit etwas auf
und hat nur einen Arduino-Port-Pin frei. Dh. etwas begrenzt in den weiteren Anwendungsmöglichkeiten.

Der 841 hat 12 IO-Pins, also einige mehr.  Dh. es wäre z.B. eine Led-StatusAnzeige  mit einer Duo- oder RGB-LED möglich.
Hierfür wären aber schon 2..3 Portpins erforderlich. Da wäre eine optische Rückmeldung direkt aus dem Blumentopf möglich.  ;)
Wäre natürlich die Frage, ob minütliche blinkende Pflanzen-/Blumentöpfe erwünscht sind.
Ebenso kann man einige Pins zu Konfiguration verwenden: z.B. BasisAdresse + 4 Bit Auflösung das wären 7 .. 8 unterschiedliche IDs, die man ohne
Programmierung einstellen könnte, serielle Programmierbarkeit der Grenzen, Abschaltbarkeit der Spannungsversorgung Pullup + 18B20
via Mosfet, Temperaturmessung abschaltbar im Austausch gegen Batteriespannung  und .. und .. und ...

Aber 8K bleiben 8K Flash, es geht also eng zu mit weiteren Features.  :-\
Der 841 hat 2 richtige UARTS, so dass die Emulation wegfallen könnte und wieder mehr Flash zur Verfügung steht.


Mit SMD kann man ca. 20... 30 % kleiner und weniger in der Höhe auftragend bauen,
zusammen mit dem StepUp-Regler und z.B. nur einer 1,5V AA/AAA Batterie würde das Gehäuse nicht so wuchtig groß.
Manuell Löten lassen sich die SOT/SOIC-Gehäuseformen eigentlich auch sehr gut.

Als Batteriehalter könnte ich mir folgende Lösung mit 1 oder 2 Batterien vorstellen:
Batterie-Halterungen/Mignon-AA-Halterung/Batteriehalter-2x-Mignon-AA-mit-Anschlusskabel-kurze-Version.html
Batteriehalter-fuer-1-x-UM-3K-Mignonzelle-AA-mit-Anschlusskabel.html
Oder auch in AAA-Größe, wäre noch etwas kompakter. Drumherum dann ein 3D-gedrucktes Gehäuse,
natürlich in grünem ABS-Filament, in das sich der Batterie-Halter harmonisch einpasst ....
Diese Form direkt für Platinenmontage wäre auch eine Idee.

Einzelne integrierte  Batteriekontakte in dieser Form: Batteriekontakt-Doppel-Federkontakt-AA-Mignon stellen schon höhere Anforderungen an das Gehäuse-Design.




papa

BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Tom71

@papa Ich bin ja dran und drauf den AAduino mal nachzubauen. Ist auch alles recht günstig, bis auf diese beiden Batteriekontakte. Die sind nur teuer zu bekommen. Wenn jemand Lust hat, könnte man sich die Versandkosten bei z.B. tme teilen.
Homematic | RaspberryMatic

papa

BananaPi + CUL868 + CUL433 + HM-UART + 1Wire