산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

TFT 그래프:실시간 기록 그래프

구성품 및 소모품

Arduino Mega 2560
× 1
DHT11 온도 및 습도 센서(4핀)
× 1
Elegoo 2.8인치 TFT LCD 실드
× 1
점퍼 와이어(일반)
× 1
브레드보드(일반)
× 1

앱 및 온라인 서비스

Arduino 웹 편집기

이 프로젝트 정보

개요

TFT LCD에 전문적으로 데이터를 그래프로 표시하고 싶었던 적이 있습니까? 하지만 문제가 있습니다. 모든 계산이 포함되기 때문에 그래프를 만드는 것이 특히 어렵습니다.

이 프로젝트는 어깨에서 모든 스트레스를 덜어주고 단 몇 초 만에 원하는 모든 것을 그래프로 표시하여 자신만의 개인화된 기록 그래프를 만들 수 있도록 하는 것을 목표로 합니다. 5개의 변수를 수정하기만 하면 됩니다.

동영상

이미지

기능

이 프로젝트는 모든 사람이 그래프를 쉽고 재미있게 만드는 것을 목표로 하고 모든 어려운 계산이 완료되었으며 사용자는 2개의 변수를 편집하고 그래프의 색상을 선택하기만 하면 됩니다. 다음은 그래프의 다양성을 보여주는 몇 가지 예입니다.

그래프는 6초 간격으로 온도를 표시하고 값은 점으로 표시되며 점은 선으로 다른 점에 연결됩니다. 코드 시작 이후 경과된 초는 x축에 표시되고 값의 범위는 y축에 표시됩니다.

프로젝트는 간단하게 작동합니다. Arduino Mega는 DHT 11 센서의 값을 읽고 온도를 변수에 저장한 다음 사용자 정의 그래프에 값을 그래프로 표시합니다. 다음은 기능 개요를 보여주는 다이어그램입니다.

다음은 프로젝트의 코드 개요를 보여주는 이미지입니다.

