Re: [ethersex-devel] BMP085 mit unbrauchbaren Daten - UrsacheN & LösungEN .cpp .h example

2014-08-31 Diskussionsfäden reiner


Am 23.05.2014 um 23:50 schrieb Florian Asche:

Hi,

konnte das Problem leider nicht wirklich eingrenzen.
:/

Gruß Flo

-Ursprüngliche Nachricht-
Von: e...@users.sourceforge.net [mailto:e...@users.sourceforge.net]
Gesendet: Freitag, 22. November 2013 08:06
An: Florian Asche
Cc: reiner; ethersex-devel@list.zerties.org
Betreff: Re: [ethersex-devel] BMP085 mit unbrauchbaren Daten

Hallo Florian,


ich habe den BMP085 inzwischen mit einem anderen Sourcecode (Bascom)
getestet, dort funktioniert er mit Erfolg. Das Problem liegt also bei Ethersex.

Patch willkommen.




Nachdem ich nun ein breadboard habe und mal eben vernünftige Tests 
machen kann anstelle der Net-IO Krokoklemkrämpfe 


Mit Arduino Mini einen BMP085 via I2C Bus mit je zwei mal 10k pullups!!! 
nach vcc siehe


Example.ino
Adafruit_BMP085.h
Adafruit_BMP085.cpp

*Ursachen bzw. Nebenbedingungen:*
Ohne die Pullups bei I2C nur Schrott. Hängt von der individuellen 
Schaltung ab in der man arbeitet ob die bereits drin sind oder nicht und 
ist immer im Einzelfall zu prüfen. Ob das mit 5k oder 15k geht weiss ich 
auch nicht, testen testen .

Nächste Besonderheit beim BMP085:
*BMP085 arbeitet NATIV mit 3.3 Volt *
Mein Modul - gesponsort von Wody2001 - hat einen *Miniregler* onboard so 
das es mit*5 Volt* arbeitet Ich  habe das erst gar nicht bemerkt da 
so klitzeklein und war dadurch auch nie auf der grünen Seite was die 
Arbeitsbedingungen angeht.


Mein Teil macht jetzt jedenfalls sauber das was es soll. Habe für den 
Fall der F_e_lle mal dazu gepackt.  Mich würde interessieren ob es an 
den elektrischen Bedingungen oder am Code liegt bei Ethersex.


BTW hat jemand einen DS75 dazu bringen können mit mehr als 9 Bit 
Genauigkeit zu arbeiten?
Der DS75 hat lt. Datenblatt im gegensatz zum LM75 eine programmierbare 
Auflösung im Konfigregister Bit 5 und 7.
Ich kann das Register setzen wie ich will (default immer 0 nach 
einschalten) 0x20 = 10 Bit, 0x40 = 11Bit oder 0x60= 12 Bit resolution 
aber ich bekomme immer nur 0,5 Grad Sprünge raus.
Irgend jemand da schon mal erfolg gehabt oder mache ich da einen 
Denkfehler?
Suche auch noch Infos um eine Arduino mini  (ist so praktisch auf 
kleiner Platine fertig zum spottpreis) im low power mode laufen zu 
lassen wegen Solarbetrieb und Solarmessungen. Möchte die Panels 
möglichst klein halten bzw. mit einem 2*2cm Panel auskommen für alles.



MfG
Reiner


Example.ino:
###
/* An Arduino Mini and BMP085 and a 4*20 LCD. To put Data to LCD you 
have to convert to string!
to get the correct altitude you have to pass the actual barometric 
pressure in PASCAL not hektopascal!! along with the call.

*/
#include 
const int numRows = 4;
const int numCols = 20;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);// Pinbelegung LCD definieren 
hier 4draht = Nibble


#include // I2C einbinden
#include // Adafruit Bibliothek einbinden

#define bmp85Adresse 0x77 // Andresse unter der ein BMP85 zu 
erreichen ist


Adafruit_BMP085 bmp;   // Variable für Adafruit Lib definieren

char dataString[7];   // gelesene Daten als String aufbereitet: 
(-xx)x.x

double temp;// gelesene Temperatur als double
double druck;   // gelesener Druck bzw. Höhe als double
float high;// geleseene Hoehe als float
int i; // Zählvariable um das Display 
jeden100. loop zu löschen um Dezimalverschiebungen zu bereinigen


