передача данных на 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, само собой