BMP280 + BME280 společně na I2C sběrnici

Odpovědět
johnyhol
Příspěvky: 33
Registrován: 07 pro 2017, 21:17
Reputation: 0

BMP280 + BME280 společně na I2C sběrnici

Příspěvek od johnyhol » 07 pro 2017, 21:32

Ahoj, nemáte někdo zkušenosti se zapojením senzorů BMP280 a BME280 společně na I2C sběrnici? Zkoušel jsem hledal jestli to už někdo neřešil, ale nic jsem nenašel. Jenom na jednom zahraničním fóru jsem našel návod jak připojit 2x BME280, ale to mně nepomůže.
Díky

petan
Příspěvky: 358
Registrován: 23 črc 2017, 10:19
Reputation: 0
Kontaktovat uživatele:

Re: BMP280 + BME280 společně na I2C sběrnici

Příspěvek od petan » 07 pro 2017, 22:40

Připojením pinu SDO na Vcc, nebo na GND můžeš měnit adresu. Takže u každýho čidla nastavíš jinou adresu.

Connecting SDO to GND results in slave address 1110110 (0x76); connection it to VDDIO results in slave address 1110111 (0x77), which is the same as BMP180’s I²C address. The SDO pin cannot be left floating; if left floating, the I²C address will be undefined.

johnyhol
Příspěvky: 33
Registrován: 07 pro 2017, 21:17
Reputation: 0

Re: BMP280 + BME280 společně na I2C sběrnici

Příspěvek od johnyhol » 08 pro 2017, 12:50

Jasně, to jsem právě taky našel, ale to bylo pro dva stejný senzory např. BME280 a ne pro kombinaci BME280 + BMP280.

martinius96
Příspěvky: 579
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

Re: BMP280 + BME280 společně na I2C sběrnici

Příspěvek od martinius96 » 08 pro 2017, 13:46

Skús si najprv I2C scanner, aké adresy ti na tej zbernici nájde. Pripoj si teda oba na A4 a A5 pin (ak máš UNO)

Kód: Vybrat vše

#include <Wire.h>
 
 
void setup()
{
  Wire.begin();
 
  Serial.begin(9600);
  while (!Serial);             // Leonardo: wait for serial monitor
  Serial.println("\nI2C Scanner");
}
 
 
void loop()
{
  byte error, address;
  int nDevices;
 
  Serial.println("Scanning...");
 
  nDevices = 0;
  for(address = 1; address < 127; address++ )
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
 
    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");
 
      nDevices++;
    }
    else if (error==4)
    {
      Serial.print("Unknown error at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.println(address,HEX);
    }    
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");
 
  delay(5000);           // wait 5 seconds for next scan
}
Ak ti vypisuje rovnaké, tak skús pri jednom čidle prepojiť tie piny, ako ti písal petan. Uvidíš, či sa adresa zmenila a na akých adresách to máš. Následne vieš z týchto adries čítať.

johnyhol
Příspěvky: 33
Registrován: 07 pro 2017, 21:17
Reputation: 0

Re: BMP280 + BME280 společně na I2C sběrnici

Příspěvek od johnyhol » 11 pro 2017, 22:37

Tak mně to nedalo a zkusil jsem to ještě pro sichr projet tím I2C scannerem a to mě potvrdilo, že to mám zapojený správně. Tak jsem se ještě jednou vrhnul na kód a asi po půl hodině jsem našel jednu chybu (špatně jsem přepsal řádek s parametrem

Kód: Vybrat vše

Adafruit_BME280 bme; // I2C
- nechal jsem tam nakonci bmp místo bme). No a to samý jsem pak našel taky v setupu kde jsem přepsal taky jenom část kódu. Takže skoro jako vždy byl problém mezi židlí a PC. :D Každopádně už všechno funguje, díky všem za reakce...

Tady ještě pro zájemce můj poslední kód se senzory: BME280, BMP280, DS18B20, DHT22 a posílání hodnot na Exosite:

Kód: Vybrat vše

// NodeMCU - mereni teplot, vlhkosti, tlaku a nadm. vysky
// author. Johnyhol
// v 10.12.2017

// changelog
// v 10.12.2017
// uprava kodu pro kombinaci BMP280 vs. BME280
// uprava zasilani na Exosite - vsechno funkcni
// v 13.4.2017
// pridana knihovna BME280
// doplneni parametru pro exosite (DHT22+BMP280) - vsechno funkcni!!!
// pridany senzory 2x DHT22 a 1x BMP280
// funkcní mereni z vice mist a posilani na Exosite - senzory funguji!!!

