아두이노 메가 2560 스마트홈. Arduino를 활용한 DIY 스마트 홈

세상은 가만히 있지 않습니다. 기술은 사람들의 삶에 침투하고 있습니다. 전자제품이 없는 일상생활을 상상하는 것이 날이 갈수록 어려워지고 있습니다. 이전에는 이 모든 것이 부유한 사람들에게만 제공되었다면 이제 기술은 모든 가정에 적용되어 삶을 더 쉽고 흥미롭게 만듭니다.

그건 그렇고, 이제 기본 지식을 가진 사람은 누구나 미래에 일상 생활에 유용하게 될 모든 장치를 독립적으로 조립할 수 있습니다. 인터넷에는 주제별 사이트와 포럼, 마스터 클래스 사진 및 비디오, 팁 및 지침이 가득합니다. 이것이 삶을 더 편리하고 즐겁게 만들어주는 장치가 만들어지는 방법입니다. 집이나 아파트에 특정 정보를 읽고 특정 기능을 수행하는 특수 센서가 장착되어 있는 경우 이러한 집을 "스마트"라고 부를 수 있습니다.

아마도 미래에 관한 공상 과학 영화에서 많은 사람들이 이미 비슷한 구조를 접했을 것입니다. 모든 것이 자동화된 아름답고 넓은 아파트입니다. 컴퓨터는 아침에 가족을 깨우고, 아침 식사를 준비하고, 세탁과 다림질을 하고, 집을 깨끗하게 유지합니다. 간단히 말해서, 그녀는 가정부 요리사 역할과 그 이상의 역할을 수행합니다.

물론 실제로는 모든 것이 그렇게 마법적이고 다채롭지는 않습니다. 현재의 기계와 컴퓨터는 아직 이 수준의 개발에 도달하지 못했습니다. 따라서 현대의 "스마트" 홈의 기능은 제한적입니다. 예를 들어, 센서는 다음을 모니터링할 수 있습니다.

  • 조명을 켜고 끕니다.
  • 에너지 소비.
  • 온도.
  • 집안의 습도.

스마트홈 건설과 가구를 전문적으로 다루는 회사는 거의 없습니다. 또한, 그들의 하인은 상당히 비싸고 좁은 범위의 소비자에게만 저렴합니다. 그러나 이것이 자신의 집에서 편안한 삶을 만들 수 있는 기회를 부정하는 이유는 아닙니다. 결국, 당신은 자신의 손으로 "스마트 홈"을 만들 수 있습니다.

조립 기술

« 스마트 홈" - 그건 그냥 센서가 있는 컨트롤러, 주요 목적은 정보를 읽고 이를 기반으로 적절한 명령을 실행하는 것입니다. 예를 들어, 실내 온도 조절. 실내 온도가 이전에 설정한 수준 이하로 떨어지면 시스템이 자동으로 실내 난방을 켭니다. 이것은 기능의 한 예일 뿐입니다." 스마트 홈" 유사한 제어 센서가 집 전체에 설치되어 다양한 기능을 수행합니다.

그렇다면 집을 "스마트"하게 만드는 방법은 무엇입니까? 이를 위해 무엇이 필요합니까? 먼저해야 할 일 필요한 컨트롤러 구입, 프로그래밍하고 조정해야 합니다. 언뜻보기에는 모든 것이 매우 간단하지만 실제로 시스템 자체의 작동에 문제가 발생할 수 있으며 시스템의 조립 및 관리에는 특정 지식이 필요합니다. 따라서 Arduino 회사는 어린이도 다룰 수 있는 시스템을 최대한 단순화하려고 노력했습니다.

Arduino 시스템이란 무엇입니까?

Arduino 시스템은 자신만의 편의 프로그램을 개발하기 위한 플랫폼입니다. 시스템 작동이 쉽고 오작동이나 고장이 거의 발생하지 않습니다. Arduino 시스템에는 개방형이 있습니다. 소스 코드 USB 케이블을 사용하여 연결하는 기능. 처음에는 시스템에 기본적으로 일련의 프로그램이 설치되어 있지만 오픈 소스 코드 덕분에 자체 개발을 설치할 수 있습니다.

작동 원리 아두이노

Arduino 시스템은 어떻게 작동합니까? 매우 간단합니다. 집이나 아파트 곳곳에 설치된 센서는 다음 정보를 읽습니다. 환경그리고 모든 데이터를 컴퓨터로 전송스스로 결정을 내리는 사람. 이 시스템은 컴퓨터, 노트북, 태블릿, 심지어 휴대폰에서도 작동할 수 있습니다. Arduino의 모든 프로그램은 공개 도메인에서 찾을 수 있습니다. 제조업체는 시스템 커넥터에 대해 가능한 모든 하드웨어를 표준화합니다.

시스템 기능 아두이노

스마트 홈 프로젝트를 위한 Arduino 시스템 다음 기능을 수행해야 합니다.

다양한 기능이 있음에도 불구하고 몇 가지 중요한 이유, 소비자가 Arduino를 선호하는 기준에 따라.

장점

  • 가격.
  • 품질.
  • 편의.
  • 설치 및 프로젝트 전체가 용이합니다.
  • 개별 구성요소의 고장이나 고장 발생 시 비용이 저렴합니다.
  • 소프트웨어 가용성.

다시 한번 안녕하세요, Habrozhiteliki! 매일 Habr을 읽으면서 Arduino와 이를 기반으로 한 DIY 프로젝트에 대한 기사를 반복적으로 접했습니다. 나는 전자 제품과 아무 관련이 없으며 내 전체 경험은 Ogonyok 십대 클럽 (Petrozavodsk)을 기반으로 한 라디오 서클을 방문하는 것으로 구성되었습니다. 어느 날 아두이노를 이용해 스마트폰(BT통신)용 센서(온도, 압력, 맥박)가 달린 팔찌를 만들기로 했는데요, 주문을 잘못해서 아두이노 본체와 압력센서만 왔습니다. 보드를 테스트하기 위해 가장 가까운 라디오 부품 매장에 가서 LED를 구입했는데, 거기에 자석식 도어 닫힘 센서가 눈에 들어왔습니다. 그는 나에게 방(아파트와 혼동하지 말 것)에서 생활하는 것이 조금 더 나아질 수 있다는 생각을 주었습니다. 시간을 낭비하지 않고 여러 센서와 Arduino Mega를 사용하여 Ali에 주문했습니다.

