All the input sensor and serial lines are polled on the atmega 2560 every couple of seconds.  the raw output from these sensor are formatted as a json string and sent to the linux computer through the serial line UART0. the linux computer  then sends a  json  object to the remote database server. the raw values are converted to the actual calibrated values during visualization by using the kj2arduino library.

this data path is show below:

the raw json from the 2560 typically looks as shown below

.—kijanistart—

“initialize”:0,

“baudRate”:38400,

“version”:”v2.0.0″,

“atmegaUptime”:”00:00:06:23″,

“pins”:{

“D3”:0,

“D4”:1,

“D5”:0,

“D6”:1,

“D7”:1,

“D8”:1,

“D9”:1,

“D22”:0,

“D23”:1,

“D25”:0,

“D28”:1,

“D29”:0,

“D30”:0,

“D31”:0,

“D32”:0,

“D33”:0,

“D34”:0,

“D35”:0,

“D36”:0,

“D37”:0,

“D38”:0,

“D39”:1,

“D40”:0,

“D42”:1,

“D43”:0,

“D44”:0,

“D45”:0,

“D46”:0,

“D47”:0,

“D48”:0,

“D49”:0,

“A0”:386.00,

“A1”:722.00,

“A2”:556.00,

“A3”:1023.00,

“A4”:323.00,

“A5”:330.00,

“A6”:338.00,

“A7”:372.00,

“A8”:388.00,

“A9”:1023.00,

“A10”:735.00,

“A11”:642.00,

“A12”:567.00,

“A13”:503.00,

“A14”:464.00,

“A15”:436.00,

“UART2”:0,

“UART3”:0,

“nutrientTemp”:19.75,

“ph”:2.34,

“ec”:1751,

“tds”:946,

“salinity”:0,

“flow_rate_sensor”:0.00,

“rtc”:”2000/8/6 19:45:16″

}

—kijanistop—

The final json object sent by linux computer to the server is: shown below:

{“baudRate”: 38400, “name”: “kj_v2_12”, “uptime”: “2:21:16.520000”, “pins”: {“D38”: 0, “D39”: 0, “D36”: 0, “D37”: 0, “D34”: 0, “D35”: 0, “D32”: 0, “D33”: 0, “D30”: 0, “D31”: 0, “tds”: 890, “A15”: 420.0, “A14”: 462.0, “A11”: 611.0, “A10”: 745.0, “A13”: 500.0, “A12”: 543.0, “relay8”: 0, “UART3”: 0, “A1”: 718.0, “A0”: 387.0, “A3”: 1023.0, “A2”: 552.0, “A5”: 339.0, “A4”: 322.0, “A7”: 350.0, “A6”: 346.0, “A9”: 1023.0, “A8”: 368.0, “ph”: 2.6, “D29”: 0, “D28”: 1, “nutrientTemp”: 19.75, “D23”: 1, “D22”: 0, “D25”: 0, “UART2”: 0, “D49”: 0, “D48”: 0, “ec”: 1647, “relay6”: 1, “D43”: 0, “D42”: 1, “rtc”: “2000/8/6 21:59:38”, “D40”: 0, “D47”: 0, “D46”: 0, “D45”: 0, “D44”: 0, “salinity”: 0, “flow_rate_sensor”: 0.0, “D8”: 1, “D9”: 0, “D6”: 1, “D7”: 1, “D4”: 1, “D5”: 0, “D3”: 0}, “version”: “v2.0.0”, “wlan0”: “192.168.42.82”, “initialize”: 0, “atmegaUptime”: “00:02:20:44”}