반응형

 

 

esp8266wifi 보드끼리MQTT 7편(워터펌프&플로우센서&비접촉수위센서)(wemos d1r1/사물인터넷(iot)시리즈#56/녹칸다/포로리야공대가자)
-이번편의 핵심아이디어는 클라이언트가 스마트폰이 아니라 사물인터넷보드(wemos d1r1)끼리 MQTT메시지를 주고받는 것이다!
-하나의 보드가 publish한 메시지를 단일 혹은 복수개의 보드가 subscribe한다음 정보를 표시하거나 어떤 동작을 하게끔 구현하는 예제이다!
-스마트폰을 MQTT Client로 활용하면 GUI가 모두 훌륭하게 구현되어 있기 때문에 활용하기엔 좋으나, 때때로 보드끼리 데이터를 주고 받을 필요가 있다!
-사물인터넷보드 3개를 준비해서 각각 A, B, C라고 해보자!
-A는 워터펌프와 1602LCD, 버튼(택트스위치) 2개를 달아서 워터펌프를 작동시키거나 멈추는 버튼으로 사용해보자!
-B는 플로우센서(YF-S401)를 달아서 워터펌프가 작동중일때 토출되는 물의양을 측정해서 MQTT로 publish하고 해당정보는 A의 LCD화면에 출력해보자!
-C는 비접촉수위센서(XKC-Y25-V)를 달아서 물통의 물이 최저수위일때 워터펌프의 작동을 멈출 수 있는 메시지를 MQTT로 A에게 전송해보자!
-워터펌프와 플로우센서, 수위센서가 각각 사물인터넷보드에 1개씩 달려서 유기적으로 작동될 수 있는지 확인해보자~~!

 


예제 217-1-1 사물인터넷보드(wemos d1r1)에 워터펌프가 D7에 릴레이로 연결되었다!
 * 그리고 D5에 연결된 버튼을 누르면 펌프가 작동하고 D6에 연결된 버튼을 누르면 펌프가 멈춘다!
 * 1602LCD를 SDA를 D4에 SCL을 D3에 연결한다음 전반적인 작동상태를 점검해보자!

217-1-1.txt
0.00MB


예제 217-1-2 사물인터넷보드(wemos d1r1)에 워터플로우센서를 D3에 달았다!
 인터럽트를 이용해서 토출량을 측정해보자!

217-1-2.txt
0.00MB


예제 217-1-3 사물인터넷보드(wemos d1r1)에 비접촉수위센서(XKC-Y25-V)를 D3에 연결했다!
 물이 충분한지 부족한지 감지해보자!

217-1-3.txt
0.00MB


예제 217-2-1 (펌프용)
 플로우센서와 수위센서가 MQTT로 날리는 메시지를 subscribe해서 LCD화면에 일단 띄워라!
 그리고 워터펌프작동은 원래하던대로 계속 진행하라!
 그리고 수위센서에서 물이 부족하다는 메시지가 전송되면 워터펌프를 멈추도록 하자!

217-2-1.txt
0.00MB


예제 217-2-2 (플로우센서 MQTT코드)
 100ms에 한번씩 nockanda/flow라는 topic으로 MQTT 메시지를 publish하시오!

217-2-2.txt
0.00MB


예제 217-2-3 (수위센서용)
 수위센서의 측정결과를 100ms 주기로 nockanda/level라는 topic으로 MQTT로 publish하시오!
 0을 보내면 물이 부족하다는 의미, 1을 보내면 물이 충분하다는 의미로 메시지를 보내보자!

217-2-3.txt
0.00MB

관련라이브러리(pubsubclient)

https://pubsubclient.knolleary.net/

관련라이브러리(LiquidCrystal_I2C)

https://github.com/johnrickman/LiquidCrystal_I2C

레퍼런스강의(MQTT로 워터펌프&플로우센서&수위센서#194)

https://bota.tistory.com/1434

반응형
Posted by 덕력킹
,