While not attempting to simply put the device outside, directly exposed to the sun, rain and extremes of temperature, I made several customizations to better prepare the smartphone turned into a monitoring station.
The first thing I wanted was to have it entirely self-sustainable. As such I bought a 10 watt photovoltaic panel to harvest the energy required by the device:
The second thing was the need to add a proper enclose to protect against the water ingress and the weather conditions. A generic sealed plastic enclosure was the solution of choice:
The enclosure needed a window to see the outside however. As such I opened a rectangular hole, and added a polycarbonate plastic window, secured by four screws and isolated by a good layer of hot snot.
Regarding the smartphone itself, I managed do reflash it to a unofficial port of Cyanogenmod 11, and keep specific Android apps running, in particular:
- SSH server;
- IP Webcam
Some physical modifications were also done. As I would not be needing the screen for this application, I focused on keeping only the mainboard in the enclosure, therefore reducing the power consumption and improving the heat dissipation. I was satisfied to see that the device booted and worked properly without the screen and touch pad attached:
As without the screen I had no form of feedback if the device would be starting after pressing the power button or not, I selected the SIM card power supply pins to have a LED attached to. As such I could now have the confirmation of powerup, during the moment the phone routines provide power to the SIM card interface.
With everything in place, including the battery somewhat separated from the mainboard, and to DC/DC converter to provide the 5 V DC necessary to charge via USB, from the variable (up to 21 V) voltage from the solar panel, it was now time to give it a test:
The web interface from IP Webcam facilitates the remote management of its features. Monitoring of the other smartphone sensors is also possible by this application, but at least with my device it would crash after a few samples: