Платформа разработки Arduino Giga
Модель распечатана на принтере Creality Ender v1 белого цвета Pla, заполнение должно составлять 40-50%. с поддержкой.
Компоненты:
Ардуино Гига R1 Wi-Fi
Дисплей Arduino Гига
Камера Ардуино Гига. UC-A67
Модуль Micro SD Pmod
RGB-модуль цифровой 18x14 мм
Wi-Fi-антенна 40x14 мм
Мини-макеты 35*47*8,5 мм
4x м3 Тепловая вставка D 4,5 мм
4x м3 8 мм
6x м2 8 мм
КОД:
#include
#include
#include
#include
#include
#include «Arduino_GigaDisplay_GFX.h»
// Пины
константный интервал SD_CS = 10;
const int LED_R = 4; // вывод RGB PWM
const int LED_G = 3; // вывод Grøn RGB PWM
const int LED_B = 6; // Вывод Blå RGB PWM
СдФат сд;
Adafruit_BME680 блин;
GigaDisplay_GFX tft;
// Учетные данные Wi-Fi (можно изменить в файле конфигурации)
const char* ssid = "";
const char* пароль = "";
// SPI-конфигурация
SdSpiConfig spiConfig(SD_CS, SHARED_SPI, SD_SCK_MHZ(25), &SPI1);
// Переходим к отображению
#define COLOR_BLACK 0x0000
#define COLOR_WHITE 0xFFFF
#define COLOR_GREEN 0x07E0
#define COLOR_RED 0xF800
#define COLOR_BLUE 0x001F
// Глобальная наклонная стойка
Bool sdInitialized = правда;
bool bmeInitialized = правда;
// Миллис тидсмаркёр и интервалер
беззнаковый длинный дисплейМиллис = 0;
const long displayInterval = 4000; // Пропустить от начала до данных через 4 секунды
беззнаковый длинный датчикМиллис = 0;
const long SensorInterval = 60000; // Обновление датчика через минуту
беззнаковое длинное errorCheckMillis = 0;
const long errorCheckInterval = 30000; // Фейлтьек hvert 30. секунд
Бул showStartup = правда; // Флаг для opstartsvisning
// Управление светодиодами RGB
void RGB_color(int red, int green, int blue) {
AnalogWrite (LED_R, красный);
AnalogWrite(LED_G, зеленый);
AnalogWrite(LED_B, синий);
}
// Фейл-хэндтерингсфункция
void handleError(const char* message) {
tft.setTextColor(COLOR_RED);
tft.println(сообщение);
Serial.println(сообщение);
RGB_цвет (0, 255, 0); // Род для фейла
если (sdInitialized) {
Файл errorFile = sd.open(«Error_Log.txt», FILE_WRITE);
если (файл_ошибки) {
errorFile.println(сообщение);
Файл ошибки.закрыть();
}
}
задержка(5000);
}
// Forsøg и Genoprette WiFi
недействительный переподключениеWiFi () {
tft.fillScreen(COLOR_BLACK);
tft.setTextColor(COLOR_WHITE);
tft.println(«Подключение к генопретте WiFi...»);
Serial.println(«Genopretter WiFi...»);
RGB_цвет (0, 0, 255); // Бло для опстарта
число попыток = 0;
WiFi.begin(ssid, пароль);
while (WiFi.status() != WL_CONNECTED && попыток < 10) {
задержка(500);
Serial.print(".");
попытки++;
}
если (WiFi.status() != WL_CONNECTED) {
handleError(«Неверное использование Wi-Fi.»);
} еще {
tft.fillScreen(COLOR_BLACK);
tft.setTextColor(COLOR_GREEN);
tft.println(«WiFi-запрещено подключение к сети!»);
Serial.println(«Запрет подключения к Wi-Fi.»);
RGB_цвет (255, 0, 0); // Грён за успех
}
}
// Контроллер SD-кортстатус
недействительный checkSDCard () {
if (!sdInitialized && sd.begin(spiConfig)) {
tft.fillScreen(COLOR_BLACK);
tft.setTextColor(COLOR_GREEN);
tft.println(«Генопретет SD-корта!»);
Serial.println(«Генопретет SD-корта.»);
RGB_цвет (255, 0, 0); // Грё�� за успех
sdInitialized = правда;
} еще если (!sdInitialized) {
handleError(«SD-корт для использования!»);
}
}
// Статус контроллера BME680
недействительная проверкаBME680() {
if (!bmeInitialized && bme.begin()) {
tft.fillScreen(COLOR_BLACK);
tft.setTextColor(COLOR_GREEN);
tft.println(«Генопретет BME680!»);
Serial.println(«Генопретет BME680.»);
RGB_цвет (255, 0, 0); // Грён за успех
bmeInitialized = правда;
} еще если (!bmeInitialized) {
handleError(«Использование BME680!»);
}
}
// Посмотреть статус системы на дисплее
недействительный displayStatus () {
tft.fillScreen(COLOR_BLACK);
tft.setTextColor(COLOR_WHITE);
tft.setCursor(0, 0);
tft.println(«Состояние системы:»);
tft.print(«Wi





