신사용 센서 세트(온도, 습도, 릴레이, StarterKit, BT, 시계, 범위 측정기, IR 센서)를 주문한 후 다른 사람들이 스마트 홈을 어떻게 상상하는지 알아보기로 결정했습니다. 대부분은 샹들리에 제어와 따뜻한 바닥, 정말 멋진 기사가 있었지만. 가스나 누출 센서와 같이 아파트에 일반적인 기능 중 일부는 방에서 불필요한 것이었습니다. 스마트룸에 필요한 기능을 직접 만들기로 결정했습니다.

  • 조명 제어
  • 온도 조절
  • 다양한 방법으로 관리하세요
  • 도어 제어
  • 온도 모니터링
  • 기상 모니터링

필요한 모든 센서가 이미 주문되었으며 남은 것은 기다리는 것 뿐인 것으로 나타났습니다. 이제 모든 센서가 도착했습니다!

첫 번째 단계

이미 LED를 깜박이고 스마트 홈을 조립하기로 결정했다면 논리적인 단계는 방의 조명을 깜박이는 것이지만 초기 열기로 인해 온도 제어를 시작해야 했습니다. 우선 StarterKita에서 dht11을 연결해 보았습니다. 인터넷에 지침이 가득하다면 이보다 더 간단한 것은 무엇일까요? 결과적으로 dht11을 연결하기 위한 라이브러리가 많지만 모두가 호환되는 것은 아닙니다. 최신 버전 IDE이지만 몇 시간 후에 콘솔에 표시된 온도에 감탄했고 몇 분 후에는 온도에 따라 LED가 깜박였습니다. (센서를 분리하고, 냉장고에 넣고, 냉장고에서 꺼내서 연결하고...)

첫 번째 문제는 선택한 dht11의 낮은 정확도였습니다. 양방향으로 2-3도 기울어져 있었습니다. 교체해야 했습니다(그 후 여러 버전의 센서를 주문하려고 합니다).

그러다가 LeroyMerlin에 가서 아주 간단한 선풍기를 샀어요. 몇 분 동안 전선과 플러그를 만지작거린 후 팬이 조립되었습니다. 이웃과 함께 창문을 떼어내고 빈 공간에 창문(이웃이 아닌 선풍기)을 설치했습니다. 플러그를 소켓에 꽂았더니... 팬이 회전하기 시작했습니다. 느리게. 매우 느립니다.
말할 필요도 없이 플러그를 잘못 꽂았는데 바람 때문에 팬이 돌더군요.


물론 수동 전류 차단도 가능합니다. 그렇다면 릴레이를 통해 팬을 제어하는 ​​가장 좋은 방법은 무엇일까요? 팬에 직접 연결하시겠습니까? 나는 소켓을 통해 팬을 릴레이에 연결하기로 결정했습니다. 이는 시스템에 유연성을 제공합니다(팬을 다른 것으로 교체할 수 있음).

환기 테스트

이제 코드가 LED에서 릴레이로 다시 작성되었습니다. 펌웨어가 로드되면 시작하는 데 필요한 온도를 예상하여 온도를 모니터링합니다. 이제 그 순간이 왔습니다! 릴레이가 클릭되고 COM 포트가 사라집니다. 분명히 전환하는 순간 USB의 부하가 증가하고 데이터 간섭이 발생합니다. 처음에는 220V 전선의 간섭 때문인 줄 알았는데 보드에서 충분한 거리에 위치해 있습니다. 결과적으로 이로 인해 많은 문제가 발생했습니다. 새 스케치를 업로드하려고 하면 Arduino가 재부팅되고 릴레이가 전환되어 COM 포트가 제거되어 업데이트 프로세스가 제거됩니다. 나는 이 문제를 결코 극복할 수 없었다.

원격 제어

물론, 팬을 계속해서 작동시키는 것은 곧 지루해졌고, 스위치를 통해 끄는 것은 쿨하지 않았습니다! 그래서 거기에서 스타터 키트와 리모콘을 꺼냈습니다. 사실 그 순간부터 문제가 발생하기 시작했습니다. 수신기가 어떻게 생겼는지 전혀 몰랐습니다. 하지만 몇 분 동안 인터넷 검색을 해서 그것을 찾는 데 도움이 되었고, 또 한 시간 후에는 즐겁게 리모컨으로 팬을 제어하고 있었습니다.

처음에는 플래그가 여러 개인 복잡한 알고리즘이었지만 결국에는 작은 결과를 얻었습니다.

타이머가 있는 알고리즘

만약 (신호 도착)
manual_control_time = 1800;
팬_모드 =! 팬_모드;
}
If (manual_control_time!= 0)(
manual_control_time--;
)그렇지 않으면(
만약(온도< 26){
팬_모드 = 거짓;
)그렇지 않으면(
fan_mode = 사실;
}
}


그러나 여기에도 몇 가지 문제가 있었습니다. 전선을 업데이트하는 동안 DATA에 5V를 적용했는데 매우 빨리 수신기가 손실되었습니다. 이것이 나를 다음 단계로 이끌었습니다 ...

BT 모듈을 통한 제어

곧 HC-06 BT 모듈을 연결하고 출력을 거기로 리디렉션하고 명령 읽기를 추가했습니다. 훨씬 어려울 줄 알았는데 로보크래프트 기사 덕분이에요.

효과가 있었어



이웃과 팬

이웃에게 스마트폰으로 시스템을 제어하도록 가르쳐주면 '야 추워' 문제가 해결될 거라 생각했는데... 스위치를 통해 팬의 전원을 끄는 건 참을 수 있었는데, 팬을 닫는다. 창문이 나를 미치게 만들었어요. 왜? 팬이 몇 센티미터 떨어진 유리창에 불어와 심하게 윙윙거렸다. 다행히 주변에 자기 센서가 있어서 시스템을 만들게 되었습니다. 단락된 센서는 Arduino에 팬을 켜서는 안 된다는 신호를 보냅니다. 아쉽게도 가끔 간섭이 있어서 간단한 확인을 해야만 했습니다. 닫힘 신호가 여러 번 연속으로 오면 창이 정말 닫혀 있는 것입니다.


조명 제어

이제 우리는 빛을 제어할 수 있습니다. 팬 뒤에는 복잡한 것이 없습니다. 상자, 두 개의 터미널 블록 및 조명은 이미 Arduino를 통해 제어됩니다(물론 기존 스위치를 통해 끌 수 있음). 나의 유일한 관심사는 릴레이가 전구를 제어하는 ​​가장 좋은 방법이 아니라는 것입니다.

사운드 문제

글쎄, 박수를 치지 않고 어떤 종류의 조명 제어가 있습니까? 마이크를 주문했습니다. 그게 제가 생각한 것입니다... 미경험에 대해 기억하시나요? 실제로 수동으로 임계값을 설정하는 소리 감지기를 주문했습니다. 내 목적에 적합한 것 같나요? 그러나 몇 가지 "그러나"가 있었습니다.
  • 작은 작용 반경: 박수는 단 10cm에서만 처리됩니다.
  • 짧은 신호 지속 시간: 긴 코드 실행 시간으로 인해 센서의 신호가 Arduino에서 감지될 시간이 없었습니다.

리모컨 반납

약간의 인터넷 검색, 매장 방문 및 소진된 VS1838B 대신 더 안정적인 TSOP1836을 구입했습니다. 이번에는 설치가 성공적이었고 모든 것이 즉시 작동했습니다.


밖으로 나가기

창문을 알아냈는데 그 뒤에는 무엇이 있나요? 납땜 인두로 무장하고 레인 센서와 또 다른 dht11을 5미터 VGA 케이블에 납땜했습니다. U자형 패스너 몇 개, 검정색 전기 테이프, 이끼 및 시스템이 전투 임무를 수행할 준비가 되었습니다.


또한 러시아어 텍스트를 표시할 수 있다는 것도 배웠습니다.

그것은 되었다



약간의 편리함

스마트폰은 항상 손에 있는 것 같지만 찾을 때까지, 연결할 때까지... 때로는 스위치를 통해 조명이나 팬을 끄는 것이 더 빠르지만 이로 인해 Arduino를 통한 제어가 불가능해집니다(임펄스 릴레이는 너무 비싸요) 그래서 일반 버튼 두 개를 추가했습니다.

약간의 안전

기술자 기숙사에 화재경보기가 없는 곳이 어디 있겠습니까? 경험이 없어서 연기감지기가 아닌 화재감지기를 구매했습니다. 물론 최대 30cm 거리에서 불타는 성냥을 감지하는 것은 멋지지만 충분하지 않습니다. 그래서 지금은 그것 없이 지냈어요.

기숙사 화재경보기 얘기가 나와서 말인데...


  • 가끔 사이렌이나 죽은 사람의 쌕쌕거림을 내는 스피커
  • 지역 연기 감지기
  • 네트워크 연기 감지기(보안 콘솔에 연결됨)

일반보기







컴퓨터 케이스에 놓으면 큰 단점이 있습니다. 단락. 따라서 곧 보드가 개인 선반으로 이동하고 판지 대신 HDD 케이스로 만든 수제 케이스가 생길 것입니다.

스케치 코드

현황

#포함하다
#포함하다
#포함하다
#포함하다
#define DHT_PIN 2 //온도계 핀...
#define DHT2_PIN 52 //실외 온도계 핀...
#define RAIN_PIN 53 //레인 센서 핀
#define RECV_PIN 3 //IR 수신기 연결용 핀
#define FAN_PIN 4 //릴레이 연결 핀
#define LAMP_PIN 5 //릴레이 연결 핀
#define SOUND_PIN A0 //마이크 연결 핀
#define WINDOW_PIN A1 //창 핀

#define LAMP_BUT_PIN 50 //마이크 연결 핀
#define FAN_BUT_PIN 51 //창 핀

#DHTTYPE DHT11 정의

#TIMER_FAN 0 정의
#TIMER_WINDOW 1 정의

IRrecv irrecv(RECV_PIN);
decode_results 결과;
정수 타이머;
bool FAN_FLAG = 거짓;
bool LAMP_FLAG = 참;
int WINDOW_VAL = 0;

부울 WINDOW_OPEN = 거짓;
부울 WINDOW_FLAG = 거짓;
bool RAIN_FLAG = 거짓;

Char 수신바이트;

DHT dht(DHT_PIN, DHTTYPE);
DHT dht2(DHT2_PIN, DHTTYPE);

