передача данных на Nextion
- Войдите на сайт для отправки комментариев
Ср, 27/11/2019 - 18:12
Доброго всем. Помогите, пожалуйста, разобраться как правильно отправлять данные на дисплей. Пересмотрел кучу мануалов и родилось что-то такое:
#include <OneWire.h>
#include <DallasTemperature.h>
#include "Nextion.h"
#include <AM2320_asukiaaa.h>
AM2320_asukiaaa mySensor;
OneWire oneWire(10);
DallasTemperature ds(&oneWire);
NexText t3 = NexText(0, 9, "t3");
NexText t4 = NexText(0, 10, "t4");
char buffer[100] = {0};
char buffer_second[100] = {0};
void setup() {
Serial.begin(9600);
nexInit();
ds.begin();
Wire.begin();
mySensor.setWire(&Wire);
}
void loop() {
t3.setText(buffer);
t4.setText(buffer_second);
int temp = ds.getTempCByIndex(0);
int hum = mySensor.humidity;
memset(buffer, 0, sizeof(buffer));
itoa(temp, buffer, 10);
memset(buffer_second, 0, sizeof(buffer_second));
itoa(hum, buffer_second, 10);
mySensor.update();
ds.requestTemperatures();
Serial.println();
Serial.println("temp: " + String(ds.getTempCByIndex(0)));
Serial.println();
Serial.println("humidity: " + String(mySensor.humidity) + " %");
Serial.println();
}
В наличии датчики ds18b20 и AM2320, Uno и сама Nextion панель. На экране ничего нету в итоге. Что я сделал не так? Спасибо.
Serial.println(buffer) что показывает?
то, что выдаёт датчик, только целым числом (что сейчас не очень важно)
Вижу два варианта:
1) проблемы с подключением;
2) неправильно имя поля определено.
andrwgldmn, у вас плата Уно, у нее всего один Сериал. Этот Сериал у вас занят под отладочный вывод (строки 36-40)
Куда же подключен Некстион? - ему тоже нужен Сериал, причем отдельный от того, первого
страница 0, id 9, objname t3
вроде бы правильно.. или это не там?
с подключением вроде тоже верно: TX панели на RX(0 пин) ардуины и RX панели на TX(1 пин) ардуины
andrwgldmn, у вас плата Уно, у нее всего один Сериал. Этот Сериал у вас занят под отладочный вывод (строки 36-40)
Куда же подключен Некстион? - ему тоже нужен Сериал, причем отдельный от того, первого
Сериал убрал из скетча, но ситуация неизменна
Сериал убрал из скетча, но ситуация неизменна
просто убрать лишнее мало.
Во-первых. совсем убирать Сериал не надо - он нужен Некстиону.
Во-вторых, надо обьснить Некстиону, что он использует именно этот Сериал.
В-третьих, скорости Сериала и некстиона должны совпадать.
Сериал убрал из скетча, но ситуация неизменна
просто убрать лишнее мало.
Во-первых. совсем убирать Сериал не надо - он нужен Некстиону.
Во-вторых, надо обьснить Некстиону, что он использует именно этот Сериал.
В-третьих, скорости Сериала и некстиона должны совпадать.
1. оставил только Serial.begin(9600);
2. там вроде бы прямо в библиотеке надо изменить сериал2 на просто сериал или мимо?
3. в библиотеке глянул - тоже 9600
Так, как в Уно нет второго сериала, скетч с Serial2 в библиотеке не скомпилировался бы даже.
тем не менее по умолчанию библиотека использует именно Serial2 - там в конфиге такой макрос:
#define nexSerial Serial2
его надо поменять на Serial
тем не менее по умолчанию библиотека использует именно Serial2 - там в конфиге такой макрос:
#define nexSerial Serial2
его надо поменять на Serial
сделано, но без толку
Это должно работать, если с коннектом всё ОК
понял в чём была ошибка. надо было закоментить в NexConfig.h #define dbSerial Serial и прописать в прошивке для панели bauds=9600
ну и #define nexSerial Serial2 сменить на #define nexSerial Serial, само собой