Vídeo: Happy Hack Light Switch: 3 etapas
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Nas últimas 2 semanas, trabalhamos em um projeto escolar chamado "Hacking feliz". Com este projeto tentamos fazer um "hack feliz" para um espaço público. Bem, o que é um "hack feliz"? No nosso caso, precisávamos fazer algo positivo com base na frustração. O uso do Arduino foi necessário para este projeto. O "hack feliz" que decidimos fazer era uma instalação para acionar o interruptor de luz remotamente.
Etapa 1: Materiais:
1x Arduino Uno
1x breadboard
2x servo
1x sensor infravermelho
Fio 11x
1x emissor infravermelho (remoção da tv)
fita
Etapa 2: Como se conectar:
Coloque um receptor infravermelho Arduino na placa de ensaio; assumindo que o lado frontal do receptor é o lado com a esfera nele:
- Conecte um fio da 'perna' mais à esquerda à porta '6' do Arduino uno.
- Conecte um fio da ‘perna’ do meio à linha ‘-’ na placa de ensaio.
- Conecte um fio da ‘perna’ mais direita à linha ‘+’ na placa de ensaio.
Certifique-se de que o fio esteja entre a linha ‘-’ na placa de ensaio e uma porta ‘aterrada’ no Arduino uno e certifique-se de que o cabo esteja entre a linha ‘+’ na placa de ensaio e a porta ‘5V’ no Arduino uno.
Agora conecte os 2 servos,
- Ambos com um fio do fio mais escuro no servo para a linha '-' na placa de ensaio.
- Ambos com um fio do meio no servo para a linha ‘+’ na placa de ensaio.
Agora, para um dos servos, conecte o fio do servo restante à porta '9' do Arduino uno e conecte o outro servo à porta '10' do Arduino uno.
Etapa 3: Código:
#incluir //
#incluir //
#incluir //
IRrecv irrecv (6);
resultados de decode_results;
Servo theServo1;
Servo theServo2;
bool lightOn = false;
bool disco = false;
void setup () {
theServo1.attach (10);
theServo2.attach (9);
pinMode (6, INPUT);
Serial.begin (9600);
irrecv.enableIRIn (); // Iniciar o receptor
irrecv.blink13 (verdadeiro);
}
void loop () {
if (irrecv.decode (& resultados)) {
Serial.println (resultados.valor); // Você obtém um resultado diferente para cada botão. Portanto, verifique no monitor serial qual é o valor dos seus botões.
if (results.value == 3772793023) {// Este é o resultado do botão liga / desliga (3772793023). Provavelmente é diferente com o seu controle remoto.
lightOn =! lightOn;
if (lightOn) {
theServo1.write (65);
theServo2.write (15);
}
if (! lightOn) {
theServo1.write (95);
theServo2.write (95);
}
atraso (1000);
}
if (results.value == 3772839943) {// Este é o nosso resultado do botão de informações (37728).
disco =! disco;
atraso (1000);
}
Serial.println (resultados.valor);
irrecv.resume (); // Receba o próximo valor
}
if (disco) {
lightOn =! lightOn;
if (lightOn) {
theServo1.write (65);
theServo2.write (15);
}
if (! lightOn) {
theServo1.write (95);
theServo2.write (90);
}
atraso (2000);
}
}