void setup() {
  lcd.begin(numCols,numRows);
  lcd.setCursor(0,0);
  lcd.write("  Temperatur und ");
  lcd.setCursor(0,1);
  lcd.write("Luftdruck von BMP085");
  lcd.setCursor(0,3);
  lcd.write(" C by Netzadmins.de");
  delay(1);
  lcd.clear();

  Serial.begin(9600);

  // Sensor BMP085 initialisieren
 if (!bmp.begin()) {
  Serial.println("Keinen gültigen BMP085 Sensor gefunden!");
  while (true) {}
 }
  Wire.begin();
}

void loop()
{
 for (i = 1; i<=100; i++) {
 Serial.print("Temperatur: ");
// readTemperature() Temperatur °C auslesen und anzeigen
 Serial.print(bmp.readTemperature());
 Serial.print(" ");  // Hier müssen wir ein wenig tricksen
 Serial.write(176);  // um das °-Zeichen korrekt darzustellen
 Serial.println("C");

  temp=bmp.readTemperature();
  dtostrf(temp, 4, 1, dataString);//dtostrf(floatVar, 
minStringWidthIncDecimalPoint, numVarsAfterDecimal, charBuf); (standard 
avr-libc function)

  lcd.setCursor(0,0);
  lcd.write(dataString);
  lcd.write("Grad Celsius");

 Serial.print("Luftdruck: ");
// readPressure() Luftdruck in Pa auslesen und anzeigen
 druck = bmp.readPressure();
 Serial.print(druck);
 Serial.print(" Pa =   ");
 druck = druck / 100;
 Serial.print(druck);
 Serial.println(" hektoPascal");

  druck=bmp.readPressure();
  dtostrf(druck, 4, 1, dataString);  

Re: [ethersex-devel] BMP085 mit unbrauchbaren Daten - UrsacheN & LösungEN .cpp .h example

2014-08-26 Diskussionsfäden Florian Asche
Hi,

 
nur noch mal zur Info... 

 
der Bug wurde gefunden und behoben!

Siehe 
https://github.com/ethersex/ethersex/commit/bb9c079805473d0c8f35a5b7d752dab305b2c487
 

 
Danke fr den Tipp mit den Pullups. Ich habe bisher keine im Einsatz.

 
Gru Florian

 
Von: reiner [mailto:rei...@netzadmins.de] 
Gesendet: Sonntag, 24. August 2014 11:13
An: Florian Asche; e...@users.sourceforge.net
Cc: ethersex-devel@list.zerties.org
Betreff: Re: [ethersex-devel] BMP085 mit unbrauchbaren Daten - UrsacheN & 
LsungEN .cpp .h example

 
 
Am 23.05.2014 um 23:50 schrieb Florian Asche:


Hi,


 

konnte das Problem leider nicht wirklich eingrenzen.


:/


 

Gru Flo


 

-Ursprngliche Nachricht-


Von: e...@users.sourceforge.net <mailto:e...@users.sourceforge.net>  
[mailto:e...@users.sourceforge.net <mailto:e...@users.sourceforge.net> ] 


Gesendet: Freitag, 22. November 2013 08:06


An: Florian Asche


Cc: reiner; ethersex-devel@list.zerties.org 
<mailto:ethersex-devel@list.zerties.org> 


Betreff: Re: [ethersex-devel] BMP085 mit unbrauchbaren Daten


 

Hallo Florian,


 

ich habe den BMP085 inzwischen mit einem anderen Sourcecode (Bascom) 


getestet, dort funktioniert er mit Erfolg. Das Problem liegt also bei Ethersex.


 

Patch willkommen.


 

 

Nachdem ich nun ein breadboard habe und mal eben vernnftige Tests machen kann 
anstelle der Net-IO Krokoklemkrmpfe 

Mit Arduino Mini einen BMP085 via I2C Bus mit je zwei mal 10k pullups!!! nach 
vcc siehe 

Example.ino
Adafruit_BMP085.h
Adafruit_BMP085.cpp

Ursachen bzw. Nebenbedingungen:
Ohne die Pullups bei I2C nur Schrott. Hngt von der individuellen Schaltung ab 
in der man arbeitet ob die bereits drin sind oder nicht und ist immer im 
Einzelfall zu prfen. Ob das mit 5k oder 15k geht weiss ich auch nicht, testen 
testen .
Nchste Besonderheit beim BMP085: 
BMP085 arbeitet NATIV mit 3.3 Volt 
Mein Modul - gesponsort von Wody2001 - hat einen Miniregler onboard so das es 
mit 5 Volt arbeitet Ich  habe das erst gar nicht bemerkt da so 
klitzeklein und war dadurch auch nie auf der grnen Seite was die 
Arbeitsbedingungen angeht. 

Mein Teil macht jetzt jedenfalls sauber das was es soll. Habe fr den Fall der 
F_e_lle mal dazu gepackt.  Mich wrde interessieren ob es an den elektrischen 
Bedingungen oder am Code liegt bei Ethersex. 

BTW hat jemand einen DS75 dazu bringen knnen mit mehr als 9 Bit Genauigkeit zu 
arbeiten? 
Der DS75 hat lt. Datenblatt im gegensatz zum LM75 eine programmierbare Auflsung 
im Konfigregister Bit 5 und 7.
Ich kann das Register setzen wie ich will (default immer 0 nach einschalten) 
0x20 = 10 Bit, 0x40 = 11Bit oder 0x60= 12 Bit resolution aber ich bekomme immer 
nur 0,5 Grad Sprnge raus. 
Irgend jemand da schon mal erfolg gehabt oder mache ich da einen Denkfehler? 
Suche auch noch Infos um eine Arduino mini  (ist so praktisch auf kleiner 
Platine fertig zum spottpreis) im low power mode laufen zu lassen wegen 
Solarbetrieb und Solarmessungen. Mchte die Panels mglichst klein halten bzw. 
mit einem 2*2cm Panel auskommen fr alles. 


MfG
Reiner


Example.ino:
###
/* An Arduino Mini and BMP085 and a 4*20 LCD. To put Data to LCD you have to 
convert to string! 
to get the correct altitude you have to pass the actual barometric pressure in 
PASCAL not hektopascal!! along with the call. 
*/
#include 
const int numRows = 4;
const int numCols = 20;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);    // Pinbelegung LCD definieren hier 
4draht = Nibble

