The project involves developing code for an Arduino MEGA that will write data to a DS2433 EEPROM that is connected to the Arduino MEGA. The DS2433 resides in a sensor that can be attached to the Arduino. The data will consist of an array that is transferred to the Arduino through serial communication with a PC. In addition to writing the array to the EEPROM, the code will be capable of reading the memory, writing it to the Arduino, and subsequently transferring it to the PC as a csv file. The basic hardware components are shown in Figure 1 (attached).
This project involves development of three distinct software products, described as follows.
a) Preparation of Data File. This program will be PC Windows based and driven by a graphical user interface. The program will allow entry of data into a form following the format given in Figure 2. Data can be entered from the keyboard or pasted, for example from an Excel file. The data file will be saved in CSV format for upload to the Arduino (Task b). We call this data file Sensor MetaData. The software will be developed in [url removed, login to view], C#.Net or another language approved by the Customer.
b) Transfer to Arduino. Prepare a software tool that will operate on a Windows PC and provide a means to transfer the Sensor MetaData file developed in Task a) to an Arduino MEGA. The file will be written to the EEPROM of the Arduino. The program will enable the Sensor MetaData to be both written to the Arduino from the PC and read from the Arduino to the PC.
c) Write and Read to DS2433s. Prepare a script using the Arduino Development Environment 0022 that will enable the Sensor MetaData (e.g., Figure 2) to be written to a DS2433s. The script will also allow data to be read from the DS2433s and transferred to the Arduino. Developer to suggest appropriate error checking to be reviewed and approved by the Customer. Programming is to be compatible with the DS2433 as well as its replacement DS24B33.
The code should be clean, easy to understand and heavily commented. An individual who is familiar with developing code that reads and writes to EEPROMs in the Maxim 1-Wire environment will be able to complete this project most efficiently.