#include <OneWire.h>
#include <ESP8266WiFi.h>
#include <DallasTemperature.h>
#include <DHT.h>;
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
#include <Adafruit_BME280.h>
#include <Exosite.h>

#define BMP280_ADRESS (0x76) // teplota + tlak
#define BME280_ADRESS (0x77) // teplota + tlak + vhkost
 
Adafruit_BMP280 bmp; // I2C
Adafruit_BME280 bme; // I2C

#define DHTPIN D3 // pin pro senzor 1
#define DHTPIN2 D4 // pin pro senzor 2

#define DHTTYPE DHT22   // DHT 22  (AM2302)
#define DHTTYPE2 DHT22   // DHT 22  (AM2302)

DHT dht(DHTPIN, DHTTYPE); //// Initialize DHT sensor for normal 16mhz Arduino
DHT dht2(DHTPIN2, DHTTYPE2); //// Initialize DHT sensor for normal 16mhz Arduino

#define ONE_WIRE_BUS D5

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);

String cikData = "--------";  // <-- FILL IN YOUR CIK HERE! (https://portals.exosite.com -> Add Device)

const char* ssid = "ssid";
const char* pass = "pass";

WiFiClient client;
Exosite exosite(cikData, &client);

String readString;
String writeString;
String returnString;
String readParam ;
String writeParam ;
char buffer[7];

//+++++++//
// DHT22 //
//+++++++//

//int chk;

//+++++++++++++++++++++++++++++//
// Teplota skutecna - namerena //
//+++++++++++++++++++++++++++++//

//float TskutA; //{0x28, 0x79, 0xD4, 0x29, 0x07, 0x00, 0x00, 0xC8} //Testovací 
float TskutA;   //{0x28, 0x4D, 0xF8, 0x28, 0x07, 0x00, 0x00, 0xAF} //Bojler
float TskutB;   //{0x28, 0xDC, 0x6F, 0x2A, 0x07, 0x00, 0x00, 0xC8} //Topeni vratka 
float TskutC;   //{0x28, 0x0D, 0x72, 0x29, 0x07, 0x00, 0x00, 0x23} //Topeni vstup 
float TskutD;   //{0x28, 0x3C, 0xB2, 0x29, 0x07, 0x00, 0x00, 0xDB} //Kotel vystup 
float TskutE;   //Teplota obyvak
float HskutE;   //Vlhkost obyvak
float TskutF;   //Teplota slunce
long TlskutF;   //Tlak slunce Pa
float TlskuthF; //Tlak slunce hPa
float NskutF;   //Nadmorska vyska
float VlskutF;  //Vlhkost slunce
float TskutG;   //{0x28, 0x23, 0x5F, 0x29, 0x07, 0x00, 0x00, 0x92} //Rozvody vzduchu 
float TskutH;   //{0x28, 0xE6, 0x34, 0xC4, 0x04, 0x00, 0x00, 0xB7} //Loznice 
float TskutI;   //{0x28, 0x5F, 0x9F, 0x85, 0x04, 0x00, 0x00, 0x0A} //Chodba 
float TskutJ;   //{0x28, 0xFF, 0x14, 0x95, 0xB3, 0x16, 0x03, 0xB7} //Zluty pokoj 
float TskutK;   //Teplota koupelna
float HskutK;   //Vlhkost koupelna
float TskutL;   //{0x28, 0xFF, 0x23, 0xA6, 0xB3, 0x00, 0x00, 0x7A} //Zachod
float TskutM;   //{0x28, 0x90, 0x10, 0xC4, 0x04, 0x16, 0x03, 0xA2} //Predsin
float TskutN;   //{0x28, 0x90, 0x10, 0xC4, 0x04, 0x00, 0x00, 0x7A} //Zeleny pokoj
float TskutO;   //{0x28, 0xA6, 0xEA, 0x28, 0x07, 0x00, 0x00, 0x81} //Stin
float TskutP;   //Teplota puda
long TlskutP;   //Tlak puda Pa
float TlskuthP; //Tlak puda hPa

/*byte TstavA;//ALIAS na exosite

byte TvipA;//ALIAS na exosite

byte ReleA=22;
*/

//++++++++++++++++++++++++++++++//
// ADRESY CIDEL DALAS - Ds18b20 //
//++++++++++++++++++++++++++++++//