#include     // I2C einbinden
#include         // Adafruit Bibliothek einbinden

#define bmp85Adresse 0x77 // Andresse unter der ein BMP85 zu erreichen ist 

Adafruit_BMP085 bmp;   // Variable fr Adafruit Lib definieren

char dataString[7];   // gelesene Daten als String aufbereitet: (-xx)x.x
double temp;            // gelesene Temperatur als double
double druck;       // gelesener Druck bzw. Hhe als double
float high;            // geleseene Hoehe als float
int i; // Zhlvariable um das Display jeden100. 
loop zu lschen um Dezimalverschiebungen zu bereinigen

void setup() {
  lcd.begin(numCols,numRows);
  lcd.setCursor(0,0);
  lcd.write("  Temperatur und ");
  lcd.setCursor(0,1);
  lcd.write("Luftdruck von BMP085");
  lcd.setCursor(0,3);
  lcd.write(" C by Netzadmins.de");
  delay(1);
  lcd.clear();

  Serial.begin(9600);

  // Sensor BMP085 initialisieren
 if (!bmp.begin()) {
  Serial.println("Keinen gltigen BMP085 Sensor gefunden!");
  while (true) {}
 }
  Wire.begin();
}

void loop()  
{  
 for (i = 1; i<=100; i++) {  
 Serial.print("Temperatur: ");
// readTemperature() Temperatur C auslesen und anzeigen
 Serial.print(bmp.readTemperature());
 Serial.print(" ");  // Hier mssen wir ein wenig tricksen
 Serial.write(176);  // um das -Zeichen korrekt

Re: [ethersex-devel] BMP085 mit unbrauchbaren Daten

2014-06-12 Diskussionsfäden eku
Hallo,

> Ich werde mal schauen sobald ich Zeit finde, 
> ob im Ethersex Source ein entsprechendes Problem zu sehen ist.
> 
> Von deiner Beschreibung her passt das aber sehr gut.
...
> Der Fehler liegt in den Datentypen, an einigen Stellen kann es zu 
> Integerpromotion kommen,
> wodurch die im Datenblatt beschriebenen Datentypen nicht mehr ausreichen und 
> es zu den
> Mondwerten kommt.

wie immer bei solchen Problemem gibt es zwei Optionen:

1) ihr kämpft euch selber durch und liefert die Korrektur in Form eines
   Pull Requests auf Github

2) ihr spendet dem Ethersex-Entwicklerteam ein Examplar der Hardware

