#115
Vložit
- čas přidán 5. 09. 2024
- In this video, I go over the dataRecord element. I go over inserting a record, deleting a record based on row id, Updating a record based on row id, and clearing all records. I also go over how to get the selected row id and why you need to get it on the item release instead of the item press.
If you enjoy the content considering donating a cup of coffee at ko-fi.com/chea...
You can sort and find videos better on at www.cheapcontrols.com
I have started a group on Facebook to make it easier to interact with user-requested videos. Consider looking it up. www.facebook.c...
Exactly the tutorial I needed to start to unleash functions in the intelligent model. Love the way you show common mistakes and explain the troubleshooting/ logic for the errors. Very much appreciated
Thank you for the kind words.
Very informative video, thank you for your help. One comment, you had asked why you need the 'aph' value for opaqueness, it can be used in industrial graphic animation, such as showing a bottle being filled on some kind of filling line, you'd opaque down the image of the bottle and up the opaqueness of the background liquid being filled into that bottle image, so you could visualize the bottle actually being filled. Not much use in this data control.
That is an interesting thought. As I use these displays more, I see more uses.
you'd reduce down the opaqueness of a bottle image, place a bar graph behind that bottle and increment the bar graph showing the same color on the bar graph as the liquid you'd want to fill the bottle with. @@CheapControls
Thanks a lot. It's very helpful.
Glad it was helpful and thank you for taking the time to comment.
This is great. I did not know this could be done.
Maybe you could start a thread and post these videos at the various Arduino/Nextion forums.
Good luck.
Thanks for the continued support. I have joined a couple forums but they are all pretty clear about promoting yourself. The past few months have been pretty difficult to make content with my current "real" job. Increased hours and such so I am happy with the slow growth of the channel. That being said, I am working on a couple of products that may make me leave my current job and then I will be looking for growth. I hope you are still viewing because I may be asking for advice.
One question I have for a frequent viewer is about a line of videos. I am looking at building three homes over the next 3-4 years. It is not really in the scope of this channel but I was thinking of making a separate playlist that goes over some of the things involved with building homes. Not so much the "how to build a wall" angle. More of a I just ran into this zoning issue and here is a way around it or I have been dealing with Menards and wow they did this or that. I will be doing 90% of the work myself so I think I can add some insights. Probably make it somewhat a smart home.
Got all excited till I found out Im too broke for this feature. Lol. Might be something to note that your using the Intelligent Series here.
I apologize for not mentioning that in the video. I thought I had. I have never owned an intelligent model either but I was notified recently that the intelligent 4.3" is less than the enhanced 4.3" I may order one but it is hard to justify when all you do is make videos on them and don't have an actual use.
@@CheapControls Yeah no worries. While these nextions are handy, they do split up their functionality frustratingly across their devices evenly. Granted those features probably require better processors or whatnot.
I can appreciate you still teaching the methods even while not having the device. In the meantime since my first comment definitely made use of the eeprom on the screen to do jimmy rig a data record albeit limited to 1024 spaces. Nextion doesn't like eeprom writing at high speeds. Ill have to test further to see what's reliable writing request intervals.
That is not good to hear. I am starting to look into using the eeprom.
Thank you for your videos. Very informative👍
Glad you like them!
Excelent!👏👏👏
thank you and thanks for watching.
This is what you need to send data deom Arduino to Datarecord
String mystring = "123" ;
Serial2.print(String("data0.insert(\""));
Serial2.print(mystring);
Serial2.print(String("\")"));
Serial2.write(0xff);
Serial2.write(0xff);
Serial2.write(0xff);
For sure you can use any other Serial
That is a good tip. thanks for watching.
Is it possible to read the inserted data
Thanks again!! I am trying now to use the introduced files separatly. Let say, I want to take just the data "Second" from the file with the ID 1, so I can assign it to a text box. samething like t0.txt=data0.val.path(1,1)... I just imagine something matrizial to make a reference, but it is just my imagination to refer to a single data inside the table.
I have not looked into selecting a single cell but I would imagine you could select the row and then use the substring(substr) to walk through the string, looking for the carrots and extracting the individual fields. Let me know if you figure it out. It is an interesting question.
@@CheapControls Any advice, how to extract individual fields? I need to rebuild values from this "rac^105^147^152^153^19^5" but i have no idea with what to start. Thank you.
Good trick I found was to make individual data records for each column. You can still have your initial 7 column or however many data elements you have for viewing purposes. But then create 7 individual data records to easily recall the data from each record. Use .Val and .qty to create a for loop to fetch the data. Then if you want you can just make those individual data records hidden using vis dataRecord,0 or whatever your data record is named
Hello
found this one :
spstr data0.txt,t2.txt,"^",4
-splits the text from data0.txt to the destination of t2.txt
-text is separated from ^
-and uses the word after the fourth ^
can u make a video how to send commands from arduino to nextion for data record will be really helpful
I am making the final video (maybe) for my heat mat series. I will look into making a data record video in a week or so. What data are you trying to write? Temperature, humidity? If I can I will cater the video to your needs. If you don't want to wait any command that you run on the Nextion can be sent from the Arduino. You need to make sure you format it exactly like the command in the Nextion and end the command with a series of 3 0xff hex bytes. Thank you for watching
Thanks and Regards .
Most welcome
hey, is it possible to send, for example, a simple Windows application written in C# in Visual Studio, datagrid view tables, e.g. 5 rows and 5 columns, to nextion? What is the best way to do it, as a whole file or in rows?
Hi, thanks a lot for your video! Once all the data are recorded it should be possible to read a row by giving a parameter like a number. Say you will have number 12345 in column1 how to select this and get data for this row? Later it is easy to extract data from a single row to get single values.
Thank you for the tip!
Thank you a lot for this video, is there a possibility to make a tutorial to interface nextion display with normal printer
I am sorry but I don't think the Nextion can connect to a printer.
YoooooHoooo..thanksxx
You are welcome
thank you the tutorials are great are you planning on a RTC on the Nextion
I am working on that for this week. I will be comparing it to the Arduino RTC and an External RTC chip. Depending on script length it may be a two part. I am not sure yet. but look for it toward the end of the week.
great video series on the nextion touchscreens - thanks for your work
I can not figure out if there is a way to find out how many records are used m- other then writing an analysis loop going through every record every time
and another thing I would really love is to sort the records - but I think we need to do it on our own right ?
Your Welcome. You can about anything if you have enough time and patients. I might show different ways to sort but there is nothing native to the Nextion that would make it easy. You might want to check into using a Raspberry Pi and a database for more advanced techniques then you could erase and recreate the records as needed. As I type this I am wondering about accessing data records from the SD card using the twfile command. This would make it easy to alter the file from an external source. I am just thinking and not sure if this is possible or not. How many records are you dealing with?
I face one problem regarding whenever i change the page than data record stop working . so any solution to overcome this problem ??
i have included rtc also so i get know that when i changed the page data recording was stopped.
I am not sure but on most objects on the nextion, if you want to adjust from another page you must make them global and then refer to them with the page annotation. like this p[0].n0.val would be page 0 number 0 value.
@@CheapControls I have done that but still data recording is not working in background when I am on another page .
@@exams7743 It is probably like the map for the waveform. You can't write to a waveform unless the page is showing. I write the data to EEPROM and then when the page is displayed you can catch up on the values, or you can store the values in the Arduino and then write them to the data record when the page is showing. It is a bit more complicated, but it can be done. I have an example with the waveform.
"I have a question about data recording, even though it's been a long time since the video was released.
By writing like this p[3].va0.txt=t8.txt, I can write the data on page 0 to va0 on page 3.
I keep the data recording on page 3, but the place where I need to insert the data is on page 0.
I'm trying to insert it by writing p[3].data.insert(p[3].va0.txt), but it says invalid command."
Hello!! your videos really help a lot. I am working on a data record like the one you do in the video and everything is perfect but... with what external program can we open the generated .DATA file outside of nextion? I'm interested in having this data outside but I can't find an external program that can open it without problems.
I am not sure. Would you remove the SD card and then plug it into a computer or do you want to read the data directly from the SD card into your computer?
@@CheapControls To read the file, I would extract the card from the nextion screen and take it to the PC. I have tried to read the .DATA file with Microsoft excel or access but it has not been possible. I would like to know how to open this file on the computer to have all the records and analyze the information collected with a data analysis program. Thank you very much for your quick response =)
Do you have any spaces in the data? I don't have Microsoft on my home computer. I will take a look on Monday when I get to my work computer. I will look at using google docs now and see what I can come up with. If there are no spaces you would use the ^ symbol as the delimiter and then the final delimiter would be a space and there is some garbage at the beginning. Before you open it make a copy because it will not reopen on the Nextion after you have manipulated the file. If you open in notepad you can delete the beginning Nextion Info.
I have been looking at file in Visual studio and there are so many null characters that need to be removed. I will see what I can come up with and reply in a bit.
How can you pick up the value of the one cell of the one record row ?
There is substring func. but no instring func. to detect the "^" character position in the record row.
Thus ,this is hard to get text of each cell.
The only one way is look one by one from zero to end of the string and catch the position of the "^" char.
So , I have played more times with nextion devices, some difficult, some easy, very powerfull but some missing funcs.
Btw. good for every mid level or beginner person.
You made good lec. thankyou bro. regards.
I can't remember this video very well. I will do a little research and get back to you.
@@CheapControls no no. Thank you very much for answer. Please dont waste your time. Actually I fixed my questin. Thanks again sir.
That is good to hear.
Hi, I have a question. I’m sending a string to the data record every minute using a timer. And it is not stopping, the data always keep going on. I have a code in arduino side. I am sending information to the nextion device in real time. But I want to stop it, I just want to work like when data comes to the data record table it should be shown at table only once. Only when another different data come data record table should show only 2 row ( should not work like every single second). Could you help me with that? Thanks a lot.
The Nextion timer can be disabled when you want to stop it from running. If you are sending commands from the Arduino you don't need the Nextion timer. I hope I answered your question. If I did not please rephrase and ask again.
@@CheapControls I am using a library which name is “EasyNextionLibrary”. And I can only change va1 value in arduino side. In nextion side, I have a timer and It is work like this
if(va1.val!=0)
{
.
.
.
data.insert
}
When my va1 value change form arduino Side then after my data table only demonstrate changed va1 values every single second. My problem, as you said, is that I couldnt control timer. It should be inserted untill a new data(new val1 value which comes from arduino side) come. By the way, thank you very much for advices.
after data.insert you need to change va1.val=0 so the next time the timer executes it wont inert the data.
@@CheapControls First of all many thanks. However, on my system the value of va1 is constantly changing and its information is updated by esp32 every second. That is, even if I set the value of va1 to zero at the end, my va1 value changes immediately because esp32 sends the value continuously. So it goes inside the if command again.
I apologize, I might not be understanding your problem. But I do know that most commands you can run on the Nextion you can send from the Arduino. If you want to stop the timer from running you can send tm0.en=0 and to start the timer you can send tm0.en=1
i noticed the non intelligent hmis dont have some features. Do you think its a hardware limitation or a limitation from the company to get you to buy the more expensive hmis?
I believe it is a hardware limitations. I have not been able to identify the parts and I feel the company has horrible customer support but I think the equipment is better at each level. I have yet to purchase an intelligent model. I have not had a real world project that justifies the expense so I can;t speak to that series as completely as I would like.
Hello, is it possible to call the saved data from another page?
You can access elements from other pages if the elements are global. I believe you can access the data from another data record by calling the same storage locations in eeprom. I do not have my development computer with me so I can not test this. Let me know if this makes sense or not. If not I will try to look into it more.
@@CheapControls How Can I to save in the eeprom? I was using of SD CARD
I mis wrote my response. The data is written to the SD card. Sorry for the confusion.
hi, is it possible to check data based on entered date range? as an example we are saving our data for last 20 days, but I want view datas for between 3.th and 5.th days? I tried to do that but it seems it's not possibble? Is it? ................ and the other issue is while using nextion display panel, data which we saved to sd card can be displayed too complicated, there are lots any other letters (like "y") between the datas... if you want to see only the saved data then you must clear these letters (like "y") ... have you ever checked the data in the sd card? thanks.
This is complicated. I am sorry but I don't have time now to work on this. I am going to do more videos on topics like this but I am currently updating my website and the way I make the videos.
@@CheapControls thanks for your answer.
sir, how to record data from another page?
Would you be able to provide a scenario where this is required. I think better when I have an example. I do appreciate the question and would like to help. Thank you for watching
Thank you a lot for this video, is there a possibility to make a tutorial for fileBrowser and FileSteam?.
I do plan on this. I plan on going over all items and features of the Nextion displays. Thanks for watching.
@@CheapControls Waiting for that Video
Thank you so much for those tutorials...it helped me so much. Just a question...how could you (following your exemple) add another text record " .txt" file to a fifth columns?? I mean ...should i place/add a " ^ " somewhere after the " va0.txt+=va1.txt" codeline, or create a new variable "va2.txt" to store a additional " .txt " file record (milliseconds for exemple) to a fifth column? (sorry for my poor english) :-)
Sorry it is taking me so long to reply. I need to review the video before I answer. I want to make sure I give you a correct response
@@CheapControls don't be sorry... :-) Thank's a lot for your help....
You are correct. You would add another ^ with more data. an example va0.txt="one^two^three^four^five"
or va0.txt="one"
va0.txt+="^two"
va0.txt+='"^three"
va0.txt+="^four"
va0.txt+="^five"
the key is the carrot ^ I am not sure how many columns you can add
@@CheapControls thank you for this explanation...nevertheless, in your exemple there are "string" that are being used...(and work well in this case) But in regard of my case, how could you make it work with the second in a column AND minutes in an another column...(both file in .txt)? the problem is about this line wich is not compilable=> data.txt+=^va1.txt, is there a possible workaround to fix this...
Thank you for sharing your science ;-)
@@CheapControls hi again, i tried almost all configurations with variables but i still struggling with the "columns data recording". i tried various methods but i can't achieve to print the datavalues (in.txt format or number format) into each column (except the first) :
dataSD.txt+=va0.txt ===> print result: value of the variable => it's OK
dataSD.txt+=^va1.txt ===> compilation issue!!!!
dataSD.txt+="^va1.txt" ===> print result: va1.txt in the second columns (but what i want is the variable value!!!)
aarffgh ...any tip on what i missing somewhere...?
thank you!
How can I remove the ^ symbol when recovering the saved data?
How are you trying to recover the saved data. I have a program you can run on your computer that reads the data from you SD card.
@@CheapControls Hello! Your videos have helped me a lot. I would like to know what program you use, I need to read the data from the SD card. Thank you so much.
@@CLARIFER06 here is a link to a program that will allow you to read the file. cheapcontrols.com/2023/03/08/nextion-data-record-softwarevideo-192/
Thanks for a great video which is very useful indeed, given the poor documentation on datarecord and filebrowser from Nextion. I have a question. Is there a way to find the total number of records in a DataRecord? I need to add a record to the DataRecord, but before adding I want to ensure that the value I am feeding is not already in the record. Hence I need to run a for loop to find compare existing records with the new one and add if it does not find a match.
Also if you could add a video to write a data or a text file on the sd0/ and also read it back to the microcontroller, it would be great. There is nothing on that subject I could find.
I almost put out a video on that a few weeks ago but I had some information wrong on sending the file. I am currently working through the issues and should have one coming out. Pleas consider signing up for the weekly newsletter over at www.cheapcontrols.com. You can follow what I am working on and reply if you have any questions.
@@CheapControls Great! Thanks..I look forward to your expert guidance.
Hello, is it necessary to create a txt file with the same name (1.data in this example) in the same folder where the .tft file goes when physically programming the screen?
I don't know the answer to that question. Everything I have is packed up at this time but I will try to remember this question when I unpack later next week.
@@CheapControls I tested this, in order to make it work you have to create an empty file with the name (1.data in this case) and put it on the SD CARD. If you don't do this, a message saying "file missing: sd0/1.data" will appear on the table.
спасибо
You are very Welcome. Thank you for watching.
Please do video for combobox
Look for one next week. Is there something specific about the combo box or just in general how to video? Thanks for watching.
hello my friend!! again your video is a must!!
Do you know how could be storaged the recorded data into the RAM memory? I cant find and with so much memory ... would be a good option!
Thanks! great job!
Do you mean, write to the RAM on the Nextion Display?
@@CheapControls yes
To be honest I have never looked into writing to the RAM. My initial thought would be that you can not. but I think it is worth looking into. I will dig through some information that I have collected on the display and see what I can find.
@@CheapControls I was trying today in the official forum, and I did not find an easy answer... Thy said something like these: Try to save a version of your program.tft with DataRecord Atribute path, deleting the Sd0/1.data. And then, without a declarated sd path the system will save in the RAM by default!! in my case did not work...
I know this video is on the Data Record but I was thinking of a more direct way to store it. I am still looking into it. What type of data are you looking to store. It is sometimes more helpful it I have a specific project in mind.
Hey, I am having a doubt regarding DATARECORD how can I store.LOG data into a particular datarecord row and use that record to see the details store in it. thanks in advance.
there will be two datarecord on different page so i need to link those
this may take me a couple days to investigate. Would you mind going to Cheap Controls .com and leaving a comment so I can Email you directly. If not that is OK I will try my best to remember this comment and reply.
@@CheapControls i will leave the msg over there. Thanks :)
@@design4682 did u find the solution for this?
@@anjalirathi5228 Yes got it. Thanks.
Your video helped me alottyank you so much but i got one problem am inserting agents from sd card using arduino the problem is i send serial.print("data0.insert(%"x%"))";
Serial.write (0xff);
Serial.write (0xff);
Serial.write (0xff);
But data doesnt insert in the table is it a bug or it has different code?
is it data0.insert(%"x%") or should it be data0.insert(/"x/") forward slash instead of percent sign. I may be misunderstanding you please reply and Thanks for watching
@@CheapControls yes u right /" my bad the problem is the compiler runnes right but data dont get inserted
@@essouaiedameur7642 Do you know how to connect the Nextion IDE to a physical device(Arduino) in debug mode?
@@CheapControls am using Rx Tx i recive messages i code in nextion nd able to change texts from arduino idk if thats what it means
If you run the Nextion in debug mode you can see what the Arduino is sending. There is a box that shows the string that the Nextion would see. Then you can copy that string over to a button on the Nextion and it should work. I thought I had a video on this but I can not find it. I will try and get one recorded. In the mean time if you join the Cheap Controls private Facebook group you can message cheap controls with your file and I can help a little more.
request File browser
I plan on cover that in an up coming video. I am not sure when I will get to it but I will try to move it up in priority.
Please Speak up a little.
I will try to do that. Thank you for watching.
hi, thanks for the video, why is not possible to record the date & time like :
cov rtc5,va0.txt,2
cov rtc4,va1.txt,2
cov rtc3,va2.txt,2
cov rtc2,va3.txt,2
cov rtc1,va4.txt,2
cov rtc0,va5.txt,4
data0.insert(va0.txt^va1.txt^va2.txt^va3.txt^va4.txt^va5.txt^)
Did you try? What error did you get. I don't have my development system with me, or I would try it. I don't think I have ever tried doing it that way.
@@CheapControls yes, i already try it, error is following:
Error:Invalid Variables:data0.insert(va0.txt^va1.txt^va2.txt^va3.txt^va4.txt^va5.txt^)( Double click to jump to code)
Error:Compile failed! 1 Errors, 0 Warnings,
when i try one variable it work like data0.insert(va0.txt), but multiple variables it compile error.
my traget is to store some values with date and time index, then to save in the SD card, i tried many ways but no way till now...