DS1302 rtc(49, 46, 48);
무효 설정() (
Serial1.begin(9600);

Rtc.halt(false);
rtc.writeProtect(false);
//rtc.setDOW(일요일); // 요일을 금요일로 설정
//rtc.setTime(0, 37, 40); // 시간을 0:37:00(24시간 형식)으로 설정합니다.
//rtc.setDate(25, 5, 2014); // 날짜를 5월 25일로 설정

타이머 = 0;
타이머 = 0;

핀모드(RAIN_PIN, INPUT);
pinMode(LAMP_BUT_PIN, INPUT);
pinMode(FAN_BUT_PIN, INPUT);

핀모드(FAN_PIN,OUTPUT);
핀모드(LAMP_PIN,OUTPUT);

디지털쓰기(FAN_PIN,LOW);
irrecv.enableIRIn(); // 수신기를 켭니다.

Dht.begin();
dht2.begin();
}
정수 볼륨;
무효 루프() (
WINDOW_VAL = 아날로그읽기(WINDOW_PIN); //자기 센서
if(WINDOW_VAL > 950)(
if(WINDOW_FLAG)(
타이머++;
if(타이머>10)(
WINDOW_OPEN = 거짓;
}
)또 다른(
WINDOW_FLAG=참;
}
)또 다른(
WINDOW_OPEN = 사실;
WINDOW_FLAG = 거짓;
타이머=0;
}

If(디지털읽기(RAIN_PIN)==HIGH)(
RAIN_FLAG=참;
)또 다른(
RAIN_FLAG=거짓;
}

볼륨 = 아날로그읽기(SOUND_PIN);
if(볼륨<40){
LAMP_FLAG = !LAMP_FLAG;
}

If(디지털읽기(LAMP_BUT_PIN)==HIGH)(
입력_신호(1);
}
if(디지털읽기(FAN_BUT_PIN)==HIGH)(
입력_신호(0);
}

If (irrecv.decode(&결과))
{
if (results.value == 16750695) //버튼 코드
{
입력_신호(0);
}
if (results.value == 16756815) //버튼 코드
{
입력_신호(1);
}
irrecv.resume(); //다음 값을 구한다
}
//Serial.println(rtc.getTime().hour);
//Serial.println(rtc.getTime().min);
Serial1.print(rtc.getDOWStr());
Serial1.print(" ");
Serial1.print(rtc.getDateStr());
Serial1.print(" - ");
Serial1.println(rtc.getTimeStr());

If (Serial1.available() > 0) (
수신바이트 = Serial1.read();
if(incomingByte == "0") (
Serial1.println("수동 모드 비활성화됨");
입력_신호(0);
)else if(incomingByte == "1") (
Serial1.println("수동 모드 활성화");
입력_신호(0);
)else if(incomingByte == "2") (
입력_신호(1);
}
}

플로트 h = dht.readHumidity();
float t = dht.readTemperature();

If (isnan(t) || isnan(h)) (
Serial1.println("내부 온도계 판독 오류");
) 또 다른 (
if(타이머<=0){
만약 (티<26){
FAN_FLAG = 거짓;
) 그렇지 않으면 (t>26)(
FAN_FLAG = 참;
}
)또 다른(
타이머--;
}
Serial1.print(h);
Serial1.println(“ %\t”);
Serial1.print(t);
Serial1.println(“ *C”);
}

If(타이머>0)(
Serial1.print("수동 모드는 계속 작동합니다: );
Serial1.print(타이머);
Serial1.println("초");
)또 다른(
Serial1.println("수동 모드 비활성화");
}
if (FAN_FLAG && WINDOW_OPEN)(
digitalWrite(FAN_PIN,HIGH);
Serial1.println("팬 켜기");
)또 다른(
digitalWrite(FAN_PIN,LOW);
Serial1.println("팬 꺼짐");
}

만약(WINDOW_OPEN)(
Serial1.println("창이 열려있습니다.");
)또 다른(
Serial1.println("창이 닫혔습니다.");
}

만약(LAMP_FLAG)(
디지털쓰기(LAMP_PIN,HIGH);
)또 다른(
digitalWrite(LAMP_PIN,LOW);
}

H = dht2.readHumidity();
t = dht2.readTemperature();
Serial1.println("창 밖:");
if (isnan(t) || isnan(h)) (
Serial1.println("실외 온도계 판독 오류");
) 또 다른 (
Serial1.print("습도: );
Serial1.print(h);
Serial1.println(“ %\t”);
Serial1.print("온도: );
Serial1.print(t);
Serial1.println(“ *C”);
}
if (RAIN_FLAG) (
Serial1.println("비는 안 왔어요");
)또 다른(
Serial1.println("비");
}

Serial1.println("*****");
지연(100);
}

무효 input_signal(int 신호)(
스위치(신호)(
사례 0:
if(rtc.getTime().hour> 1 && rtc.getTime().hour< 8){
타이머 = 1800;
)또 다른(
타이머 = 18000;
}
FAN_FLAG = !FAN_FLAG;

Serial1.println("팬이 전환됨");
부서지다;
사례 1:
LAMP_FLAG = !LAMP_FLAG;
Serial1.println("조명 스위치");
부서지다;
}
}

코드에 결함이 있으면 어떻게 되나요?

정상적으로 닫힌 릴레이를 사용하고 있습니다. 즉, 기본적으로 모든 것이 켜져 있습니다. Arduino를 네트워크에서 연결 해제하고 간단한 스위치를 사용할 수 있습니다.

개발 계획

제가 나열한 것은 진정한 스마트룸의 기초일 뿐입니다. 결국 모든 AI는 온도에 따라 팬을 켜고 끄는 것입니다. 나는 방을 더 편안하고 "자립적"으로 만들기 위해 다음을 계획하고 있습니다.
경보
시스템에 시계를 추가하면 다음 알람 시계가 그 다음 줄에 추가됩니다. 신호로 피에조 신호음, 표시등 깜박임 및 팬 켜기라고 가정합니다. 물론, 밖에 비가 오면 일찍 일어나게 됩니다(이동 속도 -10).

이러한 모듈을 사용하여(정전 시) 알람을 SD 카드에 저장하는 시스템을 추가합니다.

컴퓨터 및 스마트폰용 애플리케이션 + 위젯
스마트폰이나 컴퓨터로 제어할 수 없는 스마트홈이란?

나는 다음과 같은 것을 추측하고 있습니다 :


Wi-Fi는 왜 안되나요? 너무 비싸요.

Arduino 자체 전원 공급 장치 출력
댓글은 불필요하다고 생각합니다. USB가 소진될 위험이 있고 다른 장치에 대한 지속적인 간섭이 있습니다. 또한 보드의 전원을 특수 어댑터로 전달하고 싶습니다.
콘센트를 통해 라우터 제어
오래된 Asus RT56U는 특히 여름에 따뜻하게 지내는 것을 좋아합니다. 그래서 밤에 몇 시간 동안 자동으로 전원이 꺼지도록 하고 싶습니다.
존재감 모니터링 추가
이제 나에게는 좋은 오래된 초전기 장치가 있습니다. 적외선 센서한 쌍의 초음파 거리 센서. 이는 간단한 존재 제어에 충분할 수 있습니다.

두 사람이 방에 살고 있습니다. 각각에는 4가지 상태가 있습니다.

  • 컴퓨터에서
  • 소송 비용
  • 침대에 누워
  • 결석한

적외선 센서는 실내의 존재를 감지하고, 초음파 센서는 구역(침대/테이블)의 존재를 감지하여 출입하는 사람의 수를 모니터링합니다.

이를 통해 가장 간단한 시나리오를 구현할 수 있습니다.

  • 저녁에 왔는데 이웃이 자지 않고 있어요. 불을 켜주세요
  • 모두 떠났다: 불을 꺼라
  • 모두 누워서 움직이지 않는다: 불을 꺼라
감광성 저항기 추가
장르의 고전: "At the Computer" 구역에 방에 누군가가 있고 방이 어두우면 자동으로 조명이 켜집니다.
추가하다 전기 기계식 잠금 장치그리고 더 가까이
당신은 어떨지 모르겠지만, 저는 항상 열쇠를 찾기에는 너무 게을러서 근접 카드 판독기나 지문 센서와 결합된 전자 기계식 잠금 장치를 꼭 설치하고 싶습니다. 호스텔 입장은 전자 패스를 사용하여 이루어집니다. 주파수를 알고 Arduino용 리더기를 쉽게 주문할 수 있지만 카드는 복제하기가 매우 쉽기 때문에(저도 이를 위한 장치가 있습니다) 때가 되면 지문 손가락에 정착할 가능성이 높습니다.

이웃은 종종 부엌/화장실/욕실에 들어가 문을 닫지 않습니다. 나는 입구 반대편에 앉아 있는데 지나가는 사람들이 모두 내 팬티를보고 방의 성향을 생각하는 것이 마음에 들지 않습니다. 제어식 도어 클로저는 이러한 상황에 대한 탁월한 솔루션이 될 것입니다.

창을 업그레이드하세요
이미 쓴 것처럼 온도가 특정 한도를 넘으면 팬이 켜집니다. 하지만 방에 아무도 없고 온도가 이미 20도 미만이라면 어떻게 될까요? 시스템에 창 열기/닫기를 추가하고 싶습니다. 아마도 단순한 모터 + 낚싯줄이 될 것입니다.

전구를 식힌 뒤 켜면 폭발할 확률이 높다고 알려져 있다. 이렇게 하면 신경과 전구도 보호할 수 있습니다.

온도 조절 시스템에 도달하지 못한 전구


DHT11 교체
이미 쓴 것처럼 센서 등을 이해하지 못합니다. 그래서 저는 제가 처음으로 접한 온도 센서인 dht11을 구입했습니다. 이제 방의 경우 dht22로, 거리의 경우 dht21로 바꾸고 싶습니다. dht22는 오류가 더 작으며 dht21은 거리에 중요한 음의 온도와 보호 하우징을 지원합니다. Street dht11은 이미 때때로 길을 잃기 시작했습니다.
학생 태그 추가

과학과 기술이 활발히 발전하는 시대에 전자 기기는 점점 더 사람들의 삶에 침투하고 있습니다. 점차적으로 사람들이 자신의 손으로 수행하는 모든 기능은 기계의 철판 위에 놓이게 되며, 기계는 종종 더 나은, 더 빠른, 더 나은 품질로 작업을 수행합니다. 스마트 기계의 접근성이 높아지고 있으며 모든 가정에 스마트 기계가 들어갈 때가 다가오고 있습니다.

오늘날 거의 모든 사람은 특정 기본 지식이 있으면 일상 생활에 유용한 일종의 전자 장치를 자신의 손으로 조립할 수 있습니다. 인터넷에는 수많은 주제별 포럼, 자세한 권장 사항이 있는 사이트, 기성 계획, 숙련된 디자이너가 공유하는 프로그램 코드. 기본적으로 이러한 수제 개발은 자신의 삶과 집을 더 쉽게 만들기 위해 만들어졌습니다. 따라서 이들은 특정 정보를 읽을 수 있고 이를 기반으로 특정 기능을 수행할 수 있는 장치인 다양한 컨트롤러가 됩니다. 집(아파트, 방)에 일상 생활의 다양한 측면을 제어할 수 있는 유사한 센서가 장착되어 있는 경우 이러한 집을 "스마트"라고 합니다.

현재 스마트 홈 프로젝트는 전 세계적으로 활발히 논의되고 구현되고 있습니다. 일반적으로 이들은 자원 효율성을 높이고 일상 생활에서 발생하는 모든 프로세스를 최대한 자동화한 주택입니다. 그러한 프로젝트에는 자체 비용과 적용 조건이 있습니다. 자신의 집을 얼마나 스마트하게 만들 수 있는지 이해하기 위해 무엇이 집에 "스마트함"을 주는지 더 자세히 이해해 봅시다.


'스마트' 홈이란 무엇인가요?

가장 극단적인 형태로 말하면, '스마트' 홈은 사람의 일상생활의 모든 영역이 기계에 의해 제어되는 구조입니다. SF 영화에서는 종종 컴퓨터가 사람을 깨우고, 일할 준비를 해주고, 아침 식사를 준비하고, 대화를 나누는 등의 집의 예를 보여줍니다. 불행하게도 기계가 아직 적절한 개발 수준에 도달하지 않았기 때문에 현대의 야심찬 프로젝트는 아직 구현되지 않았습니다. 따라서 그 기능은 집안의 빛, 에너지, 습도, 온도 등을 제어하는 ​​것으로 제한됩니다. 일반적으로 스마트 홈과 관련된 전문 회사의 프로젝트에는 비용이 많이 들고 광범위한 소비자가 사용할 수 없습니다. 그러나 언제나 그렇듯이 "스마트"홈을 직접 조립하는 또 다른 방법이 있습니다.


어떻게 해야 하나요?

"스마트" 홈은 단순히 정보를 읽고 이를 기반으로 특정 명령을 실행하는 연결된 센서가 있는 컨트롤러 세트라는 점을 이해해야 합니다. 예를 들어, 난방 컨트롤러. 센서가 특정 수준 이하로 온도가 떨어지는 것을 감지하면 실내에 열 공급을 켭니다. 자동 에어컨은 이 원리로 작동합니다. 그리고 "스마트" 홈에서는 센서가 장착된 컨트롤러가 어디에나 위치하므로 제어를 통해 최대 작업 수를 처리할 수 있습니다. 당연히 자신의 "스마트"집을 만들기 위해 먼저 개선하고 싶은 삶의 영역과 이를 위해 필요한 것이 무엇인지 정확히 고려하여 머릿속에 작은 프로젝트를 개발하게 됩니다.

따라서 집을 더욱 자급자족하게 만들려면 활용할 수 있는 컨트롤러가 필요합니다. 사실 구매하는 것만으로는 충분하지 않습니다. 프로그래밍하고 외부 정보 소스를 연결하고 구성해야합니다. 올바른 직업. 여기에서는 특정 분야에 대한 지식 부족 문제가 발생합니다. 왜냐하면 이러한 장치 중 상당수는 작동하기가 상당히 복잡하고 해당 장치를 사용할 수 있는 사람이 많지 않기 때문입니다. 그러나 수요가 발생하면(누가 작동하는 전자 장치를 자신의 손으로 조립하고 싶지 않겠습니까?) 그에 상응하는 공급이 나타납니다. 한 회사는 현재 실질적으로 사용자 친화적이고 이해하기 쉬운 제품을 제공하는 가장 인기 있는 공급업체입니다. 전자 기기. 아두이노 회사입니다.

이 시스템을 고려하기 전에 이 시스템에 대한 보편적인 스마트 홈 디자인이 없다는 점을 고려해야 합니다. 각 사용자는 자신만의 고유한 프로젝트를 만들고 자신만의 방식으로 구현합니다. 기술 솔루션. 이것은 아래에서 고려할 시스템의 장점 중 하나입니다.

Arduino 시스템이란 무엇입니까?

Arduino는 이제 편리한 전자 설계자이자 이해하기 쉬운 프로그래밍 환경이며, 일반적으로 초보자와 전문가 모두를 위한 자신만의 설계를 생성할 수 있는 편리한 도구입니다. Arduino 플랫폼이 인기 있는 이유는 간단하고 이해하기 쉬운 언어로 프로그래밍되어 있고 프로그램이 USB를 통해 전송된다는 점입니다. 즉, 프로그래머가 필요하지 않습니다. 필요한 장치), 오픈 소스 코드(플랫폼이 생성되는 기반, 소프트웨어 코어, 모든 필요한 프로그램). 오픈 소스는 Arduino 자체에서 제공하는 프로그램만 사용하는 것이 아니라 이를 기반으로 자신만의 "자작" 프로그램을 만들 수 있다는 점에서 사용자에게 유용합니다.


Arduino 기술의 본질은 무엇입니까? 이를 통해 일반 컴퓨터가 실제 공간에 "들어가" "느끼기" 시작할 수 있습니다. 이는 일부 경로(대부분 무선)를 사용하여 환경에 대한 정보를 전송하고 이를 기반으로 일부 제어 장치 제어에 대해 독립적인 결정을 내릴 수 있는 센서를 통해 달성됩니다. 따라서 이 기술은 거의 모든 것에 대해 구성될 수 있습니다. 동시에 Arduino 제품은 보편적이며 상호 작용할 수 있습니다. 많은 수개인용 컴퓨터와 모바일 장치 모두에서 시스템. 특정 사용자는 작은 보드에서 충전재 자체를 구입하고 조립식 버전으로 추가하거나 필요한 구성 요소와 독립적으로 조립할 수 있습니다. Arduino 보드의 모든 커넥터는 최대한 표준화되어 있어 타사 제조업체가 호환되는 부품을 더 쉽게 생산할 수 있습니다. 모두 소프트웨어무료로 다운로드할 수 있어 인터넷에서 Arduino의 인기가 크게 높아졌습니다.

다양한 포럼과 커뮤니티에서 숙련된 홈 엔지니어는 "Arduino의 다재다능함은 돈, 시간, 신경을 절약하는 데 도움이 될 것입니다."라고 말합니다. 사실, "스마트" 홈 프로젝트는 훨씬 더 쉬워질 것입니다. 기능이 열등하지 않은 간단하고 저렴한 부품을 다양하게 선택할 수 있다면 비싸고 희귀한 부품을 구입할 필요가 없기 때문입니다. 또한 시스템의 인기도 귀하에게 유리하게 작용합니다. 오늘날에는 전문가와 아마추어 모두가 수행하는 기성 코드, 계획 및 프로젝트가 적극적으로 개발되고 있습니다. 이 모든 것이 모든 취향에 맞는 기능을 찾을 수 있는 거대한 라이브러리로 결합되어 있습니다.


"스마트" 홈은 무엇을 할 수 있어야 합니까?

자신만의 "스마트" 집을 만드는 데 있어 Arduino는 오랫동안 거의 유명해졌으며 자동화 및 원격 제어자신의 삶. 이미 이 기술을 기반으로 하는 "가정" 사용자에 의해 수많은 개발이 이루어졌으며 그 목적은 단순히 조명을 켜고 끄는 것에서부터 복잡한 시스템컴퓨터를 운전하는 방법.


우선, 공상과학 소설을 제쳐둔다면, "스마트" 주택이 가져야 할 특성과 가질 수 있는 특성이 무엇인지 결정해야 합니다. 결국, 집 디자인에서는 실제로 실현하기 어려운 것들을 제공할 수 있습니다. 업무용 옷을 자동으로 선택하는 시스템을 찾을 가능성은 거의 없습니다. 포럼과 웹사이트에 대한 조사를 한 후에는 그러한 하우스가 다음을 수행할 수 있어야 한다는 결론에 도달할 수 있습니다.

  1. 조명을 켜고 끄는 것을 제어해야 합니다. 가장 진보적인 개발 벡터에서는 리모콘의 신호나 소리 신호(박수)를 기반으로 전구를 끄는 것이 쉽지 않지만, 예를 들어 아무도 없을 때 자동으로 조명을 끄는 등의 작업을 수행합니다. 집에 있을 때나 집에 있는 사람들이 모두 자고 있을 때.
  2. 집 안의 온도를 조절하세요. 이는 자동화된 컴퓨터와 환기, 난방 및 유사한 시스템의 상호 작용입니다. 여기의 작동 원리는 매우 간단합니다. 센서에 의해 기록되는 온도가 변하면 시스템이 자동으로 켜지거나 꺼집니다. 필요한 장치. 예를 들어, 잠자리에 든 후 온도가 천천히 낮아지고(서늘한 방에서 깊은 단계에서 잠을 자는 것이 더 편안함), 깨어난 후에( 알람이 꺼짐) 반대로 증가합니다(따뜻한 방에서 일어나는 것이 더 즐겁습니다).
  3. 모니터링 외부 환경. 이러한 과학 용어 뒤에는 외부 온도의 정의, 비, 눈 등의 표시가 있습니다. 원칙적으로 모든 날씨 정보는 일부 화면에 표시되거나 다음과 함께 표시될 수도 있습니다. 소리 신호. 디자이너 중 한 명이 비가 오면 사람이 더 천천히 준비하고 직장이나 학교에 가는 데 더 오랜 시간이 걸리기 때문에 비가 올 때 더 일찍 일어나는 아이디어를 제안했습니다.
  4. 출입문 및 출입 통제. 이 범주에는 다음과 같은 상당히 다양한 장치가 포함됩니다. 보안 시스템(종종 사람이 있어서는 안되는 시간에 구내에 사람의 존재를 감지하는 초음파 및 적외선 센서 세트입니다.), 자동 도어 잠금 장치, 다양한 수정의 전자 잠금 장치(예: 지문 인식 기반) 및 충분 간단한 장치함께 사는 사람이 뒤에서 문을 닫는 것을 잊어버린 경우 자동으로 문을 닫는 것과 같습니다.
  5. 다양한 누출 및 누출에 대한 경고 시스템에는 실내의 연기 및 화재를 감지하는 기능도 포함됩니다. 이러한 시스템은 소방서에 전화를 걸기 시작하는 지점까지 수정될 수 있습니다.
  6. 다른 시스템은 매우 다양할 수 있습니다. 일반적으로 사용되는 시스템에는 장비 제어(예: 악기, TV 자동 켜기), 다양한 데이터 수집 시스템(예: 장치가 몇 분마다 수족관 물 온도에 대한 정보를 표시함)이 포함됩니다.


언뜻 보면 복잡하고 매우 환상적으로 보이는 이 모든 시스템은 이미 사용자가 집에서 다음을 사용하여 구현하고 있습니다. 아두이노 시스템. 요즘 스마트폰 시대에 집 안을 제어한다는 아이디어는 휴대폰, 대부분의 경우 이러한 시스템은 운영 체제를 기반으로 생성됩니다. 모바일 시스템 Android는 개발자에게 가장 개방적이고 편리한 도구입니다. 따라서 예를 들어 사람은 전화를 걸어 트위터를 사용하여 동물에게 먹이를 주거나 도착하기 전에 방의 난방을 켤 수 있습니다.

따라서 Arduino를 사용하면 삶의 거의 모든 개선을 위한 프로젝트를 구현할 수 있다고 말할 수 있습니다. 다양한 소프트웨어 제품과 상호 작용할 수 있는 광범위한 기능과 가장 중요한 시스템의 유연성은 계획을 실현하는 데 탁월한 도구 역할을 합니다.

"사실 Arduino는 프로젝트와 꿈을 실현하는 데 이상적인 도구입니다." 포럼에서 자신의 도시 및 프로젝트를 직접 발표하는 숙련된 디자이너가 말합니다. 시골집, 그들은 스스로 개발하고 구현했습니다.


왜 아두이노인가?

논리적인 질문이 생깁니다. 이러한 모든 시스템을 구입하고 설치 외에도 해당 시스템을 아름답게 설계할 수 있는 전문가에게 설치를 주문할 수 있습니다(예: 동일한 전선 숨기기). 왜 직접 만드나요? 아두이노를 사용하여? 대답은 간단합니다. 가격과 편의성의 문제입니다. 일반적으로 이러한 시스템을 전문적으로 설치하는 회사는 구성 요소 및 유사한 장치 자체의 가격과 설치 비용 모두에서 매우 중요한 인상을 받습니다.

물론, 그들은 당신을 위해 모든 것을 해줄 것이고 충분히 빠를 것입니다. 그러나 먼저 당신은 당신의 취향에 맞게 무언가를 바꿀 기회를 잃게 될 것이며 동시에 어떤 종류의 고장이 발생할 경우 무언가를 수리할 것입니다. 거의 편리하게 표준화되고 통합되지 않았으며 사용하기 쉽지 않은 다른 시스템을 사용하십시오. Arduino 보드와 그 구성 요소 및 필요한 추가 부품의 비용은 훨씬 저렴하며 작동 방식을 확실히 이해해야 한다는 점을 고려하면 필요한 경우 고장을 수정하고 필요한 부품을 교체할 수 있습니다. 그리고 자신에게 맞게 시스템을 조정하세요.


동시에 Arduino 플랫폼은 정당한 인기로 인해 수많은 라이브러리를 보유하고 있으며 숙련된 사용자는 의심할 여지없이 모든 종류의 문제 해결을 용이하게 하는 잘 수정된 필수 프로그램 코드를 이미 추가했습니다. 귀하의 "스마트" 프로젝트에 이러한 시스템을 배치하는 과정에서 발생하는 문제입니다.

안녕하세요 여러분. 나는 오랫동안 아무것도 쓰지 않았습니다. 오늘은 데이터베이스에 대해 이야기하겠습니다. 예, 정확히 그들에 관한 것입니다. 이 주제가 관련성이 있게 된 이유는 무엇입니까? 스마트 홈 시스템을 구현하는 과정에서 시스템에 새로운 센서를 추가하는 큰 문제에 직면했습니다. 이는 결국 다음에서 전송되어야 하는 새로운 매개변수와 데이터를 추가하게 됩니다...

모두 새해 복 많이 받으세요! 명절 전날에는 블루투스를 통해 태블릿이나 스마트폰으로 제어되는 새해 화환에 대해 이야기하겠습니다. 프로젝트 구성 요소 목록: RGB LED Arduino 제어 칩이 포함된 리본(화환) 프로 미니블루투스 모듈 안드로이드 기반 태블릿(스마트폰) 다양한 제품 판매 중 RGB 스트립, 다른 칩에. 다음은 우리가 사용할 수 있는 마이크로 회로 목록입니다.

DHT 습도 센서 지난 기사에서는 기존 포토레지스터를 사용하여 욕실 팬을 제어하는 ​​방법을 살펴보았습니다. 이제 스마트 홈 계획에 추가할 시간입니다. 새로운 유형감지기 습도 및 온도 센서 - DHT(핀 9,10). 센서 작업에 대한 설명과 예는 DHT 센서를 사용하여 욕실의 습도를 측정하는 기사에서 찾을 수 있습니다.

모션 센서와 광 센서(포토레지스터)를 사용하여 욕실에서 자동 야간 조명을 수행합니다. 발광 요소로 12v LED 스트립 프로필을 사용합니다. LED 스트립박스 내 모션 센서 포토레지스터(임시 설치) 제어 알고리즘은 매우 간단합니다. 어두워서 모션센서가 작동되면 백라이트를 잠시 켜주세요. 외출시 케이스도 준비해야 하는데...

마지막 기사를 작성한 후 DS18B20 센서 중 하나가 과열되는 문제가 발생했습니다. 전원을 켠 후 여러 번 후에 DS 센서에서 데이터가 나오지 않는다는 것을 알아차리기 시작했습니다. 전체 시스템을 재부팅한 후 센서 중 하나가 35~40도를 나타냈고, 15분 이내에 온도가 실제 온도까지 떨어졌습니다. 센서를 새 센서로 교체해 보았으나 소용이 없었습니다. 그럼 어떻게...

스마트 홈 설계의 다음 단계는 환기 제어 장치를 설계하는 것입니다. 180W 부하의 220 네트워크로 구동되는 팬 3개가 있습니다. - 화장실과 결합된 욕실의 팬 - 천장 환기용 주방의 팬 - 스마트 홈 제어 장치 및 데스크탑(PC, 납땜 공간)용 팬 ) 팬은 릴레이를 통해 제어됩니다.

이번 프로젝트에서는 스마트 홈을 구축하는 방법을 보여 드리겠습니다. 실내외 온도를 모니터링하고, 창문이 열려 있는지 닫혀 있는지 감지하고, 비가 오는지 표시하고, PIR 모션 센서가 작동하면 경보를 울릴 수도 있습니다. 모든 데이터를 표시하기 위해 Android OS에서 애플리케이션을 만들었습니다(데이터는 브라우저를 통해서도 볼 수 있습니다). 전 세계 어디에서나 집 안의 온도와 기타 정보를 볼 수 있습니다! 신청서는 영어와 폴란드어로 번역되었습니다. 내가 만들었습니다 이 장치, 왜냐하면 나는 내가 제어할 수 있는 나만의 스마트 홈을 갖고 싶었기 때문입니다. 아래 권장 구성 요소를 사용하여 스마트 홈을 구축할 수도 있습니다. 그럼 시작해 보겠습니다.

초보자를 위해 설명된 약어:

GND - 접지
VCC - 전력
PIR – 모션 센서

1단계: 구성 요소

모든 구성 요소의 비용은 $90를 초과하지 않습니다.

  • 온도 센서 DS18B20 x 2개
  • 리드 스위치
  • 저항기 4.7kΩ
  • 케이블, 꼬인 쌍
  • 이더넷 케이블
  • 도구(납땜인두, 드라이버)

2단계: 연결


연결 다이어그램은 위에 나와 있습니다.

3단계: 코드

먼저 이 라이브러리를 다운로드하고 압축을 풀고 개발 환경으로 가져와야 합니다. 아두이노 IDE. 다음으로 다운로드해야 할 것 이 프로그램아두이노에서. 주석은 프로그램 코드를 설명합니다.

4단계: 작동 방식


애플리케이션이나 브라우저에서 새로 고침 버튼을 클릭하면 Arduino가 데이터를 스마트폰/브라우저로 보냅니다. 애플리케이션은 각 페이지(/tempin, /tempout, /rain, /window, /alarm)에서 프로그램 코드를 수신하여 스마트폰에 표시합니다.

5단계: 안드로이드 애플리케이션.

Android OS를 실행하는 스마트폰에 애플리케이션을 설치하려면 다음을 수행해야 합니다(위 그림에서 볼 수 있음).

1. 먼저 smartHome.apk 파일을 다운로드하세요.
2. apk 파일을 휴대폰으로 전송하세요
3. 파일 관리자를 열고 smarthHome.apk 파일을 저장하세요.
4. 이를 클릭하고 설치를 클릭합니다(Google Play 마켓 외부에 애플리케이션을 설치할 수 있는 확인란을 선택해야 합니다).
5. 설치 후 애플리케이션을 활성화해야 합니다.

6단계: 애플리케이션 구성

응용 프로그램이 어떻게 작동하는지 간략하게 설명하겠습니다. 집의 모든 데이터를 표시합니다. 설정 아이콘을 클릭하여 IP 주소를 편집하고 알람을 켜거나 끌 수 있습니다. 알람을 켜면 애플리케이션은 활성 PIR 모션 센서로부터 데이터를 수신합니다. 센서가 집 안의 외부 움직임을 감지하면 경고를 보냅니다. 애플리케이션은 매분마다 센서로부터 데이터를 수신합니다. IP 필드에 IP 주소를 입력합니다.

7단계: 브라우저



브라우저의 주소 표시줄에 IP 주소 / all을 입력하세요. 동시에 모든 데이터를 볼 수 있으며 조명을 켜고 끌 수 있습니다.

이러한 기능을 사용하려면 Android 앱을 사용할 수도 있습니다.

8단계: 포트 전달

라우터에서 포트를 열어야 합니다. 라우터 구성에 들어가서 Arduino IP 주소를 설정하고 포트 80을 엽니다. 절차는 위 그림에 나와 있습니다.

9단계: NO IP 도메인 이름 할당(선택 사항)

사용자 정의할 수 있습니다. 계정 IP가 없지만 반드시 필요한 것은 아닙니다. 위 그림은 구성 과정을 보여줍니다.

10단계: 테스트

컴퓨터의 데이터를 보려면 브라우저의 주소 표시줄에 IP 주소 / all(예: 12.345.678.901/all)을 입력하거나 Android 애플리케이션을 사용하세요.

11단계: 편집: Android 앱 소스 프로그램

아래는 안드로이드용 소스코드입니다.

신청서는 영어와 폴란드어로 번역되었습니다. 브라우저를 통해 조명을 켜고 끌 수 있지만, 아직 해당 기능이 구현되지 않아 앱을 통해서는 불가능합니다.