Przykłady kodu Arduino

QLQ
Posts: 2512
Joined: Sun Sep 03, 2017 9:13 am

Post

Czy może ktoś zamieścić przykłady kodu na nowych bibliotekach dla czujników np BME280, BH1750 ?
Wiem że są dla button, DS....etc w katalogu bibliotek ale nie mogę tego jakoś ogarnąć aby przepisać kod swojej stacji na nowe biblioteki.
Proszę i z góry dziękuję.

Edit: chodzi mi również o przykład dla powstającego kanału ogólnego przeznaczenia
jak coś nie działa to włącz zasilanie.....
User avatar
klew
Posts: 13907
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

BH nie na w nowej bibliotece, bo na razie nie ma odpowiedniego kanału do tego czujnika.
viewtopic.php?p=69579#p69579

A tu info jak dodać bme
viewtopic.php?p=67913#p67913
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

viewtopic.php?p=69579#p69579

BH na kanale temperatury, jeśli Ci to nie przeszkadza.
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
QLQ
Posts: 2512
Joined: Sun Sep 03, 2017 9:13 am

Post

lukfud wrote: Sat Feb 06, 2021 7:24 pm viewtopic.php?p=69579#p69579

BH ma kanale temperatury, jeśli Ci to nie przeszkadza.
😄 to wiem.bo.od dawna mam tak zrobione. Obecnie bh zamieniłem na max44099 - ma większy zakres bo aż do 188000 lux .
A napisz proszę jak będzie dodawany kanał ogólnego przeznaczenia proszę...wiem wiem nie ma jeszcze ale zależy mi aby jyz sobie pomału przygotować
jak coś nie działa to włącz zasilanie.....
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

QLQ wrote: Sat Feb 06, 2021 7:35 pm
lukfud wrote: Sat Feb 06, 2021 7:24 pm viewtopic.php?p=69579#p69579
BH ma kanale temperatury, jeśli Ci to nie przeszkadza.
😄 to wiem.bo.od dawna mam tak zrobione. Obecnie bh zamieniłem na max44099 - ma większy zakres bo aż do 188000 lux .
A napisz proszę jak będzie dodawany kanał ogólnego przeznaczenia proszę...wiem wiem nie ma jeszcze ale zależy mi aby jyz sobie pomału przygotować
Przykład podałem dla nowej biblioteki, o to pytałeś ;)

https://github.com/klew/supla-arduino/b ... ent_base.h
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
QLQ
Posts: 2512
Joined: Sun Sep 03, 2017 9:13 am

Post

Chodzi mi jak w setup dodać kanał ogólnego przeznaczenia analogicznie:
Dla bme w setup wpisujemy
:

Code: Select all

new Supla::Sensor::BME280(0x76, 105); // adres 0x76, 105 m n.p.m.)
A jak będzie dla kanału general?

Code: Select all

Supla::Sensor::general_purpose....chanel(?, ?);
jak coś nie działa to włącz zasilanie.....
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

Przykładowo:

Code: Select all

#ifndef _lsbh1750_h
#define _lsbh1750_h

#include <BH1750.h>
#include "thermometer.h"

namespace Supla {
namespace Sensor {
class LSBH1750 : public Thermometer {
 public:
  LSBH1750() : sensorStatus(false) {
  }

  double getValue() {
    float lux = TEMPERATURE_NOT_AVAILABLE;
    bool retryDone = false;
    do {
      if (!sensorStatus || isnan(lux)) {
        sensorStatus = lightSensor.begin();
        retryDone = true;
      }
      lux = TEMPERATURE_NOT_AVAILABLE;
      if (sensorStatus) {
        lux = lightSensor.readLightLevel();
	  }
    } while (isnan(lux) && !retryDone);
	if (isnan(lux)) {
	  lux = TEMPERATURE_NOT_AVAILABLE;
	}
	if (lux > 40000.00) { 
	  lightSensor.setMTreg(32);
	}
	else if (lux > 10.00) {
	  lightSensor.setMTreg(69);
	}
    else if (lux <= 10.00) {
	  lightSensor.setMTreg(138);
	}
    return lux;
  }

  void onInit() {
    sensorStatus = lightSensor.begin();
    channel.setNewValue(getValue());
  }

 protected:
  bool sensorStatus;
  BH1750 lightSensor;  // I2C
};

};  // namespace Sensor
};  // namespace Supla

#endif
Ta klasa dziedziczy po "Thermometer" a będzie po "GeneralPurposeMeasurementBase"

Code: Select all

#include "general_purpose_measurement_base.h"
namespace Supla {
namespace Sensor {
class LSBH1750 : public GeneralPurposeMeasurementBase {
Dodanie czujnika w setup będzie wyglądało tak samo:

Code: Select all

new Supla::Sensor::LSBH1750();
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
QLQ
Posts: 2512
Joined: Sun Sep 03, 2017 9:13 am

Post

Super. O to chodziło. Teraz już wiem o co kaman. Serdecznie dziękuję.
jak coś nie działa to włącz zasilanie.....

Return to “Pomoc”