[아두이노#588] ESP32와 BTS7960를 소형컨베이어밸트에 연결하고 MQTT와 http+websocket으로 제어하기!(녹칸다의 컨베이어밸트)
프로그래밍/BTS7960과컨베이어밸트 2024. 3. 12. 23:04
https://youtube.com/live/IMBA9gEbzfw
[아두이노#588] ESP32와 BTS7960를 소형컨베이어밸트에 연결하고 MQTT와 http+websocket으로 제어하기!(녹칸다의 컨베이어밸트)
시간이 되면 C#도 하려고 했는데 못함
녹칸다의 컨베이어밸트 시리즈이다!
이번편은 알리표 소형 컨베이어밸트를 MQTT와 HTTP로 제어하도록 한다!
(참고자료 ESP8266에서 MQTT활용하기)
https://bota.tistory.com/1417
(참고자료 ESP8266에서 websocket 활용하기)
https://bota.tistory.com/1796
(오늘 하고자 하는 목표)
1.ESP32보드에 컨베이어밸트를 연결하고 MQTT로 제어하겠다!(스마트폰사용)
2.MQTT쪽은 앱스토어에서 MQTT전용앱을 다운로드 받아서 활용함!
3.ESP32보드를 웹서버로 작동시키고 웹브라우저로 제어한다!
4.웹서버 방식으로 제어하기 위해서는 간단한 HTML과 JAVASCRIPT를 구사해야한다!
5.웹서버-웹클라이언트방식은 너무 정적인 UI를 제공하기 때문에 웹소켓(websocket)을 활용하도록 한다!
(MQTT를 사용하기 위한 절차)
1.개발환경상 MQTT 라이브러리를 설치해야한다!(pubsubclient)
2.pubsubclient의 기본예제는 esp8266보드를 기준으로 되어있으나 ESP32와 ESP8266의 코드는 아주 눈꼽만큼의 차이가 있다!
3.MQTT는 템플릿코드를 어떻게 활용하는지에 관심을 가지면 된다!
4.MQTT는 보통 외국에서 공짜로 제공하는 브로커를 사용하기는 하지만 전세계 사람들이 공유해서 사용하는 자원이다보니 때때로 다른 사람이 나의 제어에 관여하게 될 여지가 있다!
5.MQTT클라이언트가 구독(subscribe)을 하기 위해서는 MQTT브로커와 접속이 완전히 완료된 후 하는 것이다! 그리고 연결이 끊어지면 구독등록은 새로해야한다!
6.reconnect함수내에 구독등록하는 절차가 존재한다!
(websocket을 사용하기 위한 절차)
1.websocket 라이브러리를 설치한다!
2.전통적인 방식의 웹서버-웹클라이언트의 관계는 화면을 새로고침하지 않으면 정보의 갱신이 되지 않는다!
3.그리고 서버에서 클라이언트쪽으로 데이터를 능동적으로 전송할 수 있는 방법이 없다!
4.웹소켓서버-웹소켓클라이언트의 관계를 내부적으로 맺으면 그게 가능하다!
5.웹소켓관련 송수신은 자바스크립트가 담당한다!
(예제목차)
1.ESP32보드를 MQTT클라이언트로 작동시키고 스마트폰에서 발행하는 메시지에 의해서 작동되도록 하시오!
-밸트제어 topic : nockanda/belt/run
-속도제어 topic : nockanda/belt/speed
-밸트의작동상태 topic : nockanda/belt/state/run
-밸트의속도설정상태 topic : nockanda/belt/state/speed
2.ESP32보드를 websocket server로 작동시키고 스마트폰의 웹브라우저에서 제어하시오!