Needed to measure 4 water temperature points, had created Arduino shield with I2C device using ATmega328 with color led temperature indication.
Soldered together the prototype hardware and wrote firmware and I2C library for it to be used in master Arduinos.
features:
Using KiCAD designed schematics and PCB:
Had to also create schematic libraries and footprints for Arduino UNO shield and Arduino Pro Mini along the way.
Sent this pcb to Aisler for manufacturing and it 100% matched the original Arduino UNO plastic holder - good job there:
features:
possible improvements:
I2C slave sensor code is on GitHub with a long README. For it to work I created another two libraries: 1) Arduino-TextCMD that allows for easy defining text commands with callback functions suitable to send commands over the serial console. 2) Arduino-Uptime that allows to count uptime in seconds and check/trigger events based on seconds elapsed since timer set/reset.
I2C master (read-out) library code is on GitHub too.
Next version could be stand-alone, that is replacing the Arduino Pro Mini with a smd version of ATmega328.
The shield is not limited to measure temperature. It's basically Arduino UNO shield with I2C connected ATmega328 that has exposed pins on 2xIDC connectors and 1-wire connection. Indication leds can be soldered or skipped, resistors also and in that case when shortcut-ed there are 2 pin holes per microprocessor pin to connect something.