terça-feira, maio 12, 2020

Construindo um Relógio e Termômetro com um Seeeduino XIAO

Como primeiro projeto com o Seeeduino XIAO resolvi fazer um "mashup" de três dispositivos que já examinei anteriormente: display OLED de 0,96", sensor de temperatura HDC1080 e relógio de tempo real DS1307.


A montagem de hardware é bem simples, pois estou usando módulos e os três dispositivos trabalham com I2C.


Na parte de software fiz as coisas "na raça", usando meu código dos posts anteriores, ao invés de usar bibliotecas. O acerto do relógio é pela serial (por exemplo usando o monitor da IDE do Arduino), como eu fiz com o DS3231. O loop principal ficou assim:

// Loop Principal
void loop() {
  char buf[9];      // dd/mm/aa e hh:mm
  char bufTemp[5];  // xx.x
  char bufUmid[5];  // xxx%
  
  while (Serial.available()) {
    trataAcerto();
  }

  // Mostra data e hora no topo do display
  rtc_leData(buf);
  Display_print(0, 0, buf);
  rtc_leHora(buf);
  Display_print(0, 11, buf);

  // Le temperatura e umidade
  sensor_le(bufTemp, bufUmid);
  Display_print_16x24 (0, 0, bufTemp);
  Display_print(3, 12, bufUmid);

  // Dá um tempo entre as atualizações
  delay(500);
}

O código completo está no meu github: https://github.com/dquadros/TermometroCalendario.

Este projeto não tira proveito das características sofisticadas do XIAO (inclusive deve rodar em qualquer placa com I2C suportada pela IDE do Arduino), mas o resultado é bem simpático e poderia ser montado de forma compacta.

Nenhum comentário: