Nextion Display не получает обновленных данных
Я использую Arduino Mega для отображения показаний 4 горшков на дисплее Nextion, а также для хранения его на SD-карте с отметкой времени. Я продолжаю получать:
recvRetCommandFinished err
на последовательном мониторе дисплей не обновляется со временем.
Я приложил свой код ниже:
#include "Nextion.h"
#include <SPI.h>
#include <SD.h>
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 rtc;
char daysOfTheWeek[7][12] = {"Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
// Объявите свои объекты Nextion - Example (page id = 0, component id = 1, component name = "b0")
NexText tDate = NexText(0, 1, "tDate");
NexText tPot1 = NexText(0, 6, "tPot1");
NexText tPot2 = NexText(0,7, "tPot2");
NexText tPot3 = NexText(0, 8, "tPot3");
NexText tPot4 = NexText(0, 9, "tPot4");
File myFile;
void setup(void) {
Serial1.begin(9600);
// Откройте последовательную связь и дождитесь открытия порта:
Serial.begin(9600);
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (! rtc.isrunning()) {
Serial.println("RTC is NOT running!");
// следующая строка устанавливает RTC на дату и время компиляции этого скетча
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// Эта строка задает RTC с явной датой и временем, например:
// 21 января 2014 года в 3 часа ночи вы бы позвонили:
//rtc.adjust(DateTime(2016, 11, 19, 19, 45, 0)); // <---------------------- УСТАНОВИТЕ ВРЕМЯ И ДАТУ: ГГГГ, ММ, ДД, ЧЧ, ММ, СС
}
delay(100);
// Возможно, вам придется изменить файл NexConfig.h в папке ITEADLIB_Arduino_Nextion
// Установите baudrate, который предназначен для отладки и связи с экраном Nextion
nexInit();
SPI.begin();
int pot1 = 0;
int pot2 = 0;
int pot3 = 0;
int pot4 = 0;
while (!Serial) {
; // дождитесь подключения последовательного порта. Требуется только для родного USB-порта
}
Serial.print("Initializing SD card...");
if (!SD.begin(53)) {
Serial.println("initialization failed!");
while (1);
}
Serial.println("initialization done.");
// откройте файл. обратите внимание, что одновременно можно открыть только один файл,
// таким образом, вы должны закрыть этот, прежде чем открывать другой.
}
void loop(void) {
myFile = SD.open("testpot1.csv", FILE_WRITE);
// если файл открылся нормально, напишите в него:
if (myFile) {
Serial.print("Writing to testpot1.txt...");
while(1) {
DateTime now = rtc.now();
myFile = SD.open("testpot1.csv ", FILE_WRITE);
int pot1 = analogRead(A0);
int pot2 = analogRead(A1);
int pot3 = analogRead(A2);
int pot4 = analogRead(A3);
myFile.print(now.hour());
myFile.print(":");
myFile.print(now.minute());
myFile.print(",");
myFile.println(pot1);
myFile.println(",");
tPot1.setText(pot1);
myFile.println(pot2);
myFile.println(",");
tPot2.setText(pot2);
myFile.println(pot3);
myFile.println(",");
tPot3.setText(pot3);
myFile.println(pot4);
myFile.println(",");
tPot4.setText(pot4);
Serial.print(pot1);
Serial.print(",");
Serial.print(pot2);
Serial.print(",");
Serial.print(pot3);
Serial.print(",");
Serial.print(pot4);
Serial.print(",");
delay(2000);
myFile.close();
}
} else {
// если файл не открылся, выведите сообщение об ошибке:
Serial.println("error opening test.txt");
}
}
Как получить значения банка на дисплее? Любая помощь или советы были бы полезны!
@Niteesh Shanbog, 👍3
2 ответа
Лучший ответ:
Я изменил текстовые компоненты на числовые в графическом редакторе Nextion. Это сработало, так как я в первую очередь хотел показать числовые показания банка.
recvRetCommandFinished err
означает, что что-то не так с последовательной связью между Arduino и дисплеем Nextion; это то, что recvRetCommandFinished()
печатает при возникновении ошибки.
Проверьте, правильно ли вы используете контакты (TX1 и RX1 для Serial1) для последовательного подключения к дисплею, фактические соединения (RX1- TX, TX1-RX), скорость передачи данных в бодах и кабель.
- Один бесплатный значок. Нужно отобразить вывод для пользователя?
- Путаница между SPI и I2C для SSD1306 OLED
- Сделать CS (chip select) для работаты в SPI (для и SD карты и OLED)
- Не удалось выделить SSD1306 при добавлении константы
- Создание файла на SD-карте
- SD-карта не инициализируется
- Печать содержимого файла SD - карты на ЖК-дисплее
- Зависание Arduino с OLED-дисплеем
Спасибо. Это сработало, а также я изменил текстовые компоненты на числовые компоненты в графическом редакторе Nextion., @Niteesh Shanbog
Отлично! Пожалуйста, примите ответ (если вы принимаете ответ), чтобы вопрос не оставался открытым., @ocrdu