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");
}
}