• .
  • Willkommen im Forum!
  • Alles beim Alten...
  • Du hast kaum etwas verpasst ;-)
  • Jetzt noch sicherer mit HTTPS
Hallo, Gast! Anmelden Registrieren


Sensor , zb Temperatur ..usw.
#1
nu zunächst mal zur Auflösung: die ist zunächst ala Db vorgegeben, was der Sensor halt so "kann" ;
aber man kann daran ja noch etwas "drehen", falls es das Teil hergibt: 
dazu mal ein Beispiel, mit dem DHT11 , Feuchte + Temp. -Sensor , in coole Fundstücke -> 
https://stromrichter.org/showthread.php?...#pid313063

nach erstem lesen mit der DHTsensorlibrary gibt er nur eine ganzzahl aus, also zb 22° , 57% ;
das ist mager, zumal das Db ja was von 16bit Auflösung verspricht....also lib etwas verändert, damit die 2x 8bit überhaupt gelesen werden,
Code:
float DHT::readTemperature(bool S, bool force) {
 float f = NAN;

 if (read(force)) {
   switch (_type) {
   case DHT11:
     f = data[3];
     f = f/10;
     f = data[2] + f;
     break;
   case DHT22:
   case DHT21:
     f = data[2] & 0x7F;
     f *= 256;
     f += data[3];
     f *= 0.1;
     if (data[2] & 0x80) {
       f *= -1;
     }
     if(S) {
       f = convertCtoF(f);
     }
     break;
   }
 }
 return f;
}

float DHT::convertCtoF(float c) {
 return c * 1.8 + 32;
}

float DHT::convertFtoC(float f) {
 return (f - 32) * 0.55555;
}

float DHT::readHumidity(bool force) {
 float f = NAN;
 if (read()) {
   switch (_type) {
   case DHT11:
    // f = data[0];
     f = data[1];
     f = f/10;
     f = data[0] + f;
     break;
   case DHT22:
   case DHT21:
     f = data[0];
     f *= 256;
     f += data[1];
     f *= 0.1;
     break;
   }
 }
 return f;
}


real kommt dann immerhin: 22,3° und 57,0% raus - also temp in 1/10 und Feuchte ohne Dezimal.

aber der temp-Wert rauscht erheblich....also average / Mittelwert gemacht; siehe da, er kann jetzt sogar 1/100 ° mit guter Stabilität anzeigen, das is doch mal was. für 60 ct. 
interessant: einmal anpusten, aus 1m Entfernung, bringt locker +0,05°  Tongue ; allerdings braucht es ca 20min, bis er sich wieder "beruhigt" hat.
(der DHT11 kann max. alle 2 sec neuen Wert liefern, ich lese (in der DCF77-Funkuhr ) nur alle 12 sec aus, da dauert das natürlich...)

next: Test mit BMP280 , Druck+Temp. sensor ; kann schon 0,01° als standard; mit maximaler Auflösung angeblich 10/sec : 20bit bzw 0,0003° Auflösung;

kostet allerdings ca, 10 eu ....aber bei ali für 70 ct gefunden  Big Grin
https://de.aliexpress.com/item/I2C-SPI-B...95247.html
siehe -> coole Fundstücke...

btw. wie die Chinesen solche Preise machen können, ist mir immer wieder rätselhaft; selbst mit "Subvention" -- der gute Chinese will vmtl ja noch was dran verdienen ...  Confused
"It is hard to make a system idiot-proof because idiots are so ingenious."
 
Reply
#2
jepp.
Rohdaten vom BMP280:
   

am Ende ca. 20 cm hoch gehoben -> geht von 443,6 auf 443,8 m . das passt.  Big Grin

wobei: Augsburg 494 m ü. NHN ; aber ich bin nicht im Zentrum, das etwas höher liegt, vmtl rund 40m ; 
da treffen die gemessenen 443 m -ohne jede Kalibrierung, wohlgemerkt - schon verdammt gut.  Tongue
"It is hard to make a system idiot-proof because idiots are so ingenious."
 
Reply
#3
Ich bin für BME680. Big Grin

(Oder SHT30/31/35)
 
Reply
#4
Ich hab mir mal ein paar gekauft (Ebay für 1,3$).
 
Reply
#5
welchen ? link...
"It is hard to make a system idiot-proof because idiots are so ingenious."
 
Reply
#6
Den: https://www.ebay.com/itm/201914003131?
 
Reply
#7
ok..
ich hatte , ohne viel probieren, einfach: I2C_Sensor_Lib  benutzt;
von hier:
https://www.best-microcontroller-project...mp280.html

+ nen nano etwas modifiziert: 5V abgetrennt und auf die 3.3 vom CH341 gelegt, somit "3.3V nano" gebastelt.  Wink
das erspart irgendwelche 5 -> 3 V Pegelwandler für die I2C Signale;  Wink

next: mal an den Parametern drehen...  Tongue
"It is hard to make a system idiot-proof because idiots are so ingenious."
 
Reply
#8
Arduino hat doch eine vernünftige I2C-Bibliothek, wenn ich mich recht erinnere (wire.h). Warum was Externes benutzen?

Ich habe noch einige ungenutzte Teensy2.0, die kann man durch Auflöten eines Spannungswandlers auf 3,3V umstellen.
 
Reply
#9
hm, wire.h wird benutzt , die sensor lib ist für die sensoren, ohne das selbst zu machen....#include "i2c_BMP280.h"  , sowas zb.
i.ü. hab ich das nicht erfunden, das ist einfach von der gezeigten Quelle.
+ funktioniert ja auch, erstmal.

die 3.3V sind ja "unpassend" , weil der original Atmel auf 5V läuft, der BMP280 aber ein 3.3V - Typ ist; also eine hardware-Problematik  Wink

+ noch zu den daten vom BMP280 : die 27,8 ° scheinen mir deutlich zu viel - absolut gesehen; der DHT11 erzählt was bei 25.7 (aber ist näher an der Wand, also "im Raum" etwas mehr anzunehmen ) und meine "Referenz", ein oller Alkohol-Thermometer, zeigt etwa 26,5° , an der Position des BMP.
IR Thermometer zeigt hier 26,7° , das dürfte also nahe an der "Wahrheit" liegen.

also ich sag mal: absolut rund 1° zuviel....hat ja mit der relativen Auflösung nix zu tun.
ala db: absolut +/- 1° . naja...liegt dann ja im Rahmen.  Rolleyes
"It is hard to make a system idiot-proof because idiots are so ingenious."
 
Reply
#10
(03.06.2018, 11:08 PM)alfsch schrieb: die 3.3V sind ja "unpassend" , weil der original Atmel auf 5V läuft, der BMP280 aber ein 3.3V - Typ ist; also eine hardware-Problematik  Wink
Auf dem 8bit-Teensy sitzt ein ATMEGA32U4, das Board ist für 3,3V vorbereitet. Aber man muss dann wohl mit 8MHz auskommen.
Zur Genauigkeit - vielleicht lässt sich die absolute Genauigkeit per Software kalibrieren? Aber wenn ich Hundertstel messe, ist die relative Genauigkeit interessanter  Weih .
 
Reply
#11
Absolute Genauigkeit geht nur mit Messnormal (kalibrieren). Wichtig wäre hier die absolute Präzision. An der relativen ->Präzision<- kannst du per Dezimation schrauben, auf Kosten der Bandbreite/Messfrequenz. Es lassen sich ja durchaus 16bit sinnvoll auf 20bit "aufblasen", wenn genug Rauschen vorhanden ist.

Präzision, Genauigkeit, Richtigkeit: http://www.soil.tu-bs.de/lehre/Skripte/S...dungen.pdf

Jaja, Besserwisser mag keiner. Big Grin

Decimation:
http://ww1.microchip.com/downloads/en/Ap...oc8003.pdf
 
