119 lines
4.0 KiB
C++
119 lines
4.0 KiB
C++
#include <TFT_eSPI.h>
|
|
#include <Wire.h>
|
|
#include <Seeed_Arduino_FreeRTOS.h>
|
|
#include "disk91_LoRaE5.h"
|
|
#include "LIS3DHTR.h"
|
|
#include "Seeed_Arduino_GroveAI.h"
|
|
#include "seeed_line_chart.h"
|
|
#include <math.h>
|
|
#include "Free_Fonts.h"
|
|
|
|
TFT_eSPI tft = TFT_eSPI();
|
|
#define DATA_MAX_SIZE 30 // maximum size of data
|
|
#define MAX_SIZE 30 // maximum size of data
|
|
doubles data; // Initilising a doubles type to store data
|
|
TFT_eSprite spr = TFT_eSprite(&tft); // Sprite
|
|
LIS3DHTR<TwoWire> lis;
|
|
#define SCREEN_WIDTH 320 // Wio Terminal Maximum Width
|
|
#define SCREEN_HIGH 240 // Wio Terminal Maximum Height
|
|
#define PIXEL 4 // Width of one letter
|
|
|
|
// 显示尺寸设置
|
|
#define SCREEN_WIDTH 320
|
|
#define SCREEN_HIGH 240
|
|
#define SCREEN_PADDING 0
|
|
#define PIXEL 4
|
|
const static unsigned int FONT_SIZE = 2; // rate
|
|
const static unsigned int FONT_ROW_HEIGHT = 22; // px
|
|
const static unsigned int FONT_LEFT_START = 0; // px
|
|
const static unsigned int FONT_COLOR = TFT_WHITE;
|
|
const static unsigned int FONT_BG_COLOR = TFT_RED;
|
|
const static unsigned int BACKGROUD = TFT_BLACK;
|
|
|
|
void DISPLAY_INIT() // Display initialization, black background rotation
|
|
{
|
|
tft.begin();
|
|
tft.setRotation(3);
|
|
tft.fillScreen(TFT_BLACK);
|
|
}
|
|
|
|
void Sense_Display() // Sense interface display
|
|
{
|
|
|
|
// spr.createSprite(SCREEN_WIDTH, SCREEN_HIGH);
|
|
|
|
tft.setFreeFont(FSSB9);
|
|
tft.setTextColor(TFT_BLACK, TFT_WHITE);
|
|
|
|
tft.fillRect(4 * PIXEL, 0, 21 * PIXEL, FONT_ROW_HEIGHT + 15, TFT_WHITE);
|
|
tft.drawString("Sense", 32, 11, GFXFF);
|
|
|
|
tft.fillRect(30 * PIXEL, 0, 21 * PIXEL, FONT_ROW_HEIGHT + 15, tft.color565(135, 206, 235));
|
|
tft.setTextColor(TFT_BLACK, tft.color565(135, 206, 235));
|
|
tft.drawString("Process", 127, 11, GFXFF);
|
|
|
|
tft.setTextColor(TFT_BLACK, TFT_WHITE);
|
|
tft.fillRect(56 * PIXEL, 0, 21 * PIXEL, FONT_ROW_HEIGHT + 15, TFT_WHITE);
|
|
tft.drawString("Network", 231, 11, GFXFF);
|
|
|
|
tft.drawLine(0, 2 * FONT_ROW_HEIGHT, SCREEN_WIDTH, 2 * FONT_ROW_HEIGHT, TFT_WHITE);
|
|
|
|
tft.setFreeFont(FSS9);
|
|
tft.setTextColor(TFT_BLACK, tft.color565(220, 220, 220));
|
|
tft.fillRect(127, 53.5, 16 * PIXEL, FONT_ROW_HEIGHT, tft.color565(220, 220, 220));
|
|
tft.drawString("Sensor", 130, 56, GFXFF);
|
|
}
|
|
|
|
void setup()
|
|
{
|
|
pinMode(A0, INPUT);
|
|
tft.begin();
|
|
tft.setRotation(3);
|
|
tft.fillScreen(TFT_BLACK);
|
|
// DISPLAY_INIT();
|
|
}
|
|
|
|
int brightness;
|
|
void loop()
|
|
{
|
|
// brightness = analogRead(A0);
|
|
|
|
Sense_Display();
|
|
tft.fillRect(18, 78, 24, 110, TFT_WHITE);
|
|
|
|
brightness = analogRead(WIO_MIC);
|
|
|
|
if (data.size() > DATA_MAX_SIZE) // keep the old line chart front
|
|
{
|
|
data.pop(); // this is used to remove the first read variable
|
|
}
|
|
|
|
data.push(brightness); // read variables and store in data
|
|
|
|
// Settings for the line graph
|
|
auto content = line_chart(20, 80); //(x,y) where the line graph begins
|
|
content
|
|
// .height(tft.height() - header.height() * 1.5 - 50) // actual height of the line chart
|
|
// .width(tft.width() - content.x() * 2) // actual width of the line chart
|
|
.height(120)
|
|
.width(260)
|
|
.based_on(0.0) // Starting point of y-axis, must be a float
|
|
.show_circle(false) // drawing a cirle at each point, default is on.
|
|
.value(data) // passing through the data to line graph
|
|
.max_size(MAX_SIZE)
|
|
.color(TFT_GREEN) // Setting the color for the line
|
|
// .backgroud(tft.color565(0,0,0)) // Setting the color for the backgroud
|
|
.backgroud(tft.color565(0, 0, 0))
|
|
.draw(&tft);
|
|
|
|
// spr.fillRect(0, 201, 320, 39, TFT_BLACK);
|
|
tft.setFreeFont(FSSB9);
|
|
tft.setTextColor(TFT_YELLOW);
|
|
tft.drawString("Network:", 10, 220, GFXFF);
|
|
tft.setTextColor(tft.color565(254, 0, 0));
|
|
tft.drawString("OFF", 100, 220, GFXFF);
|
|
// tft.pushSprite(0, 0);
|
|
// tft.deleteSprite();
|
|
delay(2);
|
|
}
|