Menu

Cyber Sampler 2026

Ligação de potência:

 

//Teste da bomba peristaltica

void setup() {
  pinMode(10, OUTPUT);
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(10, HIGH);
  digitalWrite(13, HIGH);
  delay(3000);
  digitalWrite(10, LOW);
  digitalWrite(13, LOW);
  delay(2000); 
}

 

Teste do módulo RTC com sensor de temperatura:

#include <RTClib.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define portaSensorTemp 3
RTC_DS1307 rtc;

char diaSemana[7][4] = {"DOM", "SEG", "TER", "QUA", "QUI", "SEX", "SAB"};
OneWire comunica(portaSensorTemp);
DallasTemperature sensorTemp(&comunica); 
DateTime dataHora;
float temperatura;

void setup () {
  Serial.begin(9600);
  sensorTemp.begin();
  if (!rtc.begin()) { 
    Serial.println("RTC não responde...");
    Serial.flush();
    while (1); 
  }
  if (!rtc.isrunning()) { 
    Serial.println("Ajustando data e hora...");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); 
  }
}

void loop () {
  fazLeituras();
  mostra();//dataHora, temperatura);
  delay(5000);
}

void fazLeituras(){
  dataHora = rtc.now();
  sensorTemp.requestTemperatures();
  temperatura = sensorTemp.getTempCByIndex(0);
}

void mostra(){
  Serial.print(diaSemana[dataHora.dayOfTheWeek()]);
  Serial.print(" "); 
  Serial.print(dataHora.day(), DEC);
  Serial.print("/");
  Serial.print(dataHora.month(), DEC);
  Serial.print("/");
  Serial.print(dataHora.year(), DEC);
  Serial.print(" ");
  Serial.print(dataHora.hour(), DEC);
  Serial.print(":");
  if(dataHora.minute() <10 ){
   Serial.print("0");
   Serial.print(dataHora.minute(), DEC);
  }
  else{
   Serial.print(dataHora.minute(), DEC);
  }
  Serial.print(" - ");
  Serial.print(temperatura);
  Serial.println("C"); 
  //Serial.print(":") 
  //Serial.println(dataHora.second(), DEC);
}

 

Versão de 2025:

/*
CyberColetor - Versão 1.0 - Julho 2025
*/

#include <RTClib.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define portaSensorTemp 3
#define interruptorMotor 8
#define ledMotor 9
#define potenciaMotor 10
RTC_DS1307 rtc;

//char diaSemana[7][4] = {"Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"};
char diaSemana[7][8] = {"Domingo", "Segunda", "Terca", "Quarta", "Quinta", "Sexta","Sabado"};
OneWire comunica(portaSensorTemp);
DallasTemperature sensorTemp(&comunica); 
DateTime dataHora;
float temperatura;
int estadoMotor;

void setup () {
  Serial.begin(9600);
  sensorTemp.begin();
  if (!rtc.begin()) { 
    Serial.println("RTC não responde...");
    Serial.flush();
    while (1); 
  }
  if (!rtc.isrunning()) { 
    Serial.println("Ajustando data e hora...");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); 
  }
  pinMode(interruptorMotor, INPUT);
  pinMode(ledMotor, OUTPUT);
  pinMode(potenciaMotor, OUTPUT);
  estadoMotor = 1;
  inverteMotor();
}

void loop () {
  if (Serial.available()){
    char comando = Serial.read();
    fazLeituras();
    switch (comando){
      case '1':
        Serial.println(diaSemana[dataHora.dayOfTheWeek()]);
        break;
      case '2':
        Serial.print(dataHora.day(), DEC);
        Serial.print("/");
        Serial.print(dataHora.month(), DEC);
        Serial.print("/");
        Serial.println(dataHora.year(), DEC);
        break;
      case '3':
        Serial.print(dataHora.hour(), DEC);
        Serial.print(":");
        if(dataHora.minute() <10 ){
          Serial.print("0");
          Serial.println(dataHora.minute(), DEC);
        }
        else{
          Serial.println(dataHora.minute(), DEC);
        }
        break; 
      case '4':
        Serial.println(temperatura);
        break; 
      case '5':
        mostra();
        break; 
      case '6':
        inverteMotor();
        break; 
        default:
        break; 
      }
  }
  if (digitalRead(interruptorMotor) == LOW){
    delay(150);
    if (digitalRead(interruptorMotor) == LOW){
      inverteMotor();
    }
  }
}

void fazLeituras(){
  dataHora = rtc.now();
  sensorTemp.requestTemperatures();
  temperatura = sensorTemp.getTempCByIndex(0);
}

void mostra(){
  Serial.print(diaSemana[dataHora.dayOfTheWeek()]);
  Serial.print(" "); 
  Serial.print(dataHora.day(), DEC);
  Serial.print("/");
  Serial.print(dataHora.month(), DEC);
  Serial.print("/");
  Serial.print(dataHora.year(), DEC);
  Serial.print(" ");
  Serial.print(dataHora.hour(), DEC);
  Serial.print(":");
  if(dataHora.minute() <10 ){
    Serial.print("0");
    Serial.print(dataHora.minute(), DEC);
  }
  else{
    Serial.print(dataHora.minute(), DEC);
  }
  Serial.print(":"); 
  if(dataHora.second() <10 ){
    Serial.print("0");
    Serial.print(dataHora.second(), DEC);
  }
  else{
    Serial.print(dataHora.second(), DEC);
  } 
    Serial.print(" - ");
    Serial.print(temperatura);
    Serial.println("C"); 
}

void inverteMotor()
{
  if(estadoMotor == 0)
    estadoMotor = 1;
  else
    estadoMotor = 0;
  if (estadoMotor){
    digitalWrite(ledMotor, HIGH);
    digitalWrite(potenciaMotor, HIGH); 
    Serial.println("Motor ligado");
  }
  else{
    digitalWrite(ledMotor, LOW);
    digitalWrite(potenciaMotor, LOW); 
    Serial.println("Motor desligado");
  }
}
Universidade Federal do Paraná
TI Aplicada – pesquisa e extensão

Av Pref Lothário Meissner, 632
80210-170 | Curitiba |
simao@ufpr.br
(41) 3360-4420
Universidade Federal do Paraná
TI Aplicada – pesquisa e extensão

Av Pref Lothário Meissner, 632
80210-170 | Curitiba |
simao@ufpr.br
(41) 3360-4420

UFPR nas Redes Sociais


UFPR nas Redes Sociais