[C#윈폼139] (MYSQL저장#16) 스마트팜/워터펌프/유량제어/WEMOS D1R1와 MQTT를 이용한 데이터 수집!(녹칸다/포로리야공대가자)
프로그래밍/C# MYSQL 2021. 4. 21. 23:57
(MYSQL저장#16) 스마트팜/워터펌프/유량제어/WEMOS D1R1와 MQTT를 이용한 데이터 수집!(녹칸다/포로리야공대가자)
-여기서 부터는 MYSQL이 설치가 되어있어야 진행이 가능하다!
-C#에서 MQSQL과 연결하기 위한 커넥터 라이브러리를 설치한다!
-커넥터 라이브러리는 시리즈에서 항상 설치과정을 보여주고 시작한다!
-그러나 전체 프로젝트 용량이 50메가 정도 되어서 업로드 할때는 라이브러리 파일을 삭제하고 업로드한다(블로그 파일용량 10메가 제한)
-녹칸다가 삭제한파일을 다시 복구하는 방법에 대해서 매 시리즈마다 설명을 추가한다!
-이번편은 사물인터넷보드(WEMOS D1R1/ESP8266)를 이용해서 무선인터넷(WiFi)로 데이터를 수집하는 것을 목표로 한다!(아두이노가 아님에 주의하자)
-무선공유기를 이용해서 네트워크를 형성하므로 기존(1~12)에 진행된 예제와 비교했을때 공간적 제약이 없어진다!
-무선공유기로 사물인터넷보드 여러개를 네트웍으로 묶어두면 C#클라이언트는 지구 반대편에 있어도 데이터를 수집할 수 있다!
-사물인터넷보드(WEMOS D1R1)는 MQTT클라이언트로 동작시키고 MQTT를 이용해서 데이터를 송수신 하도록 한다!
-C#윈폼 어플리케이션도 MQTT클라이언트로 동작시키고 MQTT를 이용해서 사물인터넷보드를 제어한다!
-사물인터넷 보드에서 생산된 정보를 데이터베이스(database)인 MYSQL에 저장해보자!
-이번편은 비닐하우스에서 식물을 키우는데 필요한 센서와 모듈을 활용해서 시뮬레이션 해보는 것이다!
-실생활에서 워터펌프 유량제어를 한다면 아마 녹칸다의 생각은 아래와 같다!
-워터펌프와 유량센서는 가까운 거리에 있을 것 같다! 그러나 물탱크는 멀리 있을 수도 있을 것 같다!
-그래서 워터펌프와 유량센서를 묶어서 사물인터넷보드A와 연결한다! 그리고 비접촉수위센서 2개를 사물인터네보드B와 연결한다!
-C#윈폼과 데이터베이스(database)인 MYSQL가 설치된 PC와 사물인터넷보드A, 사물인터넷보드B를 MQTT를 이용해서 연결한다!
-C#윈폼에서 사물인터넷보드에서 MQTT를 이용하는 예제는 과거의 녹칸다가 기반을 다져놓은 상태기 때문에 그렇게 어렵지 않을듯하다!(과연?)
-C#윈폼에서 사물인터넷보드A를 MQTT로 원격제어하고 유량센서의 측정결과를 받아오자!
-C#윈폼에서 사물인터넷보드B의 수위센서 상태를 MQTT를 이용해서 결과로 받아오자!
-C#윈폼에 데이터베이스(database)인 MYSQL을 연동하고 워터펌프의 작동상태와 측정한 유량, 수위센서의 상태를 DB에 저장한다!
-그전에 DB에 가장 적합한 형태의 table을 만들어야겠다!
-마무리도 MYSQL에 저장된 데이터를 추출해서 결과를 출력해보자!
실습용 SQL파일
C#프로젝트
(MYSQL관련 파일이 용량이 커서 업로드 용량제한 때문에 삭제하고 업로드)
(빈프로젝트에 MYSQL 라이브러리 다운받고 실습프로젝트에 붙혀넣으면 될듯!)
(아래 경로안에 있는 파일 전부다 복붙!)
/packages
C#에서 MYSQL 사용하는 기본 코드
mqtt가이드
아두이노코드
아두이노관련라이브러리(pubsubclient)
https://pubsubclient.knolleary.net/
아두이노 레퍼런스코드(#111)