//DeviceAddress A = { 0x28,0x79,0xD4,0x29,0x07,0x00,0x00,0xC8 };//Testovací
DeviceAddress A = { 0x28,0x4D,0xF8,0x28,0x07,0x00,0x00,0xAF };//Bojler 
DeviceAddress B = { 0x28,0xDC,0x6F,0x2A,0x07,0x00,0x00,0xC8 };//Topeni vratka 
DeviceAddress C = { 0x28,0x0D,0x72,0x29,0x07,0x00,0x00,0x23 };//Topeni vstup 
DeviceAddress D = { 0x28,0x3C,0xB2,0x29,0x07,0x00,0x00,0xDB };//Kotel vystup 
DeviceAddress G = { 0x28,0x23,0x5F,0x29,0x07,0x00,0x00,0x92 };//Rozvody vzduchu 
DeviceAddress H = { 0x28,0xE6,0x34,0xC4,0x04,0x00,0x00,0xB7 };//Loznice 
DeviceAddress I = { 0x28,0x5F,0x9F,0x85,0x04,0x00,0x00,0x0A };//Chodba 
DeviceAddress J = { 0x28,0xFF,0x14,0x95,0xB3,0x16,0x03,0xB7 };//Zluty pokoj 
DeviceAddress L = { 0x28,0xFF,0x23,0xA6,0xB3,0x16,0x03,0xA2 };//Zachod
DeviceAddress M = { 0x28,0x90,0x10,0xC4,0x04,0x00,0x00,0x7A };//Predsin
DeviceAddress N = { 0x28,0x90,0x10,0xC4,0x04,0x00,0x00,0x7A };//Zeleny pokoj
DeviceAddress O = { 0x28,0xA6,0xEA,0x28,0x07,0x00,0x00,0x81 };//Stin

void setup(void){
  Serial.begin(9600);
  Serial.println("");
  
  WiFi.begin(ssid, pass);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(100);
    Serial.print(".");
  }
  
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  DS18B20.begin();

  dht.begin();
  dht2.begin();
/*
  pinMode(ReleA,OUTPUT);
  digitalWrite (ReleA,HIGH); 
*/
  Serial.println(F("BMP280 test"));
 
  if (!bmp.begin(BMP280_ADRESS)) {  
    Serial.println(F("Nemohu najit zadny BMP280 senzor, zkontroluj zapojeni!"));
    while (1);
  } 

    Serial.println(F("BME280 test"));
 
  if (!bme.begin(BME280_ADRESS)) {  
    Serial.println(F("Nemohu najit zadny BME280 senzor, zkontroluj zapojeni!"));
    while (1);
  } 
 
}

void loop() {

//++++++++++++++++++++++++++++++++++++++//
// Nacitani hodnot z teplotnich senzoru //
//++++++++++++++++++++++++++++++++++++++//

Serial.println("Nacitani hodnot z teplotnih senzoru..."); 
DS18B20.requestTemperatures(); // nacitani teplot ze snimacu ds18b20 
 
TskutA = DS18B20.getTempC(A); 
TskutB = DS18B20.getTempC(B); 
TskutC = DS18B20.getTempC(C); 
TskutD = DS18B20.getTempC(D); 
TskutE = dht.readTemperature();
HskutE = dht.readHumidity();
TskutF = bme.readTemperature();
TlskutF = bme.readPressure();
NskutF = bme.readAltitude(990); // u nas je 434m
VlskutF = bme.readHumidity();
TskutG = DS18B20.getTempC(G); 
TskutH = DS18B20.getTempC(H); 
TskutI = DS18B20.getTempC(I); 
TskutJ = DS18B20.getTempC(J); 
TskutK = dht2.readTemperature();
HskutK = dht2.readHumidity();
TskutL = DS18B20.getTempC(L); 
TskutM = DS18B20.getTempC(M); 
TskutN = DS18B20.getTempC(N); 
TskutO = DS18B20.getTempC(O);
TskutP = bmp.readTemperature();
TlskutP = bmp.readPressure();

TlskuthF = TlskutF / 100;            //převod Pa na hPa

TlskuthP = TlskutP / 100;            //převod Pa na hPa

Serial.print("Teplota - Bojler :");  
 Serial.print(TskutA);
  Serial.println(" *C");
Serial.print("Teplota - Topeni vratka :");
 Serial.print(TskutB);
  Serial.println(" *C");
Serial.print("Teplota - Topeni vstup :");
 Serial.print(TskutC);
  Serial.println(" *C");
Serial.print("Teplota - Kotel vystup :");
 Serial.print(TskutD);
  Serial.println(" *C");
Serial.print("Teplota - Obyvak :");
 Serial.print(TskutE);
  Serial.println(" *C");
Serial.print("Vlhkost - Obyvak :");
 Serial.print(HskutE);
  Serial.println(" %");
Serial.print(F("Teplota - slunce :"));
 Serial.print(TskutF);
  Serial.println(" *C");
Serial.print(F("Tlak - slunce :"));
 Serial.print(TlskutF / 100.0F);
  Serial.println(" hPa");
Serial.print(F("Nadmorska vyska - Slunce :"));
 Serial.print(NskutF); // this should be adjusted to your local forcase
  Serial.println(" m");
Serial.print("Vlhkost - slunce :");
 Serial.print(VlskutF);
  Serial.println(" %");    
Serial.print("Teplota - Rozvody vzduchu :");
 Serial.print(TskutG);
  Serial.println(" *C");
Serial.print("Teplota - Loznice :");
 Serial.print(TskutH);
  Serial.println(" *C");
Serial.print("Teplota - Chodba :");
 Serial.print(TskutI);
  Serial.println(" *C");
Serial.print("Teplota - Zluty pokoj :");
 Serial.print(TskutJ);
  Serial.println(" *C");
Serial.print("Teplota - Koupelna :");
 Serial.print(TskutK);
  Serial.println(" *C");
Serial.print("Vlhkost - Koupelna :");
 Serial.print(HskutK);
  Serial.println(" %");
Serial.print("Teplota - Zachod :");
 Serial.print(TskutL);
  Serial.println(" *C");
Serial.print("Teplota - Predsin :");
 Serial.print(TskutM);
  Serial.println(" *C");
Serial.print("Teplota - Zeleny pokoj :");
 Serial.print(TskutN);
  Serial.println(" *C");
Serial.print("Teplota - Stin :");
 Serial.print(TskutO);
  Serial.println(" *C");  
Serial.print(F("Teplota - puda :"));
 Serial.print(TskutP);
  Serial.println(" *C");
Serial.print(F("Tlak - puda :"));
 Serial.print(TlskutP / 100.0F);
  Serial.println(" hPa");    

//+++++++++++++++++++//
// TeplotaA - Bojler //
//+++++++++++++++++++// 

Serial.println("Posilam teplotu A na Exosite portal...");
 readParam = "";        
  writeParam = "TskutA="; 
   String TskutAvalue = dtostrf(TskutA, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TskutAvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Teplota A odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Teplota A neodeslana");
   }
delay(1000);
/*
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxx//
// cteni stavu vypinace bojler //
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxx//
Serial.println("Ctu stav vypinace A");  
readString = "TvipA";
  if(exosite.writeRead(writeString, readString, returnString)){
   Serial.println("OK");
  Serial.print("Stav vypinace A je: ");
Serial.println(returnString);
  }
else{
  Serial.println("Error");
  }
if (returnString == "TvipA=1"){
TvipA=1;
  }
else{
TvipA=0;
  }
returnString ="";   
 delay(1000);

//xxxxxxxxxxxxxxxxxxxxxxxxx//
// logika zapinani bojleru //
//xxxxxxxxxxxxxxxxxxxxxxxxx//
if(TvipA==1){
 //RelA.setSwitchState(PIO_A,true);
digitalWrite(ReleA, LOW);
 Serial.println("Nahrivani bojleru ZAPNUTO");
TstavA=1;
  }
else if(TvipA==0){
 //RelA.setSwitchState(PIO_A,false);//zapni PIO A na Ds2423   
 digitalWrite(ReleA, HIGH);
 Serial.println("Nahrivani bojleru VYPNUTO");
TstavA=0;
  }
//xxxxxxxxxxxxxxxxxxxxxxxxxx//
// odeslani stavu nahrivani //
//xxxxxxxxxxxxxxxxxxxxxxxxxx//
readParam = "";        
writeParam = "TstavA="; 
writeParam += TstavA;    
if(exosite.writeRead(writeParam, readParam, returnString)) {  
  Serial.println("Exosite OK");  if (returnString != "") { 
    Serial.println("Stav nahrivani odeslany");
   }
   }
else {
 Serial.println("Exosite chyba stav neodeslany");
    }
*/  
//++++++++++++++++++++++++++//
// TeplotaB - Topeni vratka //
//++++++++++++++++++++++++++// 

Serial.println("Posilam teplotu B na Exosite portal...");
 readParam = "";        
  writeParam = "TskutB="; 
   String TskutBvalue = dtostrf(TskutB, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TskutBvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Teplota B odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Teplota B neodeslana");
   }
delay(1000); 

//+++++++++++++++++++++++++//
// TeplotaC - Topeni vstup //
//+++++++++++++++++++++++++// 

Serial.println("Posilam teplotu C na Exosite portal...");
 readParam = "";        
  writeParam = "TskutC="; 
   String TskutCvalue = dtostrf(TskutC, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TskutCvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Teplota C odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Teplota C neodeslana");
   }
delay(1000);

//+++++++++++++++++++++++++//
// TeplotaD - Kotel vystup //
//+++++++++++++++++++++++++// 

Serial.println("Posilam teplotu D na Exosite portal...");
 readParam = "";        
  writeParam = "TskutD="; 
   String TskutDvalue = dtostrf(TskutD, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TskutDvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Teplota D odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Teplota D neodeslana");
   }
delay(1000);

//+++++++++++++++++++//
// TeplotaE - Obývák //
//+++++++++++++++++++//

Serial.println("Posilam teplotu E na Exosite portal...");
 readParam = "";        
  writeParam = "TskutE="; 
   String TskutEvalue = dtostrf(TskutE, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TskutEvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Teplota E odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Teplota E neodeslana");
   }
delay(1000);

//+++++++++++++++++++//
// VlhkostE - Obývák //
//+++++++++++++++++++//

Serial.println("Posilam vlhkost E na Exosite portal...");
 readParam = "";        
  writeParam = "HskutE="; 
   String HskutEvalue = dtostrf(HskutE, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += HskutEvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Vlhkost E odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Vlhkost E neodeslana");
   }
delay(1000);

//+++++++++++++++++++//
// TeplotaF - Slunce //
//+++++++++++++++++++//

Serial.println("Posilam teplotu F na Exosite portal...");
 readParam = "";        
  writeParam = "TskutF="; 
   String TskutFvalue = dtostrf(TskutF, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TskutFvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Teplota F odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Teplota F neodeslana");
   }
delay(1000);

//++++++++++++++++//
// TlakF - Slunce //
//++++++++++++++++//

Serial.println("Posilam tlak F na Exosite portal...");
 readParam = "";        
  writeParam = "TlskutF="; 
   String TlskutFvalue = dtostrf(TlskuthF, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TlskutFvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Tlak F odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Tlak F neodeslana");
   }
delay(1000);

//+++++++++++++++++++++++++++//
// Nadmorska vyskaF - Slunce //
//+++++++++++++++++++++++++++//

Serial.println("Posilam nadmorskou vysku F na Exosite portal...");
 readParam = "";        
  writeParam = "NskutF="; 
   String NskutFvalue = dtostrf(NskutF, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += NskutFvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Nadmorska vyska F odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Nadmorska vyska F neodeslana");
   }
delay(1000);

//++++++++++++++++++++++++++++//
// TeplotaG - Rozvody vzduchu //
//++++++++++++++++++++++++++++// 

Serial.println("Posilam teplotu G na Exosite portal...");
 readParam = "";        
  writeParam = "TskutG="; 
   String TskutGvalue = dtostrf(TskutG, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TskutGvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Teplota G odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Teplota G neodeslana");
   }
delay(1000);

//+++++++++++++++++++++//
// TeplotaH - Loznice //
//++++++++++++++++++++// 

Serial.println("Posilam teplotu H na Exosite portal...");
 readParam = "";        
  writeParam = "TskutH="; 
   String TskutHvalue = dtostrf(TskutH, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TskutHvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Teplota H odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Teplota H neodeslana");
   }
delay(1000);

//+++++++++++++++++++//
// TeplotaI - Chodba //
//+++++++++++++++++++// 

Serial.println("Posilam teplotu I na Exosite portal...");
 readParam = "";        
  writeParam = "TskutI="; 
   String TskutIvalue = dtostrf(TskutI, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TskutIvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Teplota I odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Teplota I neodeslana");
   }
delay(1000);

//++++++++++++++++++++++++//
// TeplotaJ - Zluty pokoj //
//++++++++++++++++++++++++// 

Serial.println("Posilam teplotu J na Exosite portal...");
 readParam = "";        
  writeParam = "TskutJ="; 
   String TskutJvalue = dtostrf(TskutJ, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TskutJvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Teplota J odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Teplota J neodeslana");
   }
delay(1000);

//++++++++++++++++++++//
// Koupelna - teplota //
//++++++++++++++++++++//

Serial.println("Posilam teplotu K na Exosite portal...");
 readParam = "";        
  writeParam = "TskutK="; 
   String TskutKvalue = dtostrf(TskutK, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TskutKvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Teplota K odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Teplota K neodeslana");
   }
delay(1000);

//++++++++++++++++++++//
// Koupelna - vlhkost //
//++++++++++++++++++++//

Serial.println("Posilam vlhkost K na Exosite portal...");
 readParam = "";        
  writeParam = "HskutK="; 
   String HskutKvalue = dtostrf(HskutK, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += HskutKvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Vlhkost K odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Vlhkost K neodeslana");
   }
delay(1000);
   
//+++++++++++++++++++//
// TeplotaL - Zachod //
//+++++++++++++++++++// 

Serial.println("Posilam teplotu L na Exosite portal...");
 readParam = "";        
  writeParam = "TskutL="; 
   String TskutLvalue = dtostrf(TskutL, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TskutLvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Teplota L odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Teplota L neodeslana");
   }
delay(1000);

//++++++++++++++++++++//
// TeplotaM - Predsin //
//++++++++++++++++++++// 

Serial.println("Posilam teplotu M na Exosite portal...");
 readParam = "";        
  writeParam = "TskutM="; 
   String TskutMvalue = dtostrf(TskutM, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TskutMvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Teplota M odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Teplota M neodeslana");
   }
delay(1000);

//+++++++++++++++++++++++++//
// TeplotaN - Zeleny pokoj //
//+++++++++++++++++++++++++// 

Serial.println("Posilam teplotu N na Exosite portal...");
 readParam = "";        
  writeParam = "TskutN="; 
   String TskutNvalue = dtostrf(TskutN, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TskutNvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Teplota N odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Teplota N neodeslana");
   }
delay(1000);

//+++++++++++++++++//
// TeplotaO - Stin //
//+++++++++++++++++// 

Serial.println("Posilam teplotu O na Exosite portal...");
 readParam = "";        
  writeParam = "TskutO="; 
   String TskutOvalue = dtostrf(TskutO, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TskutOvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Teplota O odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Teplota O neodeslana");
   }
delay(1000);

//+++++++++++++++++++//
// TeplotaP - puda //
//+++++++++++++++++++//

Serial.println("Posilam teplotu P na Exosite portal...");
 readParam = "";        
  writeParam = "TskutP="; 
   String TskutPvalue = dtostrf(TskutP, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TskutPvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Teplota P odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Teplota P neodeslana");
   }
delay(1000);

//++++++++++++++++//
// TlakP - puda //
//++++++++++++++++//

Serial.println("Posilam tlak P na Exosite portal...");
 readParam = "";        
  writeParam = "TlskutP="; 
   String TlskutPvalue = dtostrf(TlskuthP, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
    writeParam += TlskutPvalue;    //pridani skonvertovane teploty do retezce
   if ( exosite.writeRead(writeParam, readParam, returnString)) {//odeslani namerene teploty na exosite
  Serial.println("Exosite OK");
 if (returnString != "") {
Serial.println("Tlak P odeslana");
  }
 }
else {
 Serial.println("Exosite chyba Tlak P neodeslana");
   }
delay(1000);

}

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: BMP280 + BME280 společně na I2C sběrnici

Příspěvek od jankop » 15 pro 2017, 22:17

Nebylo by efektivní použít funkci na ty neustále se opakující úseky programu? Kdysi se tomu říkalo také podprogramy nebo subrutiny. Program by se zkrátil asi tak na desetinu své délky.

johnyhol
Příspěvky: 33
Registrován: 07 pro 2017, 21:17
Reputation: 0

Re: BMP280 + BME280 společně na I2C sběrnici

Příspěvek od johnyhol » 16 pro 2017, 09:49

To by možná bylo, ale jsem začátečník tak nějak nevím jak to vytvořit. Pokud by se tedy někomu do toho chtělo tak bych se samozřejmě rád přiučil.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 9 hostů