[아두이노#413] (Websocket#9) 화분 1개를 관리하는 학습용 스마트팜을 스마트폰 웹브라우저에서 제어해보기!(녹칸다/포로리야공대가자)
프로그래밍/ESP8266 & Websocket 2022. 1. 10. 23:29
(Websocket#9) 화분 1개를 관리하는 학습용 스마트팜을 스마트폰 웹브라우저에서 제어해보기!
녹칸다의 웹소켓(websocket)을 이용해서 ESP8266을 웹서버로 구동시키는 시리즈이다!
기존 ESP8266으로 구현할 수 있는 웹서버를 동적으로 구현할 수 있는 예제이다!
웹서버와 웹클라이언트 방식에서 클라이언트가 서버에게 요청한다음 응답을 받는 구조를 가진다!
그러나 서버가 주도적으로 클라이언트에게 데이터를 전송할 수 없다!
웹소켓을 이용한 웹서버는 기존 웹서버와 동일한 방식으로 동작하나 클라이언트가 받게될 응답데이터에 자바스크립트로 구현된 웹소켓 코드가 내장되어있다!
웹서버는 내부적으로 별도의 포트를 이용해서 클라이언트에 설치된 웹소켓과 소켓통신을 함으로써 양방향 통신이 가능해진다!
(웹서버와 웹소켓 2개의 통신이 동시에 이루어진다)
이번편에서는 학생들이 주로 선호하는 학습용 스마트팜을 주제로 ESP8266의 웹소켓예제와 연계해보도록 한다!
과거 녹칸다가 아두이노 우노 보드 1대로 구현해둔 스마트팜예제를 ESP8266보드로 데이터를 넘겨받아서 생육모니터링과 급수를 할 수 있도록 해보자!
식물의 관리를 위한 센서는 토양온도, 토양습도, 광센서가 있고 환경을 모니터링하기 위해서 온습도센서(DHT-11)와 이산화탄소센서(MH-Z19B)가 활용된다!
물을 공급하기 위해서 워터펌프를 사용하고 급수량을 측정하기위해서 유량센서가 사용된다!
마지막으로 물탱크의 수위를 측정하기 위해서 비접촉 수위센서(XKC-Y25-V)가 활용될 예정이다!
웹소켓을 이용해서 스마트폰의 웹브라우저 화면에 측정값을 모두 출력하고 펌프를 제어할 수 있는 인터페이스를 만들어야한다!
(웹브라우저에서 보여져야할 화면 만들기)
(아두이노 우노용 코드)
(ESP8266보드 테스트용)
(최종 웹소켓 서버 예제)
레퍼런스코드(#306)
https://bota.tistory.com/1667
관련라이브러리(DHT11/1.3.8)
https://github.com/adafruit/DHT-sensor-library
관련라이브러리(MHZ19B/1.1.1)
https://github.com/strange-v/MHZ19
관련라이브러리(ds1820/3.9.0)
github.com/milesburton/Arduino-Temperature-Control-Library
www.pjrc.com/teensy/td_libs_OneWire.html