/******************************************************************************* * * Projeto 86: Identificando sensores DS18B20 * Autor: Angelo Luis Ferreira * Data: 03/07/2020 * http://squids.com.br/arduino * *******************************************************************************/ #include #include #include // define a conexão do terminal de sinal do DS18B20 e o botão com o Arduino const byte sensorPin = 2; const byte botPin = 10; // define o estado do botão byte menu = 0; // declara a variável que receberá o número de sensores conectados byte nSensores = 0; // instancia a classe OneWire da biblioteca "OneWire.h" com o nome "pin" OneWire oneWire(sensorPin); // instancia a classe DallasTemperatura da biblioteca DallasTemperature.h com o nome "bus" DallasTemperature bus(&oneWire); // Endereço dos sensores DS18B20 - ALTERAR DE ACORDO COM OS SENSORES UTILIZADOS NO SEU PROJETO uint8_t sensorSALA[8] = { 0x28, 0xD5, 0xCA, 0x12, 0x0A, 0x00, 0x00, 0xFB }; uint8_t sensorQUARTO[8] = { 0x28, 0x8A, 0x1B, 0x16, 0xA8, 0x01, 0x3C, 0x0C }; uint8_t sensorPISCINA[8] = { 0x28, 0xFF, 0x0A, 0x79, 0xA2, 0x00, 0x03, 0x95 }; // Inicializa o LCD com o módulo I2C LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE); void setup() { bus.begin(); // inicializa o objeto sensor Serial.begin(9600);// inicia monitor serial lcd.begin(16, 2); // inicia lcd pinMode(botPin, INPUT_PULLUP); // define botão como pullup interno do Arduino lcd.clear(); // limpa o disply nSensores = bus.getDeviceCount(); // obtem o número de sensores conectados DeviceAddress sensorSALA; DeviceAddress sensorQUARTO; DeviceAddress sensorPISCINA; } void loop() { // faz leitura do sensor bus.requestTemperatures(); // permite a leitura dos sensores // verifica se o botão foi pressionado para mudar de local if (!digitalRead(botPin)) { menu++; if(menu>nSensores) menu=0; lcd.clear(); exibir(); while(!digitalRead(botPin)) {}; delay(50); } else exibir(); //exibir temperaturas } void exibir() { /* * Sensor 1 Quarto 0x28, 0x8A, 0x1B, 0x16, 0xA8, 0x01, 0x3C, 0x0C * Sensor 2 Sala 0x28, 0xD5, 0xCA, 0x12, 0x0A, 0x00, 0x00, 0xFB * Sensor 3 Piscina 0x28, 0xFF, 0x0A, 0x79, 0xA2, 0x00, 0x03, 0x95 * */ switch(menu) { case 0: lcd.setCursor(0,0); lcd.print("Controle Squids"); lcd.setCursor(0,1); lcd.print("N. Sensores = "); lcd.print(nSensores); break; case 1: lcd.setCursor(0,0); lcd.print("SALA"); lcd.setCursor(0,1); lcd.print("Temp.: "); lcd.print(bus.getTempC(sensorSALA)); lcd.write(B11011111); lcd.print("C"); break; case 2: lcd.setCursor(0,0); lcd.print("QUARTO"); lcd.setCursor(0,1); lcd.print("Temp.: "); lcd.print(bus.getTempC(sensorQUARTO)); lcd.write(B11011111); lcd.print("C"); break; case 3: lcd.setCursor(0,0); lcd.print("PISCINA"); lcd.setCursor(0,1); lcd.print("Temp.: "); lcd.print(bus.getTempC(sensorPISCINA)); lcd.write(B11011111); lcd.print("C"); break; } }