|
SensEgg3 - FunkSensor im Ü-Ei (ATmega168PA, nRF24, BME280, NTC)
|
|
|
21.08.2021, 12:19
Beitrag #1
|
|||
|
|||
|
SensEgg3 - FunkSensor im Ü-Ei (ATmega168PA, nRF24, BME280, NTC)
Das SensEgg3 ist endlich fertig ...
Nachdem ich das SensEgg1, also den TemperaturFunksensor im Ü-Ei fertiggestellt hatte, habe ich den LowPowerTimer TPL5111 gefunden, und sofort die Idee, eine neue Version (V2) damit zu bauen. Die PCB habe ich fertig geplant, aber nie zur Produktion abgeschickt. Statt dessen dachte ich darüber nach, ob ich einen ATmega328P im TQFP-Gehäuse selber löten kann. Also eine neue PCB als Lötübung geplant (V3) und abgeschickt. Diese Version benutze ich z.Zt. als Prototyp zum testen und programmieren. Und hier kürze ich mal ab, in unterschiedlichster Reihenfolge und Häufigkeit anzuwenden: >>> gelötet, programmiert, getestet, gemessen, geflucht, gegrübelt, gestaunt, gefreut! Nur so viel: Wenn man einen nRF24 in einer Konfiguration mit möglichst wenig Schlafstrom benutzt, sollte man verschiedene Exemplare bei verschiedenen Spannungen (0.1V Schritte innerhalb der erlaubten Betriebsspannung) ausmessen! Ich habe ein Exemplar dabei, welches bei 3.1V 18µA Schlaftrom hat, normal sind da ca. 1.2µA ... Das gleiche Exemplar hat bei 2.0V dann nur noch 0.6µA Schlafstrom! Eckdaten zum SensEgg3: In ganz kurz ... der Sensor funkt alle 60sec die Temperatur, die Luftfeuchte, den Luftdruck und die Betriebsspannung an einen zentralen Empfänger, wobei die Spannungsversorgung eine Knopfzelle CR2032 (210-240mAh) ist, und diese rechnerisch über 7 Jahre ihren Dienst tut! In etwas länger ... der ATmega168PA schläft (ohne WDT), und wird alle 60sec am InterruptPin vom LowPowerTimer TPL5111 aufgeweckt, wobei diese beiden ICs zusammen einen Schlafstrom von nur 140-150nA haben. Zu diesem Schlafstrom gesellen sich noch die 100nA des BME280 (lt.DB), bleiben für den Schlafstrom des nRF24 ca. 860nA. Bei 2.985V habe ich 1.110µA Schlafstrom für das betriebsbereite SensEgg3 gemessen! In den 25.4ms die der ATmega168 @ 4MHz aktiv ist, wird die Temperatur via NTC gemessen, danach die Referenz auf 1.1V umgeschaltet. In den 10ms die die Referenz benötigt um sich zu stabilisieren, wird die Temperatur via Steinhart-Hart Gleichung ausgerechnet, eine Messung T/H/P im Forced Mode mit dem BME280 gemacht, und die Daten abgeholt. Die Status-LED blinkt so lange, wie das Abholen der LuftFeuchte-Daten dauert (2.8-2.9ms). Nun wird die Betriebsspannung gemessen (0.5ms), und die Referenz wieder auf Default gestellt. Die eingesammelten Werte werden dann in 6.1-6.2ms mit dem nRF24 verschickt, der ATmega168 geht wieder schlafen. Die Zeitangaben sind systemintern gemessen, und können entsprechend der Werkskalibrierung des ATmega168 für den internen R-C-Oszillator +/- 10% abweichen. Durch das Messen der Temperatur mit NTC verbessere ich die (lt.DB) max. Abweichung des BME280 von +/- 1*C auf +/- 0.2*C. In ein kleines Kästchen eingesperrt, messen bei mir ein SensEgg1, und das gerade fertig gewordene SensEgg3 mit unterschiedlichen NTCs bis auf kleiner 0.1*C Abweichung die gleiche Temperatur. Mache ich das Gleiche mit den BME280 und HTU21D, komme ich auf 0.8-1.2*C Unterschied. Ich behaupte nicht, damit die Temperatur "genau" messen zu können, aber zumindest messe ich bei gleichen Bedingungen die gleiche Temperatur. Der Sensor ist 3x4cm, bei ca. 1cm Gesamthöhe. Der hier verbaute BME280 ist ein 3.3v Typ, ohne Levelconverter und Spannungsregler. Alternativ kann auch ein HTU21D verbaut werden, wenn man den Sketch anpasst. Da bei diesem SDA und SCL gedreht sind, muss der äußere Steckplatz verwendet werden. Ein OLED SSD1306 kann auch direkt aufgesteckt werden (wieder andere Pin-Anordnung), und war mir bei verschiedenen Problemen nützlich. Der Empfänger ist noch der Gleiche wie vom SensEgg1, auch der Sketch ist nur um die Werte im Strukt erweitert, sowie ein paar Serial.print ... die nächste Baustelle. Code: 11:49:18.786 -> ID: 201 Temp: 24.2 *C Humi: 49.1 % Batt: 2.896 V Hdex: 26.9 1018.0 hPaSensor-ID 100 ist ein SensEgg1 mit NTC TS-NTC-103 von B+B Sensors mit 0.5% Genauigkeit (10k) Sensor-ID 201 ist ein SensEgg3 mit BME280 (3V) von Bosch und NTC 10K6A1 von Measurement Specialties mit 0.2% Genauigkeit (10k) Hdex ist der errechnete Humidex (Temp+Luftfeuchte-Wärmeempfinden). Bei Fragen, ...einfach raus damit ![]() ... und noch der Sketch: Code: #include <LowPower.h> // https://github.com/rocketscream/Low-PowerGruß André |
|||
|
26.08.2021, 10:05
Beitrag #2
|
|||
|
|||
|
RE: SensEgg3 - FunkSensor im Ü-Ei (ATmega168PA, nRF24, BME280, NTC)
Respect
Immer in Stress |
|||
|
26.08.2021, 11:31
Beitrag #3
|
|||
|
|||
|
RE: SensEgg3 - FunkSensor im Ü-Ei (ATmega168PA, nRF24, BME280, NTC)
Tolles Projekt. Du hast da auch sehr viel Arbeit reingesteckt!
Wie funktioniert das mit dem Ü-Ei (bilde mir ein das irgendwo mal gelesen zu haben, das man die Technik in ein Ü-Ei bekommt) und der Luftfeuchte? Wie lange dauert der Temperaturausgleich im Ü-Ei? Ich überlege mir gerade wie ich nRF24 mit meiner SmartHomeZentrale (RP4) vereinige. Hab da gar keine Erfahrung. (Ein ESP der das Signal empfängt und per MQTT zur Zentrale sendet?) Bisher arbeitet in jedem Zimmer ein ESP8266 und sendet per MQTT zur Zentrale. Die Akkus halten nur ca. 1/4 Jahr. Ich hätte Lust zum Nachbauen. Möchtest du Gerberfiles und Schematic auch veröffentlichen? |
|||
|
26.08.2021, 18:13
Beitrag #4
|
|||
|
|||
|
RE: SensEgg3 - FunkSensor im Ü-Ei (ATmega168PA, nRF24, BME280, NTC)
Hi,
Danke! ... schaut doch noch jemand vorbei ;-) @ N1d45, ja, ich habe relativ viel Zeit hier reingesteckt, aber wenn es Spaß macht, würde ich es nicht unbedingt als Arbeit bezeichnen. Nur Rückschläge sind ärgerlich, aber auch lehrreich. Der Temperaturausgleich ist schneller als bei meinen 2 gekauften (TFA/NoName) Thermometern (Im Gerät bzw. mit Außensensor). Aber ganz ohne Gehäuse würde ich nicht messen wollen, da jeder leiser Wind (bei Sonnenschein) die Temperatur ordentlich schwanken lässt, wenn jede Masse am Sensor fehlt. Es ist irritierend wenn die Temperatur um 3-4 Grad "zappelt" Bei der Luftfeuchte wusste ich schon vorher, daß ich dem Ü-Ei ein paar Löcher verpassen muss. Da bin ich noch am Testen, ob die ca. 2cm² mit kleinen Löchern reichen, oder mir was besseres einfallen lassen muss. Bei ruhender Luft sehr träge (geschlossene Räume), sobald aber ein leiser Zug geht, scheinen 3 - 5 Minuten zu reichen, um die Luftfeuchtewerte anzuzeigen, die das Tischgerät sofort nach den nächsten 1 -2 Messzyklen anzeigen kann. Aber hier bin ich noch empierisch am testen. Mit RPi und ESPs habe ich leider keine Erfahrungen, aber auch mir kam schon der Gedanke, so ein nRF24 an einen ESP zu hängen, um die Daten online verfügbar zu machen. Aber die Baustelle ist aktuell nicht auf dem Plan. Das Gerberfile kannst Du (und jeder der mich anschreibt) gern haben, nur einen Schaltplan habe ich derzeit nicht. Ich habe mich zuerst um die Platzaufteilung auf den 3x4cm gekümmert, den Atmega168 "gedreht und gewendet" wie ich am besten die Leiterzüge lege, und welche Pins ich verwenden muss/ verwenden kann. Mit einer Bestückungsliste wäre ich schneller fertig ![]() Kennst Du die Eckdaten zu Deinen ESP8266-Nodes? Schlafstrom, Betriebsstrom, Einschaltzeit? https://oregonembedded.com/batterycalc.htm ... vor allem mal mit dem Schlafstrom spielen! Gruß André |
|||
|
26.08.2021, 20:37
Beitrag #5
|
|||
|
|||
|
RE: SensEgg3 - FunkSensor im Ü-Ei (ATmega168PA, nRF24, BME280, NTC)
Ich werfe hier gerne auch mal ein paar Kilo Lob für das Projekt in den Ring.
![]() ![]() Ohne Rückschläge geht es kaum, Murphy lauert hinter jeder Ecke. Deine Geduld das Projekt bis zum Ende zu bringen bewundere ich. Vermutlich mussten auch ganz viele Ü-Eier als Nervennahrung dran glauben. ![]() Um so mehr freut man sich wenn ein funktionierendes und dazu noch gut "gestyltes" Ergebnis dabei heraus kommt. Auch wenn es nur ca. 20 Bauteile sind die auf die vorgegebenen Platinenmaße müssen ist man ständig am grübeln ob man besser dieses oder jenes Bauteil verwendet oder was einsparen kann. Die Idee mit dem TPL5111 gefällt mir. Man muss auch erst mal darauf kommen danach zu suchen. Ich bin auch schon seit geraumer Zeit an einem Projekt dran. Die Platinenmaße sind bei mir auch mit ca. 11x80mm "vorgegeben". (Ich hoffe die fertigt mir jemand wegen der 11mm) Auch bei mir sind es ca. 20 Bauteile. Einen 328er im TQFP habe ich schon verworfen weil der mit den 11mm absolut nicht harmonieren will. Alternativ plane ich nun mit einem ATTINY84 im SOIC-14. Das könnte mir aber noch auf die Füße fallen weil der weniger Timer hat als der 328er. Auf jeden Fall kann man in solch eine Idee gaaaanz viel Zeit und Gehirnschmalz investieren. Gruß Arne Mit zunehmender Anzahl qualifizierter Informationen bei einer Fragestellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort. |
|||
|
26.08.2021, 20:41
Beitrag #6
|
|||
|
|||
RE: SensEgg3 - FunkSensor im Ü-Ei (ATmega168PA, nRF24, BME280, NTC)
(26.08.2021 20:37)ardu_arne schrieb: Auf jeden Fall kann man in solch eine Idee gaaaanz viel Zeit und Gehirnschmalz investieren.Sowas hält das Gehirn am Laufen und dürfte auch gut gegen Alzheimer & Co. sein (hoffe ich). Dem Lob kann ich gern noch ein paar Kilos zugeben. Gruß Tommy "Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt) Alle von mir veröffentlichten Codes unterliegen der GPL Version 3 |
|||
|
27.08.2021, 09:40
Beitrag #7
|
|||
|
|||
|
RE: SensEgg3 - FunkSensor im Ü-Ei (ATmega168PA, nRF24, BME280, NTC)
Hi,
Danke euch für die vielen Kilos Lob, ich hoffe die machen nicht dick ![]() Ich fange ein Projekt zu 99% erst an, wenn ich alle relevanten Bauelemente habe, und zumindest Teillösungen im Hinterkopf. Und hier gibt es ja gewisse Erfahrungswerte vom ersten Funksensor. Nur mit den nRF24 bekommt man vermutlich einen Murphy gratis mitgeliefert ![]() Solange wie es funktional ist, versuche ich schon eine gewisse Ästhetik bei der Anordnung der Bauelemente auf die PCB zu bringen. Was den Schlafstrom betrifft, da habe ich sehr viel mit dem oben verlinkten Kalkulator rumgespielt. Bei dem SensEgg1 sind es 75% Stromverbrauch allein für den WDT, da sucht man nach Lösungen. Arne, die 11x80mm sind da eine ganz andere Hausnummer, da habe ich den Platz eines Fußballfeldes, und konnte mir durchgängig 1206 SMD-Balken leisten. Unter denen bekommt man wenigstens noch zwei Leiterzüge durch, ohne die 2. Seite der PCB benutzen zu müssen. Zumindest meckert der Kalkulator bei JLCPCB nicht bei 11x80mm, aber Du solltest Dir auf jeden Fall die Capabilities Deines Produzenten ansehen und im Layouter einstellen. Gruß André |
|||
|
27.08.2021, 13:16
Beitrag #8
|
|||
|
|||
|
RE: SensEgg3 - FunkSensor im Ü-Ei (ATmega168PA, nRF24, BME280, NTC)
JLCPCB lässt auf den ersten Blick 5x5mm als kleinstes Maß zu. Bei meinem bisherigen Lieferanten sind es 10x10mm. Passt also bei beiden.
1206 SMD ist mir auch lieber als 0805 oder noch kleiner. Werde mal mit dem layouten loslegen und sehen was machbar ist. Nur interessehalber, mit welchem Programm hast du die Platine gemacht? Gruß Arne Mit zunehmender Anzahl qualifizierter Informationen bei einer Fragestellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort. |
|||
|
|
|
| Möglicherweise verwandte Themen... | |||||
| Thema: | Verfasser | Antworten: | Ansichten: | Letzter Beitrag | |
| SensEgg.433 - FunkSensor [ATtiny1614, RFM69, BME280, NTC, LDR] | SpaghettiCode | 5 | 118 |
11.10.2024 09:01 Letzter Beitrag: N1d45 |
|
| SensEgg.light - FunkSensor [ATtiny814, nRF24, BME280, NTC] **** | SpaghettiCode | 196 | 30.454 |
30.09.2024 14:16 Letzter Beitrag: Kai R. |
|
| SensEgg1 - Temperatursensor im Ü-Ei (ATtiny84, nRF24, NTC) | SpaghettiCode | 12 | 13.692 |
27.07.2021 18:53 Letzter Beitrag: Chopp |
|
| 7 Zoll Display und NRF24 Propleme | schlappy82 | 15 | 11.320 |
28.11.2016 17:10 Letzter Beitrag: hotsystems |
|
| Lampennetzwerk nrf24 Gen.3 - Ideensammlung | MaHaI976 | 6 | 6.341 |
08.01.2016 20:23 Letzter Beitrag: MaHaI976 |
|
| Musik- Netzwerk (nrf24?) | MaHa1976 | 5 | 6.864 |
30.03.2015 06:57 Letzter Beitrag: MaHa1976 |
|
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste








