일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Windows 11
- Windows
- webUI
- AI그림
- 윈도우베타
- 마이크로소프트
- Windows 11 Dev
- stable diffusion
- Microsoft
- Windows11 한글깨짐
- Windows11
- 윈도우11
- 윈도우11 한글
- Today
- Total
Xenon54의 잡다한 이야기
아두이노 어렵다 본문
아니 진짜 아두이노 사회악이야 이정도면.
왜 안되냐고 씨아아앙
아두이노로 만든 보안모듈의 소스코드.
제작자는 나이지만 만든지 1달정도 되니까 ㅋㅋ
#include <SoftwareSerial.h>
SoftwareSerial BT(2,3);
const int SOUND_SENSOR_PIN = A5;
int sensorValue;
int vol = 0;
int unlock = 4;
int lock1 = 5;
int lock2 = 6;
int buz = 12;
int trig = 10;
int echo = 11;
char bt = '0', btsub = '0';
void setup()
{
BT.begin(9600);
Serial.begin(9600);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(unlock,OUTPUT);
pinMode(lock1,OUTPUT);
pinMode(lock2,OUTPUT);
pinMode(buz,OUTPUT);
//pinMode(SOUND_SENSOR_PIN,INPUT);
attachInterrupt(0, change, CHANGE);
}
void loop()
{
if(bt == '1'){
btsub = '1';
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
int distance = pulseIn(echo, HIGH) * 17 / 1000;
Serial.print(distance);
Serial.println("cm");
delay(100);
if(distance <= 10){
buzzer(1);
//delay(100);
}else{
buzzer(0);
}
digitalWrite(lock2, 1);
digitalWrite(unlock, 0);
digitalWrite(lock1, 0);
//cw
}
if(bt == '2'){
btsub = '1';
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
int distance = pulseIn(echo, HIGH) * 17 / 1000;
Serial.print(distance);
Serial.println("cm");
delay(100);
if(distance <= 10){
buzzer(1);
//delay(100);
}
digitalWrite(lock2, 0);
digitalWrite(unlock, 0);
digitalWrite(lock1, 1);
btsub = '2';
//sensorValue = analogRead(SOUND_SENSOR_PIN);
// Serial.println(sensorValue);
// if(sensorValue == 1){
// buzzer(1);
// }
delay(200);
}
if(bt == '0'){
btsub = 0;
digitalWrite(lock2, 0);
digitalWrite(unlock, 1);
digitalWrite(lock1, 0);
}
if(bt == 'c'){
buzzer(0);
bt = btsub;
Serial.println("Alarm Clear");
}
if(bt == 'w'){
buzzer(1);
bt = btsub;
Serial.println("Alarm On");
}
}
void change(){
bt = BT.read();
if(bt == '1')
Serial.println("Security Level : 1");
if(bt == '2')
Serial.println("Security Level : 2");
if(bt == '0')
Serial.println("Unsecured");
}
void buzzer(int a){
if(a == 1){
tone(buz,1800);
}else if(a == 0){
noTone(buz);
}
}
눈이아프죠?
저렇게 보여도 긴코드가 아님 ㅋㅋ
주석친거는 사운드 센서인데, 저거는 작동확인 못함 ㅋ
그리고 무선통신모듈... 저주할거다.
(송신부)
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <DHT11.h>
int pin=2;
DHT11 dht11(pin);
RF24 radio(7, 8);
const byte address[6] = "00001";
void setup() {
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_LOW);
radio.stopListening();
}
void loop() {
int err;
float temp, humi;
const char text[] = "Hello World";
radio.write(&text, sizeof(text));
if((err=dht11.read(humi, temp))==0)
{
Serial.print("temperature:");
Serial.print(temp);
Serial.print(" humidity:");
Serial.print(humi);
Serial.println();
String dumy1 = String(temp);
const char text1[32] = "";
dumy1.toCharArray(text1, dumy1.length());
//radio.write(&text1, 10);
String dumy2 = String(humi);
const char text2[32] = "";
dumy1.toCharArray(text2, dumy2.length());
//delay(1000);
if(!radio.write(&text1, sizeof(text1))){
Serial.println("temp send fail");
Serial.println(text1);
}
if(!radio.write(&text2, sizeof(unsigned long))){
Serial.println("humi send fail");
Serial.println(text2);
}
}
//delay(100);
}
온도습도 측정해서 수신부로 보내는게 왜 안되냐...
(수신부)
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7, 8); // SPI 버스에 nRF24L01 라디오를 설정하기 위해 CE, CSN 선언.
const byte address[6] = "00001"; //주소값을 5가지 문자열로 변경할 수 있으며, 송신기과 수신기가 동일한 주소로 해야됨.
void setup() {
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_MIN); //전원공급에 관한 파워레벨을 설정합니다. 모듈 사이가 가까우면 최소로 설정합니다.
//거리가 가까운 순으로 RF24_PA_MIN / RF24_PA_LOW / RF24_PA_HIGH / RF24_PA_MAX 등으로 설정할 수 있습니다.
//높은 레벨(거리가 먼 경우)은 작동하는 동안 안정적인 전압을 가지도록 GND와 3.3V에 바이패스 커패시터 사용을 권장함
radio.startListening(); //모듈을 수신기로 설정
}
void loop() {
if (radio.available()) {
char text[32] = "";
radio.read(&text, sizeof(text));
Serial.println(text);
}
}
구글링으로 가져움 누구건지는 모르지만... 이거 작동 잘됨 ㅋ
나의 아두이노는 이것을 왠지모르게 거부하지만...ㅋㅋ
'잡담' 카테고리의 다른 글
학교 VB프로그램 사용설명서 (0) | 2020.04.19 |
---|---|
애니 음악 사이트를 만들었다! (0) | 2019.02.25 |
게임 추천들좀 해주세요 (2) | 2018.12.20 |
시작이당~ (0) | 2018.08.06 |