Reply
#12
Zitat:Unter Genauigkeit eines Meßverfahrens verstehen Funk et al. [13] die gesamte Abweichung
eines Meßverfahrens. Da sich die Richtigkeit eines Meßverfahren nur am systematischen
Fehler orientiert, und die Präzision eines Verfahrens am zufälligen Fehler, ist die Frage
offen, wie Meßverfahren insgesamt zu bewerten sind.
Einfach ist die Frage zu beantworten, wenn beide Meßverfahren die gleiche Richtigkeit besitzen.
In diesem Fall wird das Verfahren mit der größeren Präzision gewählt. Umgekehrt
wird bei zwei Verfahren mit der gleichen Präzision das Verfahren mit der größeren Richtigkeit
zu wählen sein.
Schwieriger ist die Frage zu beurteilen, wenn ein Meßverfahren eine hohe Präzision und eine
geringe Richtigkeit hat und das andere eine geringe Präzision aber eine hohe Richtigkeit.

motz  motz  motz

Das ist ein sehr schöner Erguss. Mir fällt jetzt aber keine nennenswerte Ungenauigkeit in der Präzision der Richtigkeit meines vorherigen Postings auf  klappe  aufsmaul . Muss auch nicht Big Grin .
 
Reply
#13
Zitat: Schwieriger ist die Frage zu beurteilen, wenn ein Meßverfahren eine hohe Präzision und eine
geringe Richtigkeit hat und das andere eine geringe Präzision aber eine hohe Richtigkeit.

Absolut korrekt, ich hatte 2 Semester Messtechnik, da musste man aber GANZ! genau unterscheiden, ob Präzision oder Genauigkeit gemeint war. Big Grin
 
Reply
#14
so, mal parameter gedreht... temp. löst tatsächlich auf etwa 3/1000 auf...wie db sagt.

   

+ rel. flott: die zeilen werden etwa alle 200 ms geschrieben , also 5 Mess./sec.

+ witzig: lass ich ne weile laufen, dann setzte ich mich wieder davor und guck die Werte an: temp. steigt um locker 3/100 ...hmm..aah: vmtl. die Strahlungswärme von mir selbst  Cool
gehe ich wieder ne Weile weg, wird es wieder "kühler"  Tongue
"It is hard to make a system idiot-proof because idiots are so ingenious."
 
Reply
#15
Woher kommen die beiden "Height" Werte, was ist was?
 
Reply
#16
der erste, PT.. , ist gemittelt aus den Rohdaten, der 2. Height ist der aktuell gelesene Wert; ebenso Pa und Temp ;
der Sensor geht echt gut...immerhin 3/1000 °C Auflösung und das relativ flott : 20 Werte / sec , ohne die maximale interne Filterung kann er sogar 150 / sec. , mit weniger Auflösung natürlich.
mir schwebt ne nette Anwendung vor: Schalldruck - Kalibrator !
das sollte gehen, mit zb 50 Hz , bei 100dB Schalldruck: das können die kleinen mics locker ab, dabei sollte sich genügend "Druck" für den Sensor ergeben, um über einige Sek /Mittelung einen genauen Schalldruck zu messen.  Tongue
"It is hard to make a system idiot-proof because idiots are so ingenious."
 
Reply
#17
(04.06.2018, 01:11 PM)christianw. schrieb: Absolut korrekt, ich hatte 2 Semester Messtechnik, da musste man aber GANZ! genau unterscheiden, ob Präzision oder Genauigkeit gemeint war. Big Grin
Das Leben als Messdiener ist nun mal kein Zuckerschlecken klappe
...mit der Lizenz zum Löten!
 
Reply
#18
hm, gerade gesehen: ich mach noch irgendwas falsch...der BMP280 kann 3/10000 ° Auflösung , nicht 3/1000  Rolleyes
zuviele Nullen....verwirren mich einfach.  Wink
"It is hard to make a system idiot-proof because idiots are so ingenious."
 
Reply