Letzterem sind z.B. die Erweiterungen für Multi-DHT zu verdanken.


___
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel


Re: [ethersex-devel] BMP085 mit unbrauchbaren Daten

2014-06-11 Diskussionsfäden Florian Asche
Hi,
)das hört sich schon mal gut an. 

Ich werde mal schauen sobald ich Zeit finde, 
ob im Ethersex Source ein entsprechendes Problem zu sehen ist.

Von deiner Beschreibung her passt das aber sehr gut.

Gruß Florian

-Ursprüngliche Nachricht-
Von: Stefan Teubel [mailto:ste...@sync-hv.de] 
Gesendet: Dienstag, 10. Juni 2014 20:50
An: Florian Asche
Betreff: Re: [ethersex-devel] BMP085 mit unbrauchbaren Daten

Hallo Florian,

ich hatte das selbe Problem bei meiner eigenen Implementation für den BMP085.

Der Fehler liegt in den Datentypen, an einigen Stellen kann es zu 
Integerpromotion kommen, wodurch die im Datenblatt beschriebenen Datentypen 
nicht mehr ausreichen und es zu den Mondwerten kommt.

Den Ethersex Code habe ich mir noch nicht genau angeschaut, aber auf den ersten 
Blick dürfte das der Fehler sein.

Viele Grüße,

Stefan



___
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel


Re: [ethersex-devel] BMP085 mit unbrauchbaren Daten

2014-05-23 Diskussionsfäden Florian Asche
Hi,

konnte das Problem leider nicht wirklich eingrenzen.
:/

Gruß Flo

-Ursprüngliche Nachricht-
Von: e...@users.sourceforge.net [mailto:e...@users.sourceforge.net] 
Gesendet: Freitag, 22. November 2013 08:06
An: Florian Asche
Cc: reiner; ethersex-devel@list.zerties.org
Betreff: Re: [ethersex-devel] BMP085 mit unbrauchbaren Daten

Hallo Florian,

> ich habe den BMP085 inzwischen mit einem anderen Sourcecode (Bascom) 
> getestet, dort funktioniert er mit Erfolg. Das Problem liegt also bei 
> Ethersex.

Patch willkommen.



___
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel


Re: [ethersex-devel] BMP085 mit unbrauchbaren Daten

2013-11-21 Diskussionsfäden eku
Hallo Florian,

> ich habe den BMP085 inzwischen mit einem anderen Sourcecode (Bascom)
> getestet, dort funktioniert er mit Erfolg. Das Problem liegt also bei 
> Ethersex. 

Patch willkommen.

___
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
https://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel


Re: [ethersex-devel] BMP085 mit unbrauchbaren Daten

2013-11-21 Diskussionsfäden Florian Asche
Hi,

ich habe den BMP085 inzwischen mit einem anderen Sourcecode (Bascom) getestet, 
dort funktioniert er mit Erfolg. Das Problem liegt also bei Ethersex. 
Was die Anschlüsse angeht, so habe ich I2C (SDA,SCL), VCC und GND 
angeschlossen. XCLR und EOC habe ich nicht verbunden.

Zu dem DS75/LM75 kann ich dir nichts sagen, ich benutze für die reine 
Temperaturmessung die DS18B20.

Gruß Florian

-Ursprüngliche Nachricht-
Von: ethersex-devel-boun...@list.zerties.org 
[mailto:ethersex-devel-boun...@list.zerties.org] Im Auftrag von reiner
Gesendet: Donnerstag, 21. November 2013 12:36
An: ethersex-devel@list.zerties.org
Betreff: Re: [ethersex-devel] BMP085 mit unbrauchbaren Daten



Florian Asche  writes:

> 
> 
> Hallo zusammen, ich habe gestern ein paar neue BMP085 aus China erhalten.
Günstig bei Ebay bekommen ;)Leider wohl etwas zu günstig. Die Sensoren an sich 
sehen aber 1:1 identisch aus, aber die Daten sind unterschiedlich. Während der 
vorhandene Sensor sauber mit Ethersex läuft:
   bmp085 temp301   bmp085 temp300   bmp085 temp299   bmp085 apress99817
