Czujniki w bibliotece SuplaDevice

dobo
Posts: 1051
Joined: Sun Apr 07, 2019 8:14 pm
Location: Nadarzyn

Post

Jeśli chodzi o adresy to fajnie by było je definiować spod GUI.
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

dobo wrote: Thu Apr 09, 2020 11:34 pm Jeśli chodzi o adresy to fajnie by było je definiować spod GUI.
Na razie w bibliotece nie ma GUI. Także takie opcje zostwię ludziom, którzy będą robić jakieś gotowe aplikacje na bazie biblioteki :)
Najlepsze suple dla Twojego domu :mrgreen:
dobo
Posts: 1051
Joined: Sun Apr 07, 2019 8:14 pm
Location: Nadarzyn

Post

Zgadza się kod programu korzysta z biblioteki przy kompilacji. Chodziło o uproszczenie tego w bibliotece o czym pisał @shimano73 by jeszcze prościej to zaimplementować też w GUI.
dogu18
Posts: 259
Joined: Thu Oct 11, 2018 8:35 pm

Post

kiedy można się spodziewać bme na testy?
Pozdrawiam
Grzegorz Labudda
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

dogu18 wrote: Fri Apr 17, 2020 3:27 pm kiedy można się spodziewać bme na testy?
Wczoraj udało mi się mój egzemplarz odpalić, więc nie długo coś będzie
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

klew wrote: Fri Apr 17, 2020 9:31 pm Wczoraj udało mi się mój egzemplarz odpalić, więc nie długo coś będzie
hej, udało Ci się?
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

lukfud wrote: Mon Apr 27, 2020 12:29 pm hej, udało Ci się?
Na moim githubie pojawił się <supla/sensor/BME280.h>

Na chwilę obecną działa po hardware'owym I2C. Adres urządzenia można podać jako pierwszy parametr konstruktora. Domyślnie używa 0x77 - tak jak biblioteka Adafruit BME280 (która jest wymagana do działania tego sensora).

Drugi parametr to wysokość. Jeśli się ją poda, to pokaże ciśnienie bezwzględne, a jak się poda, to będzie widać względne.

Niestety na razie nie ma sensownej obsługi błędów. Da się wystartować bez czujnika, jak się go podłączy, to zacznie działać bez resetu. Podobnie utrata i przywrócenie czujnika będzie działać.

Niestety przy braku połączenia lecą jakieś dziwne wartości temperatury i ciśnienia. Na razie będą one widoczne, aż wymyślę sposób na ich pozbycie się :).

Użycie proste. Dodajemy include:

Code: Select all

#include <supla/sensor/BME280.h>
i w setup wpisujemy:

Code: Select all

new Supla::Sensor::BME280(0x76, 105); // adres 0x76, 105 m n.p.m.)
Wysokość można zmieniać w runtime przy pomocy metody setAltitude(nowaWysokosc).
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

I nie wiem, czy dwa czujniki BME280 o różnych adresach będą z tym kodem działać. Jeśli ktoś ma dwa, to czekam na wieści
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

Jeden czujnik działa :) dziękuję!
W przypadku Basica musiałem dodać w setup

Code: Select all

Wire.begin(1,3);
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
elmaya
Posts: 1485
Joined: Wed Jun 27, 2018 5:48 pm
Location: El Saucejo - Sevilla

Post

you can check if BME280 is connected by reading the ID

Code: Select all

bool BME280_ID() {    // return false if no BME280 connected
  uint8_t value;

    Wire.beginTransmission(0x76);      // BME280_ADDRESS (0x76)
    Wire.write(0xD0);                  // BME280_REGISTER_CHIPID = 0xD0
    Wire.endTransmission();
    Wire.requestFrom(0x76, (byte)1);   // BME280_ADDRESS (0x76)
    value = Wire.read();

  if (value != 0x60)                   // BME280_CHIPID = 0x60,
    return false;
}
I don't think it's difficult to add to the library ;)

Return to “Arduino IDE”