🔥[FA-DUINO#20] 산업용 아두이노(arduino)를 ESP8266보드로 모드버스(modbus) 제어해보기!(websocket/웹소켓)
프로그래밍/산업용아두이노(fa-duino) 2022. 12. 22. 23:01🔥[FA-DUINO#20] 산업용 아두이노(arduino)를 ESP8266보드로 모드버스(modbus) 제어해보기!(websocket/웹소켓)
녹칸다의 산업용 아두이노(FA-DUINO) 시리즈이다!
산업용 아두이노를 이용한 코딩과 실제 산업현장에서 사용할 수 있는 제품들을 활용하도록 한다!
산업용 아두이노는 아두이노 메가보드로 만들어져 있어서 녹칸다 입장에서는 아두이노와 동일하다!
그러나 산업용 아두이노에 연결되는 것들은 아두이노의 것이라고 볼 수 없다!
그러므로 기존 아두이노와는 별개로 산업 제품을 연결하고 활용하는 것도 주요 주제라고 할 수 있다!
산업제품을 실제로 활용은 하되 전문가에 가깝게 하지는 않고 시연을 위한 도구 정도로 한정한다!
(녹칸다는 전기 패널에 대해서 전혀 알지 못함)
아두이노만 다루었던 사람은 산업제품의 배선이나 연결방법을 모르고,
산업제품을 다뤘던 사람은 PLC와 제조사에서 제공하는 프로그램만 다루어서 아두이노를 알지 못한다!
즉 녹칸다는 둘 사이를 연결하는 역할을 담당하게 된다!
아두이노는 C와 C++언어를 기반으로 하는데 생각보다 학습해야하는 양이 많다!
이번 산업용 아두이노 시리즈에서는 C와 C++언어에 대해서 잘 알고 있다고 가정한다!
(아두이노에서 사용하는 C와 C++언어에 대한 지원을 위해서 녹칸다의 아두이노 병법서 시리즈가 있으니 모르는 분들은 그것을 참고)
녹칸다의 산업용 아두이노는 구글 슬라이드에 결과물을 저장함!(모든 사람에게 공유되어있음!)
https://docs.google.com/presentation/d/19UuuJpKdFTj_RVp3qCrfGlKRo_kFRgEBzKX3Za8-u50/edit#slide=id.p
이번편은 산업용 아두이노를 제어하기 위한 웹 UI를 구현해보도록 한다!
산업용 아두이노는 인터넷에 연결하는 기능이 없기 때문에 무엇이든간에 연결을 해주어야 가능하다!
인터넷 연결이 가능한 ESP8266보드(wemos d1r1)를 산업용 아두이노와 RS232로 연결한다!
그리고 산업용 아두이노를 모드버스 슬레이브로 작동시키고 IoT보드를 마스터로 작동시킨다!
이때 산업용 아두이노에 들어가는 코드는 제조사에서 제공하는 코드이고 마스터 코드는 직전편에 구현이 끝난 코드이다!)
IoT보드가 산업용 아두이노를 modbus rtu로 작동 가능함을 먼저 확인한다!
그리고 IoT보드를 웹소켓(websocket)서버(server)로 작동시킨다!
웹서버(webserver)를 작동시키기 위한 UI를 html과 javascript로 만들고 유저의 입력을 받는다!
IoT보드가 유저의 입력을 받으면 산업용 아두이노를 모드버스로 제어하는 방식이다!
이때 웹서버에 접속가능한 웹클라이언트는 스마트폰의 웹브라우저이다!(크롬이나 삼성인터넷)
스마트폰의 웹브라우저에서 IoT보드의 주소를 입력하면 웹서버에 접속하게 된는 것이다!
그리고 웹서버를 통해서 산업용 아두이노를 간접제어 하게 된다!
그러므로 스마트폰으로 산업용 아두이노를 제어했다고 말할 수 있다!
아두이노 코드와 모드버스 관련지식, 웹프로그래밍 지식까지 동원되므로 상당한 종합예술이라고 볼 수 있다!
(접근순서)
1.IoT보드에 MAX3232를 이용해서 산업용 아두이노를 모드버스 RTU로 제어가능하다!
2.IoT보드에 웹서버를 작동시켰을때 스마트폰과 PC의 웹브라우저에서 접속가능하다!
3.웹UI에서 유저입력이 발생했을때 모드버스 RTU를 이용해서 산업용 아두이노를 제어할 수 있다!
4.산업용 아두이노의 모든 출력핀을 웹 UI로 제어할 수 있다!
5.현재 출력핀의 상태가 HIGH인지 LOW인지를 웹 UI로 확인할 수 있다!
6.산업용 아두이노의 모든 입력핀의 상태를 웹 UI로 확인할 수 있다!
7.산업용 아두이노에 연결된 가상의 센서값을 읽어와서 웹 UI에 출력할 수 있다!(랜덤한 온도와 습도값으로 가정함)
8.이 모든 것을 이용해서 화면을 나름대로 이쁘게 꾸며보기!