Supla + BME280

User avatar
QLQ
Posts: 568
Joined: Sun Sep 03, 2017 9:13 am
Location: Koszalin

Tue Nov 27, 2018 6:35 am

wojtas567 wrote:
Mon Nov 26, 2018 6:59 pm
nic nie zrobisz bo pokazuje Ci 1 km
przenieś na termometr
Rozumiem ze zamiast obsłużyć to kodem czujnika odległości zrobić na kodzie termometru. A supla 2.3 czasem nie ma mieć już zaimplementowanej stacji pogodowej?

Edit: stacja w wersji 2.6 Supli. :(
User avatar
wojtas567
Posts: 1612
Joined: Sun Apr 03, 2016 7:16 pm
Location: Olsztyn

Tue Nov 27, 2018 7:48 am

QLQ wrote:
Tue Nov 27, 2018 6:35 am

Rozumiem ze zamiast obsłużyć to kodem czujnika odległości zrobić na kodzie termometru.
Tak
Pozdrawiam
Wojtek
User avatar
QLQ
Posts: 568
Joined: Sun Sep 03, 2017 9:13 am
Location: Koszalin

Tue Jan 01, 2019 1:53 pm

Jak to zrobić na kodzie czujnika odległości aby wrzucić do Supli?

Code: Select all

#define LIGHTSENSORPIN A0
void setup()
{
pinMode(LIGHTSENSORPIN, INPUT);
Serial.begin(9600);
}
void loop()
{
float lux = analogRead(LIGHTSENSORPIN); //Read light level
Serial.println(lux);
delay(1000);
}
tak jak czujnik ciśnienia:

Code: Select all

double get_distance(int channelNumber, double distance) {
   
 distance = bme.readPressure() / 100.0F;
   return  distance; 
EDIT:
Chodzi mi o dodanie czujnika TEMT6000 do kodu z BME280 aby też wyświetlało natężenie światła na kolejnym kanale (czujniku odległości)
elmaya
Posts: 180
Joined: Wed Jun 27, 2018 5:48 pm
Location: Sevilla

Tue Jan 01, 2019 3:14 pm

Code: Select all

#define LIGHTSENSORPIN A0
void setup()

wifi_set_sleep_type(NONE_SLEEP_T);

pinMode(LIGHTSENSORPIN, INPUT);
Serial.begin(9600);
dodana linia (wifi_set_sleep_type(NONE_SLEEP_T); ) dla lepszej stabilności odczytu analogowego

Code: Select all

double get_distance(int channelNumber, double distance) {
 float lux = analogRead(LIGHTSENSORPIN); //Read light level 
 distance = lux;
   return  distance; 
If you like my work please support it by buying me a cup of coffee :)
www.paypal.me/elmayasevilla
User avatar
QLQ
Posts: 568
Joined: Sun Sep 03, 2017 9:13 am
Location: Koszalin

Tue Jan 01, 2019 3:55 pm

elmaya wrote:
Tue Jan 01, 2019 3:14 pm

Code: Select all

#define LIGHTSENSORPIN A0
void setup()

wifi_set_sleep_type(NONE_SLEEP_T);

pinMode(LIGHTSENSORPIN, INPUT);
Serial.begin(9600);
dodana linia (wifi_set_sleep_type(NONE_SLEEP_T); ) dla lepszej stabilności odczytu analogowego

Code: Select all

double get_distance(int channelNumber, double distance) {
 float lux = analogRead(LIGHTSENSORPIN); //Read light level 
 distance = lux;
   return  distance; 
JEEEE !! działa !
Moja pierwsza modyfikacja z dodaniem nowego kanału czujnika (faktycznie było mi łatwiej dodać nowy kanał jako czujnik DS18 bo nie wiem czy da się - pewnie tak - dodać kolejny czujnik odległości jako kolejny kanał - dla mnie to jeszcze nie ten etap)
Dodałem TEMT6000 czujnik natężenia światła - nie jestem w 100% pewien tego co pokazuje ale mi na razie wystarczy (w odniesieni do czujnika w moim Galaxy S7 - jest różnica np 40 lux na S7 czujnik pokazuje 28, przy 300 na S7 czujnik pokazuje 289 itd ). Mi to na razie wystarczy.

Czekam teraz na BH1750 - jest na i2c i jego będę chciał wrzucić razem z BME280.


Dziękuję ślicznie koledze @elemaya
elmaya
Posts: 180
Joined: Wed Jun 27, 2018 5:48 pm
Location: Sevilla

Thu Jan 03, 2019 4:16 pm

Myślę, że szukasz czegoś do mierzenia za pomocą czujnika Hall
to, aby zobaczyć obroty na minutę

Code: Select all

#define Sensor_PIN D5     // Rpm sensor pin
int pulseCount;  
double distance;
unsigned long oldTime;

void setup()

pinMode(Sensor_PIN, INPUT_PULLUP);
attachInterrupt(Sensor_PIN, Pcounter, FALLING);

Code: Select all

void Pcounter ()
{
    pulseCount++;
}
double get_distance(int channelNumber, double distance) {
        
        detachInterrupt(Sensor_PIN);

        yield();
        distance = ((1000.0 / (millis() - oldTime)) * pulseCount)*60;
        Serial.print("Pulse: ");
        Serial.println(distance);
        yield();
        oldTime = millis();
        pulseCount = 0;
        

        attachInterrupt(Sensor_PIN, Pcounter, FALLING);
                                                             
   return  distance; 
}
If you like my work please support it by buying me a cup of coffee :)
www.paypal.me/elmayasevilla
User avatar
QLQ
Posts: 568
Joined: Sun Sep 03, 2017 9:13 am
Location: Koszalin

Fri Jan 04, 2019 9:09 pm

Dziękuję koledze @elemaya za rozwiązanie tematu licznika obrotów. W weekend pokombinuję.

Zamieniłem czujnik TEMT6000 (wartości od 0 do 1024 lux )na BH1750 (od 0 do ? ) - natężenie oświetlenia na czujniku odległości

Code: Select all

double get_distance(int channelNumber, double t) {

   uint16_t lux = LightSensor.GetLightIntensity()+1;     //BH1750
    t =abs( lux);
    Serial.print("Natezenie swiatla = ");
    Serial.print(LightSensor.GetLightIntensity());
    return t;
Post Reply