반응형

 

(#9_원격 디지털 도어락 제어) MQTT와 ESP8266(WEMOS D1R1)을 이용한 사물인터넷(IoT) 원격제어 시리즈
-이번 시리즈는 사물인터넷(Iot)의 가장 바람직한 형태라고 생각하는 부분이다!(녹칸다 피셜)
-먼저 C#윈폼 단독으로는 사물인터넷이라는 개념이 생기지 않으므로 아두이노쪽과 연계를 해서 진행한다!
-사물인터넷이란 "어머 이런것 까지 인터넷에 연결되어있어?"라고 할 정도로 작은 보드에게까지 인터넷을 연결해주는 것을 의미한다!(녹칸다 피셜)
-아두이노는 인터넷에 연결되는 기능이 없어서 추가적인 모듈을 연결해야하는데 대표적인것이 ESP8266이다!
-그러나 아두이노와 ESP8266을 직접 연결해서 사용하기에는 사용상의 불편함이 있다!
-그래서 아두이노와 ESP8266을 합쳐놓은 형태의 사물인터넷 전용 보드인 WEMOS D1R1 이라는 보드를 활용한다!
-C#윈폼과 사물인터넷보드간 데이터를 주고받는 방법은 MQTT로 한다!
-MQTT란 서버역활을 하는 MQTT 브로커를 중간에 두고 클라이언트간에 단문 메시지를 주고 받는 형태이다!
-웹서버와 웹클라이언트 통신과 차이가 있다면 MQTT는 웹서버에 대해서 고민할 필요가 없다!
-(무료로 활용할 수 있는 MQTT 브로커를 활용한다는 가정하에~)
-C#윈폼과 사물인터넷보드(wemos d1r1)를 MQTT 클라이언트로 세팅한다!
-2개의 클라이언트가 같은 TOPIC을 공유하게 될때 PAYLOAD를 주고 받을 수 있다!(용어에 익숙해지자)
-간단히 생각하자면 A학생과 B학생이 있는데 같은 사물함을 사용하면 물건을 주고 받을 수 있다는 의미이다!
-이번편은 사물인터넷보드(wemos d1r1)를 3개 준비해서 각각 마그네틱스위치(MC38), 솔레노이드스위치, RFID리더(RC522)를 연결한다!
-마그네틱스위치는 도어센서라고도 하는데 문이 열리거나 닫힌 상태를 MQTT 메시지로 publish한다!
-솔레노이드 스위치는 잠금장치로 가정하자! C#윈폼에서 publish하는 MQTT 메시지를 subscribe해서 잠금장치를 설정하거나 해제한다!
-RFID리더(RC522)에 RFID태그가 태깅되면 태그의 ID를 MQTT메시지로 publish한다! 권한이 있는 사용자인지 아닌지를 구별하기 위한 것이다!
-개념상 이상한부분이 있을 수 있다! 도어락잠금을 해제하는 TOPIC을 알아내면 누구나 잠금을 해제할 수 있게되는데 이것은 그냥 아이디어가 그렇다는 것이고 MQTT도 아이디와 패스워드로 권한관리가 가능한 부분이 있으니 녹칸다의 생각을 들어보자!

 

C# MQTT 라이브러리 사용법 요약

C#에서 MQTT사용하는 기본코드.txt
0.00MB


C#프로젝트

example112.zip
1.18MB


사물인터넷보드용 코드

C#112-1.txt
0.00MB
C#112-2.txt
0.00MB
C#112-3.txt
0.00MB

(레퍼런스강의/아두이노#187/#214)

https://bota.tistory.com/1427

https://bota.tistory.com/1456

 

관련라이브러리(pubsubclient)

https://pubsubclient.knolleary.net/

필요라이브러리(RC522)

https://github.com/miguelbalboa/rfid

반응형
Posted by 덕력킹
,