<울>
  • 온도 읽기 센서에서 온도를 읽습니다.
  • <울>
  • 데이터 처리 센서 판독값을 처리하고 그래프에 매핑합니다.
  • <울>
  • 그래프 데이터 매핑된 값을 그래프에 표시합니다.
  • 이 프로젝트를 진행하기 위해 알아야 할 것은 TFT LCD에서 사물이 어떻게 배치되는지에 대한 폭넓은 이해입니다. 이에 대한 설명은 아래에 있습니다.

    저는 전체 LCD를 캔버스라고 부릅니다. 여기에서 모든 것이 그려지고 모든 TFT LCD 라이브러리가 매우 유사하게 작동하므로 이 코드의 기능은 다른 라이브러리에서도 작동해야 합니다. 아래는 TFT LCD에 그려지는 사각형(사각형)의 스케치입니다.

    이 스케치에서는 직사각형이 그려지고 각 점에 레이블이 지정되며 직사각형을 그리는 데 사용되는 코드 행은 다음과 같습니다.

    tft.fillRect(originX, originY, sizeX, sizeY, Color); 
    <울>
  • originX 위 그림에서 'z'로 표시한 부분은 화면 오른쪽에서 도형까지의 거리입니다.
  • <울>
  • 원산지 스케치에서 'x'로 표시되며 화면 상단에서 모양까지의 거리입니다.
  • <울>
  • 크기X x축의 모양 크기이며 모양의 길이입니다.
  • <울>
  • 크기Y 는 y축의 모양 크기이며 모양의 높이입니다.
  • 혜택

    사용자 운영 프로젝트 이점 위치:

    <울>
  • TFT LCD의 그래프 센서 데이터
  • <울>
  • 몇 초 만에 완료
  • 프로젝트 구성

    단계 1: 필수 장치

    이 프로젝트는 DHT 11 온도 및 습도 센서를 사용하여 온도 데이터를 수신하지만 모든 센서를 사용할 수 있습니다. 센서 변경은 아래에서 더 설명하겠습니다.

    <울>
  • 1, Arduino 메가
  • <울>
  • 1, Elegoo 2.8' TFT LCD
  • <울>
  • 1, DHT 11 센서
  • <울>
  • 1, 브레드보드
  • <울>
  • 점퍼 와이어
  • 단계 2: 연결 회로

    다음은 프로젝트의 개략도입니다. DHT 11 센서를 Arduino Mega에 연결하기만 하면 됩니다.

    3단계:코드 승인

    코드에는 3가지 주요 부분이 있습니다.

    <울>
  • 그래프 설정
  • <울>
  • 온도 판독
  • <울>
  • 그래프 그리기
  • 이 섹션은 아래에 설명되어 있습니다.

    <울>
  • 그래프 설정
  • // 제목 그리기 tft.setCursor(10, 10); // 커서 설정 tft.setTextColor(BLUE); // 텍스트의 색상을 설정합니다. tft.setTextSize(4); // 텍스트 크기 설정 tft.println(graphName); // 외곽선 그리기 tft.drawLine(originX, originY, (originX + sizeX), originY, graphColor); tft.drawLine(originX, originY, originX, (originY - sizeY), graphColor); // 레이블 그리기 for(int i =0; i  

    코드의 이 부분은 그래프의 윤곽을 그리고 x 및 y축 선을 그리고 마크도 그리고 y축에 값으로 레이블을 지정합니다.

    <울>
  • 읽기 온도
  • chk =DHT.read11(22); 온도 =(DHT.온도); 

    이 짧은 코드 줄은 DHT 11 센서에서 온도를 읽은 다음 변수에 저장합니다.

    <울>
  • 그리기 그래프
  • if(blockPos <8) { // 시간 출력 tft.setCursor((mark[valuePos] - 5), (originY + 16)); tft.setTextColor(그래프 색상, 흰색); tft.setTextSize(1); tft.println(시간 블록[값 위치]); // 값 매핑 locationBlock[valuePos] =map(temp, 0, graphRange, originY, (originY - sizeY)); // 점 그리기 tft.fillRect((mark[valuePos] - 1), (locationBlock[valuePos] - 1), markSize, markSize, pointColor); // 이전 지점에 연결 시도 if(valuePos !=0) { tft.drawLine(mark[valuePos], locationBlock[valuePos], mark[(valuePos - 1)], locationBlock[(valuePos - 1)], lineColor); } 블록포스++; } else { // 그래프의 캔버스 지우기 tft.fillRect((originX + 2), (originY - sizeY), sizeX, sizeY, WHITE); // 값 매핑 - 현재 포인트 locationBlock[valuePos] =map(temp, 0, graphRange, originY, (originY - sizeY)); // 점 그리기 - 현재 점 tft.fillRect((mark[7]), (locationBlock[valuePos] - 1), markSize, markSize, pointColor); // 모든 점 그리기 for(int i =0; i <8; i++) { tft.fillRect((mark[(blockPos - (i + 1))] - 1), (locationBlock[(valuePos - i)] - 1), markSize, markSize, pointColor); } // 모든 선을 그립니다. for(int i =0; i <7; i++) { tft.drawLine(mark[blockPos - (i + 1)], locationBlock[valuePos - i], mark[blockPos - (i + 2)], locationBlock[valuePos - (i + 1)], lineColor); } // 시간 레이블 변경 for(int i =0; i <=8; i++) { tft.setCursor((mark[(blockPos - i)] - 5), (originY + 16)); tft.setTextColor(그래프 색상, 흰색); tft.setTextSize(1); tft.println(timeBlock[valuePos - i]); } } 값포스++; 

    코드의 이 긴 부분은 해당 값에서 그래프의 점을 그린 다음 선을 통해 연결합니다. 코드는 그래프의 캔버스가 채워져 있는지 확인하고 채워지면 그래프의 첫 번째 값을 배출하기 시작합니다. 새 값을 삽입할 공간을 허용하도록 나머지를 위로 이동합니다. 아직 공간이 남아 있는 경우 장치는 간격을 두고 값을 계속 추가합니다.

    그래프 맞춤설정

    이 그래프의 재미있는 점은 100% 편집이 가능하여 사용자가 그래프의 크기, 위치 및 색상을 편집할 수 있으며 유연성 덕분에 그래프에 모든 데이터를 표시할 수도 있다는 것입니다. 주의해야 하는 모든 변수가 있습니다.

    bool proDebug =0; uint16_t 그래프 색상 =파란색; uint16_t pointColor =검은색; uint16_t lineColor =녹색; 문자열 graphName ="시간 그래프"; 정수 그래프 범위 =50; 정수 표시 크기 =3; 
    <울>
  • 프로디버그 는 프로젝트에 내장된 디버깅 유틸리티이며 기본값으로 0으로 설정되어 있으며 1/true로 설정하면 현재 온도를 직렬 모니터에 인쇄합니다. 이것은 디버깅 유틸리티입니다. 활성화된 경우 직렬 모니터는 코드를 실행하려면 열려 있어야 합니다.
  • <울>
  • 그래프 색상 그래프의 색상을 설정하고 x 및 y 선과 해당 레이블이 이 색상으로 설정됩니다.
  • <울>
  • pointColor 그래프에서 값을 나타내는 점의 색상을 나타냅니다.
  • <울>
  • lineColor 그래프의 점을 연결하는 선의 색상을 선택한 색상으로 설정합니다.
  • <울>
  • 그래프 범위 그래프의 중추입니다. 올바르게 설정하는 것이 정말 중요합니다. 그래프로 표시할 수 있는 최대 값을 나타냅니다. 온도 센서를 사용하고 있습니다. 값이 50ºC를 초과할 것으로 예상하지 않으므로 설정합니다. 값을 50으로 설정하고 원시 아날로그 입력을 그래프로 표시하려면 graphRange를 아날로그 핀이 표시할 수 있는 최대값인 1024로 설정할 수 있습니다.
  • <울>
  • markSize 그래프에서 센서 값을 표시하는 점의 크기를 나타내며 값은 정사각형의 길이를 나타냅니다.
  • 그리고 그게 전부입니다. 걱정해야 할 전부입니다. 나머지 변수는 Arduino에 의해 자동으로 계산됩니다.

    변경 가치

    방의 온도를 그래프로 표시하는 것도 좋지만 그래프에 센서 데이터를 표시할 수 있다면 더욱 좋습니다. 몇 줄의 코드를 편집하여 토양 수분에서 빛까지 모든 데이터를 그래프로 나타낼 수 있습니다. 강함. 다음은 이를 수행하는 방법입니다.

    가는 중

    프로젝트를 더 실험하고, originX, originY, sizeX 및 sizeY 상수를 편집하여 그래프에 다른 크기와 화면 위치를 제공할 수 있습니다. 메인 스케치에 헤더 파일이 첨부되어 있으며, 일부 색상의 색상 코드가 포함되어 있습니다. 차트와 막대의 색상을 변경해 보십시오. 이제 맞춤 그래프가 준비되었습니다.

    라이브러리

    <울>
  • Elegoo 라이브러리 - Copyright (c) 2012 Adafruit Industries under the BSD License.
  • <울>
  • DHT - 저자 Rob Tillaart 이 라이브러리는 공개 도메인입니다.
  • 배경

    최근에 막대 차트에 1, 2, 3 또는 4 값을 그래프로 표시하는 프로젝트를 게시했습니다. 그래프 작성을 위한 다른 템플릿을 게시하기로 결정했습니다. 혼란을 줄 정도로 선이 곳곳에 없는 막대 차트용 템플릿은 없습니다. 그래서 저는 다시 계산을 하고 모든 사람이 자신의 데이터를 기록 그래프에 실시간으로 그래프로 표시할 수 있는 간단한 프로젝트를 게시하기로 결정했습니다.

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    TFTH역사 그래프
    전체 강령

    회로도

    schemas_g5pey3GWqv.fzz

    제조공정

    1. ILI9341 TFT 터치스크린 디스플레이 실드의 비트맵 애니메이션
    2. Arduino 스파이봇
    3. FlickMote
    4. 수제 TV B-Gone
    5. 마스터 시계
    6. 나를 찾기
    7. Arduino Power
    8. Tech-TicTacToe
    9. Arduino UNO로 LCD TFT 화면에 이미지 표시하기!
    10. Arduino Quadruped