The Soil Analyzer is a small handheld probe device that detects the Nitrogen, Phosphorus, and Potassium content in the soil within +-2% accuracy in mg/kg. It also detects the surrounding environment's temperature and humidity, and finally the soil moisture. It displays all of this via Bluetooth to a laptop on a Unity program.
I developed the probe over the course of a few weeks. It runs off of an Arduino Nano powered entirely off a single 9v battery and that communicates via Bluetooth to a laptop via Serial to connect to Unity where data is processed and displayed accordingly. The probe hosts a few sensors: soil moisture, DH11 (Humidity, Temperature), and an NPK sensor.
The probe uses a host of sensors, one of which communicates in a different protocol. Managing all of this was quite difficult, and also required additional electronics to make work. The NPK sensor, for example, operated on 12v DC and communicated in a way which my Uno is unable to read out of the box. To solve this I had to use a special communication board to translate and be the go between. Other sensors I used simply used basic digital and analog read, much simpler and out of the box functionality with the Uno which was nice.