- Google gauge chart
- ESP8266/ESP32를 이용한 온습도(DHT11 센서 사용) 측정 Web server - Google gauge
- ESP8266/ESP32 Module - Google gauge chart - 관련 페이지 보기
- Google gauge chart basic
- Google 차트를 사용하는 가장 일반적인 방법
- 사용할 Google 차트 라이브러리를 로드하고,
- 차트에 표시할 데이터를 나열(List)하고,
- 차트의 사용자 정의 옵션을 설정하고,
- 선택한 ID로 차트 개체를 만든다.
- 그런 다음 웹 페이지에서 해당 ID로 <div>를 만들어 Google 차트를 표시한다.
- Googl의 Gauge chart 예
- Gauge chart(google-gauge-chart-basic.html)를 웹 브라우저에 브라우징 하기
- "google-gauge-chart-basic.html"를 Download 하여 PC에 저장 한다.
- "google-gauge-chart-basic.html"을 더블 클릭하면 Web browser에 위 "웹문서(Googl의 Gauge chart)를 웹 브라우저에 브라우징한 예"와 같이 웹 브라우저에 Googl gauge chart가 브라우징 된다.
- "google-gauge-chart-basic.html" 내의 data, option, setInterval 등을 변경하며 실험한다.
- Google gauge customization
- 옵션 설정으로 Gauge 모양 변경(Customize)하기
- Animation: animation.duration, animation.easing,
- Frame: forceIFrame
- Size: height, width
- Value range: min, max
- Green section: greenColor, greenFrom, greenTo
- Yellow section: yellowColor, yellowFrom, yellowTo
- Red section: redColor, redFrom, redTo
- Tick section: majorTicks, minorTicks
- Chart Style 속성 설정을 이용하여 Gauge 모양 변경(Customize)하기
- Gauge chart(google-gauge-style-customize.html)를 웹 브라우저에 브라우징 하기
- "google-gauge-style-customize.html"를 Download 하여 PC에 저장 한다.
- "google-gauge-style-customize.html"을 더블 클릭하면 Web browser에 Gauge chart가 브라우징 된다.
- "google-gauge-style-customize.html" 내의 style 속성을 변경하며 실험한다.
- 하나의 웹 페이지에 여러개의 차트를 그리기
- 각각의 차트에 별도의 콜백을 사용하여 여러개의 Gauge chart 그리기
- Gauge chart(google-gauge-2-chart-2-callback.html)를 웹 브라우저에 브라우징 하기
- "google-gauge-2-chart-2-callback.html"를 Download 하여 PC에 저장 한다.
- "google-gauge-2-chart-2-callback.html"을 더블 클릭하면 Web browser에 Gauge chart가 브라우징 된다.
- 하나의 콜백을 사용하여 여러개의 Gauge chart 그리기
- Gauge chart(google-gauge-2-chart-1-callback.html)를 웹 브라우저에 브라우징 하기
- "google-gauge-2-chart-1-callback.html"를 Download 하여 PC에 저장 한다.
- "google-gauge-2-chart-1-callback.html"을 더블 클릭하면 Web browser에 Gauge chart가 브라우징 된다.
Google Charts는 웹 사이트에서 데이터를 시각화하는 방법을 제공한다. 단순한 라인 차트에서 복잡한 계층 구조 트리 맵에 이르기까지 차트 갤러리는 즉시 사용할 수있는 다양한 차트(30여종의 차트중 여기서는 측정 결과를 표시할 수 있는 Gauge chart에 대하여 설명함) 유형을 제공한다.
참고자료: Google Charts Guides
Google 차트를 사용하는 가장 일반적인 방법은 차트를 웹 페이지에 삽입하는 자바 스크립트를 사용하는 것이다.
아래 HTML 문서는 Google에서 제공하는 Gauge chart 예이다.
위 웹문서(Googl의 Gauge chart)를 웹 브라우저에 브라우징한 예
이 예에서는 실험 시간을 줄이기 위하여 Web server를 사용하지 않고 PC에 저장된 HTML 문서를 직접 브라우저에 브라우징 한다. ESP Web server를 사용하는 예는 아래에서 설명함.
이 예에서는 Chart의 옵션 설정을 변경하여 Gauge의 모양을 변경(Customize)한다.
옵션 설정 예
Gauge chart에서 설정 가능한 옵션은 아래와 같다.
아래 참고자료를 참고하여 위에 나열한 옵션을 변경하며 실험하여 보기 바람.
참고자료: Visualization: Gauge
아래 HTML 문서는 Style 속성 설정을 이용하여 Gauge의 모양 변경(Customize)하는 예이다.
Style 속성을 이용하여 Gauge 모양을 변경(Customize)한 예
이 예에서는 실험 시간을 줄이기 위하여 Web server를 사용하지 않고 PC에 저장된 HTML 문서를 직접 브라우저에 브라우징 한다.
이 예는 별도의 콜백(2개)을 사용하여 2개의 Gauge chart를 그리는 예이다.
별도의 콜백(2개)을 사용하여 2개의 Gauge chart(온도, 습도)를 그리는 예
이 예에서는 실험 시간을 줄이기 위하여 Web server를 사용하지 않고 PC에 저장된 HTML 문서를 직접 브라우저에 브라우징 한다.
이 예는 하나의 콜백을 사용하여 2개의 Gauge chart를 그리는 예이다.
하나의 콜백을 사용하여 2개의 Gauge chart(온도, 습도)를 그리는 예
이 예에서는 실험 시간을 줄이기 위하여 Web server를 사용하지 않고 PC에 저장된 HTML 문서를 직접 브라우저에 브라우징 한다.
- ESP8266/ESP32과 DHT11 센서를 사용한 온습도 측정
- ESP8266/ESP32를 Web server와 온도/습도 센서(DHT11/DHT22) 제어에 사용한다.
- 온도/습도 센서(DHT11/DHT22) 모듈은 측정한 온도/습도 값을 Single-Wire 통신 프로토콜로 ESP8266/ESP32에 전송한다.
- AJAX를 이용하여 Web 페이지에서 필요한 측정 결과만 Update 한다.
- 측정 결과는 Web 페이지의 Google gauge에 출력(표시)된다.
- 온도/습도 센서(DHT11/DHT22) 측정 결과를 Web Page(Google gauge)에 출력하는 예
- 참고 자료
- 온도/습도 측정 결과를 Web Page(Google gauge)에 출력하는 프로그램 예
- Web Browser에 출력되는 Web page(HTML): index.h
- ESP8266/ESP32 Web Server 프로그램: web_AJAX_DHT11_google_gauge.ino
- 실험을 위한 준비
- ESP8266/ESP32 개발보드와 센서 모듈 연결
- ESP8266/ESP32 개발보드 Data input pin(GPIO14) <-> 센서의 data pin
- Data input line Pull up 저항(1K - 10K): DHT11/DHT22 모듈에 Pull up 저항이 내장된 경우 생략하여도됨.
- ESP8266/ESP32 개발보드 VDD(3.3V or 5V} <-> 센서 Vcc pin.
- ESP8266/ESP32 개발보드 GND <-> 센서 GND
- 실험 방법
- Text 편집기에서 새 파일을 만들고 위 index.h 파일을 복사하여 Arduino IDE 프로그램(web_AJAX_DHT11_google_gauge.ino)과 동일한 폴더에 index.h 이름으로 저장한다.
- Arduino IDE를 실행하고 "파일 -> 새 파일"을 클릭한다.
- 윗 web_AJAX_DHT11_google_gauge.ino 프로그램을 프로그램 편집 창에 복사한다.
- 무선 공유기의 ssid(STA_SSID), password(STA_PASSWORD)를 자신의 공유기 환경에 맞게 편집한다.
- 사용하는 보드에 따라 Library(WiFi.h, WebServer.h or ESP8266WiFi.h, ESP8266WebServer.h) 설정을 편집한다.
- 사용하는 보드에 따라 "WebServer server(80); or ESP8266WebServer server(80);" 설정을 편집하고 저장한다.
- "툴 -> 보드: "보오드 이름" 에서 보드를 선택("NodeMCU-32S인 경우에는 "NodeMCU-32S" , ESP8266 NodeMCU인 경우에는 "NodeMCU 1.0(ESP-12E Module)) 한다.
- "툴 -> 포트: "에서 COM Port(제어판에서 ESP에 연결된 Port 번호를 확인)를 선택 한다.
- "스케치 -> 확인/컴파일"을 클릭하여 프로그램이 정상으로 컴파일되는지 확인한다.
- "툴 -> 시리얼 모니터"를 실행하여 시리얼 모니터 창을 Open 한다.
- "업 로드"를 실행 한다. 컴파일이 완료되고 Arduino IDE와 개발 보드 사이에 연결이 시작되면 FLASH Switch를 약 2초 동안 누른다.
- 실험
- 업로드가 완료되면 프로그램이 자동으로 실행되고 시리얼 모니터 창에 아래 예와 같이 WiFi 연결 메세지와 IP address가 아래 예와 같이 출력된다.
- 시리얼 모니터 창에서 IP Address(예: 192.168.0.21)를 확인한다. 자신의 WiFI Router(공유기)에 관리자로 접속하여 "고급설정 -> 네트워크 관리 -> 내부 네트워크 설정"에서 사용중인 IP 주소 정보 창에서 확인 하여도 된다.
- PC(또는 휴대폰)의 웹 부라우저에서 ESP Web server에 연결(위 예에서 '192.168.0.21'이 ESP Web server의 IP Address 임)하면 윗 예와 같이 온도 측정 결과가 표시된다.
- 외부(WiFI Router 외부)에서 접속하고자 하는 경우에는 자신의 WiFI Router에서 포트포워드 설정(ip-TIME 과 같이 공유기를 제공하는 회사 자료에서 공유기 포트포워드 설정을 참고 바람)을 하여야 한다.
- 실험: 프로그램이 실행되면 2초 간격으로 측정된 온도와 습도 값이 출력된다. 센서에 손가락을 대고 있으면 습도가 변동한다. 유사한 방법으로 온도를 변동 시키며 측정 결과와 비교한다.
Web 환경에서 ESP 모듈을 이용한 온도 측정(DHT11/DHT22) 구성도
Web Browser에 출력되는 Web page(HTML 문서)를 아래와 같이 별도로 작성하여 Arduino IDE 프로그램(web_AJAX_DHT11_google_gauge.ino)과 동일한 폴더에 index.h 이름으로 저장한다.
Web Browser에서 ESP 웹 서버에 접속하면 이 문서가 Web Browser에 전송되어 출력된다.
위 프로그램의 실행 결과 예
주: 센서에 따라 전원 전압은 5V 또는 3.3V 일 수 있으니 확인 바람.
주: ESP8266 NodeMCU 개발보드를 사용하는 경우에는 FLASH Switch와 RST Switch를 누르지 않아도 자동으로 업 로드 된다.
IP address: 192.168.0.21
주: 개발이 완료되면 handleDHT()에서 온도와 습도를 시리얼 모니터에 출력하는 코드를 Comment 처리한다.