[아두이노#194] esp8266wifi MQTT로 비접촉수위센서 제어(feat. 워터펌프&플로우센서)(wemos d1r1/사물인터넷(iot)시리즈#34/녹칸다/포로리야공대가자)
프로그래밍/ESP8266 MQTT 2020. 12. 23. 21:43
esp8266wifi MQTT로 비접촉수위센서 제어해보기(feat. 워터펌프&플로우센서)(wemos d1r1/사물인터넷(iot)시리즈#34/녹칸다/포로리야공대가자)
비접촉수위센서(XKC-Y25-V)를 사물인터넷보드(wemos d1r1)에서 사용해보자!
비접촉수위센서란 물과 접촉하지 않고 워터레벨을 측정할 수 있는 센서이다!
아두이노에서 잘 작동 되는것은 확인하였다! 사물인터넷보드에서는 과연~?
작동이 잘된다면 MQTT로 센서의 상태를 publish해보자!
그냥 수위센서만 있으면 예제가 허전하니 워터펌프와 플로우센서도 함께 묶어서 진행할 예정이다!
참고로 워터펌프와 플로우센서를 이용한 MQTT예제는 이미 진행했으니 업그레이드 버전이라고 생각하면 될듯하다!
(시나리오) 스마트폰의 MQTT앱으로 publish한 메시지에따라 워터펌프가 작동한다!
워터펌프가 작동하면 플로우센서를 이용해서 펌프질한 물의 양을 측정해서 사물인터넷보드가 publish한다!
비접촉수위센서에 의해서 최저수위에 도달하면 사물인터넷보드가 정보를 publish하고 워터펌프를 멈춘다!
예제 194-1 사물인터넷보드(wemos d1r1)에 비접촉수위센서(XKC-Y25-V)의 디지털 신호를 확인해보는 간단한 예제!
예제 194-2 사물인터넷보드에 아래와 같은 것들이 연결되었다.
워터펌프(릴레이) : D3
플로우센서 : D4
비접촉수위센서 : D5
유저의 스마트폰어플리케이션에서 MQTT로 날린 메시지로 워터펌프를 작동시킨다!
이때 토픽은 nockanda/pump이다!
워터펌프가 작동되면 토출되는 물의양을 측정하는데 nockanda/flow로 publish한다!
그러므로 스마트폰앱은 nocaknda/flow라는 topic을 subscribe하면 된다!
그리고 워터펌프의 작동상태를 한글로 publish하는데 topic은 nockanda/pump2이다!
이번예제에 추가될 내용은 워터펌프가 작동되더라도 용기의 최저수위에 도달하면
워터펌프가 더이상 동작하지 않도록 하고 수위센서의 상태를 nockanda/wl로 publish하라!
관련라이브러리(pubsubclient)
https://pubsubclient.knolleary.net/
레퍼런스강의(#188)