bmp085 apress99820 bmp085 apress99828 Werfen die neuen nur Daten, mit denen 
man nichts anfangen kann: bmp085 temp-2525 bmp085
temp-2525 bmp085 temp-2525 bmp085 apress53049 bmp085
apress53053 bmp085 apress53047 Hat jemand schon die selbe Erfahrung gemacht 
und einen Tipp für mich? Gruß Florian

Ahoi,

kann ich bestätigen. Allerdings habe ich auch einen DS75 der mit dem LM75 
kompatibel sein soll, getestet und der macht folgendes seltsame Verhalten: 
i2c detect
detected at: 0x48 (72)
detected at: 0x77 (119)
OK
lm75 0
41.0
lm75 0
9.0
lm75 0
9.0
bmp085 temp
-2620
bmp085 temp
-2620
bmp085 apress
48962
bmp085 apress
48957
.

beim BMP habe ich die beiden Anschlüsse extra-reset und noch irgendwas 
unbeschaltet gelassen. Kann es sein dass das Übel hier sitzt? 
Bleiben aber immer noch die seltsamen Werte vom DS75 ... Muss da nicht was aus 
dem ROM gelesen werden um es dann zu verrechnen, zumindest beim bmp müsste das 
so sein, da m. W. n. die Eichung im Werk da abgelegt wird. 

MfG
Reiner


___
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
https://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel



___
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
https://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel


Re: [ethersex-devel] BMP085 mit unbrauchbaren Daten

2013-11-21 Diskussionsfäden reiner


Florian Asche  writes:

> 
> 
> Hallo zusammen, ich habe gestern ein paar neue BMP085 aus China erhalten.
Günstig bei Ebay bekommen ;)Leider wohl etwas zu günstig. Die Sensoren an
sich sehen aber 1:1 identisch aus, aber die Daten sind
unterschiedlich. Während der vorhandene Sensor sauber mit Ethersex läuft:
   bmp085 temp301   bmp085 temp300   bmp085 temp299   bmp085 apress99817
bmp085 apress99820 bmp085 apress99828 Werfen die neuen nur Daten, mit
denen man nichts anfangen kann: bmp085 temp-2525 bmp085
temp-2525 bmp085 temp-2525 bmp085 apress53049 bmp085
apress53053 bmp085 apress53047 Hat jemand schon die selbe Erfahrung
gemacht und einen Tipp für mich? Gruß Florian

Ahoi,

kann ich bestätigen. Allerdings habe ich auch einen DS75 der mit dem LM75
kompatibel sein soll, getestet und der macht folgendes seltsame Verhalten: 
i2c detect
detected at: 0x48 (72)
detected at: 0x77 (119)
OK
lm75 0
41.0
lm75 0
9.0
lm75 0
9.0
bmp085 temp
-2620
bmp085 temp
-2620
bmp085 apress
48962
bmp085 apress
48957
.

beim BMP habe ich die beiden Anschlüsse extra-reset und noch irgendwas
unbeschaltet gelassen. Kann es sein dass das Übel hier sitzt? 
Bleiben aber immer noch die seltsamen Werte vom DS75 ... Muss da nicht was
aus dem ROM gelesen werden um es dann zu verrechnen, zumindest beim bmp
müsste das so sein, da m. W. n. die Eichung im Werk da abgelegt wird. 

MfG
Reiner


___
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
https://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel


[ethersex-devel] BMP085 mit unbrauchbaren Daten

2013-08-18 Diskussionsfäden Florian Asche
Hallo zusammen,


 

ich habe gestern ein paar neue BMP085 aus China erhalten. Günstig bei Ebay 
bekommen ;)


Leider wohl etwas zu günstig. Die Sensoren an sich sehen aber 1:1 identisch 
aus, aber die Daten sind unterschiedlich.


 

Während der vorhandene Sensor 

  sauber mit Ethersex läuft: 


   bmp085 temp


301


   bmp085 temp


300


   bmp085 temp


299


   bmp085 apress


99817


 bmp085 apress


99820


 bmp085 apress


99828


 

Werfen die neuen 
  nur 
Daten, mit denen man nichts anfangen kann:


 bmp085 temp


-2525


 bmp085 temp


-2525


 bmp085 temp


-2525


 bmp085 apress


53049


 bmp085 apress


53053


 bmp085 apress


53047


 

Hat jemand schon die selbe Erfahrung gemacht und einen Tipp für mich?


 

Gruß Florian

___
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
https://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel