이 블로그는 Web 환경을 이용한 원격 제어 기술에 필요한 지식을 공유 하기 위한 블로그 입니다.
실제 개발과 프로그램 예를 위하여 WiFi Module과 Raspberry Pi, Raspberry Pi Pico, ATmega128 보드, Arduino Mega 보드(ATmega2560)를 사용 합니다.

google-gauge-chart

ESP8266/ESP32(Google gauge) - MicroPython
ESP8266/ESP32 Module - Google gauge chart


  • Google gauge chart
    • Google gauge chart basic
      • Google Charts는 웹 사이트에서 데이터를 시각화하는 방법을 제공한다. 단순한 라인 차트에서 복잡한 계층 구조 트리 맵에 이르기까지 차트 갤러리는 즉시 사용할 수있는 다양한 차트(30여종의 차트중 여기서는 측정 결과를 표시할 수 있는 Gauge chart에 대하여 설명함) 유형을 제공한다.

        참고자료: Google Charts Guides

      • Google 차트를 사용하는 가장 일반적인 방법
        • Google 차트를 사용하는 가장 일반적인 방법은 차트를 웹 페이지에 삽입하는 자바 스크립트를 사용하는 것이다.

        • 사용할 Google 차트 라이브러리를 로드하고,
        • 차트에 표시할 데이터를 나열(List)하고,
        • 차트의 사용자 정의 옵션을 설정하고,
        • 선택한 ID로 차트 개체를 만든다.
        • 그런 다음 웹 페이지에서 해당 ID로 <div>를 만들어 Google 차트를 표시한다.
      • Googl의 Gauge chart 예
        • 아래 HTML 문서는 Google에서 제공하는 Gauge chart 예이다.



          위 웹문서(Googl의 Gauge chart)를 웹 브라우저에 브라우징한 예

        • Gauge chart(google-gauge-chart-basic.html)를 웹 브라우저에 브라우징 하기
          • 이 예에서는 실험 시간을 줄이기 위하여 Web server를 사용하지 않고 PC에 저장된 HTML 문서를 직접 브라우저에 브라우징 한다. ESP Web server를 사용하는 예는 아래에서 설명함.

          • "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
      • 이 예에서는 Chart의 옵션 설정을 변경하여 Gauge의 모양을 변경(Customize)한다.

      • 옵션 설정으로 Gauge 모양 변경(Customize)하기
        • 옵션 설정 예

          Gauge chart에서 설정 가능한 옵션은 아래와 같다.

        • 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
        • 아래 참고자료를 참고하여 위에 나열한 옵션을 변경하며 실험하여 보기 바람.

          참고자료: Visualization: Gauge

      • Chart Style 속성 설정을 이용하여 Gauge 모양 변경(Customize)하기
        • 아래 HTML 문서는 Style 속성 설정을 이용하여 Gauge의 모양 변경(Customize)하는 예이다.


          Style 속성을 이용하여 Gauge 모양을 변경(Customize)한 예

        • Gauge chart(google-gauge-style-customize.html)를 웹 브라우저에 브라우징 하기
          • 이 예에서는 실험 시간을 줄이기 위하여 Web server를 사용하지 않고 PC에 저장된 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 그리기
        • 이 예는 별도의 콜백(2개)을 사용하여 2개의 Gauge chart를 그리는 예이다.

          별도의 콜백(2개)을 사용하여 2개의 Gauge chart(온도, 습도)를 그리는 예

        • Gauge chart(google-gauge-2-chart-2-callback.html)를 웹 브라우저에 브라우징 하기
          • 이 예에서는 실험 시간을 줄이기 위하여 Web server를 사용하지 않고 PC에 저장된 HTML 문서를 직접 브라우저에 브라우징 한다.

          • "google-gauge-2-chart-2-callback.html"를 Download 하여 PC에 저장 한다.
          • "google-gauge-2-chart-2-callback.html"을 더블 클릭하면 Web browser에 Gauge chart가 브라우징 된다.
      • 하나의 콜백을 사용하여 여러개의 Gauge chart 그리기
        • 이 예는 하나의 콜백을 사용하여 2개의 Gauge chart를 그리는 예이다.

          하나의 콜백을 사용하여 2개의 Gauge chart(온도, 습도)를 그리는 예

        • Gauge chart(google-gauge-2-chart-1-callback.html)를 웹 브라우저에 브라우징 하기
          • 이 예에서는 실험 시간을 줄이기 위하여 Web server를 사용하지 않고 PC에 저장된 HTML 문서를 직접 브라우저에 브라우징 한다.

          • "google-gauge-2-chart-1-callback.html"를 Download 하여 PC에 저장 한다.
          • "google-gauge-2-chart-1-callback.html"을 더블 클릭하면 Web browser에 Gauge chart가 브라우징 된다.

  • ESP8266/ESP32를 이용한 온습도(DHT11 센서 사용) 측정 Web server - Google gauge
    • ESP8266/ESP32과 DHT11 센서를 사용한 온습도 측정
      • Web 환경에서 ESP 모듈을 이용한 온도 측정(DHT11/DHT22) 구성도

      • 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)에 출력하는 프로그램 예:
      • 위 프로그램의 실행 결과 예

      • 실험을 위한 준비
        • "python_web_AJAX_DHT11_google_gauge.py"를 Download 하여 PC에 저장 한다.
        • ESP32 개발보드와 센서 모듈 연결
          • ESP32 개발보드 Data input pin(GPIO14) <-> 센서의 data pin
          • Data input line Pull up 저항(1K - 10K): DHT11/DHT22 모듈에 Pull up 저항이 내장된 경우 생략하여도됨.
          • ESP32 개발보드 VDD(3.3V} <-> 센서 Vcc pin
          • ESP32 개발보드 GND <-> 센서 GND
      • 실험 방법
        • Thonny IDE를 실행하고 Thonny IDE의 사용 환경(Thonny 실행에 사용할 장치와 COM Port 선택)이 바르게 되어 있는지 확인한다.
        • Thonny IDE의 Python shell 창에 prompt( >>> )가 출력되었는 확인한다.
        • Thonny IDE의 "파일 -> 열기"를 실행하여 프로그램 파일(python_web_AJAX_DHT11_google_gauge.py)을 Open 한다.
        • Thonny IDE의 Scripts 편집 창 프로그램에서 본인의 무선 공유기 연결을 위한 네트워크 자격 증명(ssid와 password)를 설정하고 "이 컴퓨터"에 저장한다.
        • 실험
          • "실행 -> 현재 스크립트 실행"을 실행하거나 Toolbar의 "실행" Icon을 클릭하면 스크립트가 개발보드에 전송되고 프로그램이 실행된다.
          • 프로그램이 실행되면 Thonny IDE의 Python shell 창에 아래 예와 같이 네트워크 연결에 성공하였음을 알리는 메세지와 Network interface parameters가 출력(약간의 시간 지연이 있음)된다.
          • Connection successful

            ('192.168.0.30', '255.255.255.0', '192.168.0.1', '210.220.163.82')

          • 웹 부라우저에서 ESP Web server에 연결(위 예에서 '192.168.0.30'이 ESP Web server의 IP Address 임)하면 윗 예와 같이 온도 측정 결과가 표시된다.
          • 외부(WiFI Router 외부)에서 접속하고자 하는 경우에는 자신의 WiFI Router에서 포트포워드 설정(ip-TIME 과 같이 공유기를 제공하는 회사 자료에서 공유기 포트포워드 설정을 참고 바람)을 하여야 한다.
          • 실험: 프로그램이 실행되면 2초 간격으로 측정된 온도와 습도 값이 출력된다. 센서에 손가락을 대고 있으면 습도가 변동한다. 유사한 방법으로 온도를 변동 시키며 측정 결과와 비교한다.

  • ESP8266/ESP32 Module - Google gauge chart - 관련 페이지 보기