About OpenSensie.org
Ive been builing and maintaining hosting environments for 20+ years, and everything has gotten better, cheaper, smaller, more flexible and more open ... except, for some reason, temperature sensors.
Maybe this is just a sweet spot where you purchase so few of them, and the last forever, and everything else in the server-room cost 10x the sensor ... but still, i took a quite a lot of them apart, and most of the contains components that where cheap and easy available 15+ years ago, most of them could not be updated partly because the company behind where gone, partly because nobody botheres. Few of them would even be bricked if you forgot the password ... yes there where no way of resetting the password on a 500€ temperatur sensor ... i'm speechless.
This leads me to the other huge problem i have with these propriotary temperatur propes, the hardware is often easily capable of running multiple sensors or maybe running a different protocol. But adding features to hardware that you own is for some reason considered extraordinary. If i call the company i bought the device from they will just tell me to buy a new and more expensive device which have the features im requesting, and throw away the old one.
But i wont do that! We have enough ewaste on the landfelds and i really don't wanna throw away perfectly working hardware just because the morons who wrote the original software and/or made the hardware decided that they didn't care enough to futureproof their product!
Building a temperatur sensor is often one of the first examples you are tasked with when trying to learn about micro-controllers, it is really simple and the basic hardware can be purchased four around 10€, and the software can be written in an afternoon. I am having a really hard time understanding the price point the propriotary suppliers charge to close that gap, and i decided to do something about it.
The goals of this project:
- Must be available: All components should be either easy to manufacture or purchase.
- Must be doable: The average IT should be able to assemble it and use it.
- Must be passable: Once its mounted in the server-room, it should loook like it belongs there.
- Must be safe: DIY+High Voltage=Risk, fire hazards and posibly death.
- Mist be simple ... : I neither want to overwhelm users with simple needs nor ...
- ... yet expandable: ... inhibit users with more complex demands.
- Must be reasonably priced: self explanatory, but it is the last goal for a reason!
The design - and future ideas
The company have existed since the late 90s which means they survived two economical crisies and a pandamecic, so theres a good chance they stick around for a few years still.
Even if they decide to discontinue this product, the source-code should be easily adaptable to any platform who uses the ESP32, there are even a few alternatives with POE available already today, however the few i decided to test out where not woth the ink of the receipt and if you buy more than fifty at a time you can get them as low as 15 EUR/unit.
As the time of writing this Digikey sells individual units for 18€, you can get them at Ebay, Amazon, Aliexpress ... however i would recomend to buy directly from the vendor or a reputable electronics supplier to avoid fakes and scammers.
I also want to give the users of the OpenSensie the option to be creating, to use company colors or to add features as they see fit - and if anybody rather want to do something else besides play with a 3D printer, they can order the official casing or maybe order a preassembled unit from me.
The first, and currently final, version of my casing is made on a Creality Mage 8K Resin printer, but it can also be printed on classical FDM printer or ordered from a print-shop near you. The case are made to fit the board so its can be preasure fittet inthere, there a hole for the usb-port so you can program it. But you can also choose to comment out the usb-port-hole in the OpenSCAD file if you want cabinet without that port available.
I thought a long time about mounting, there was another cabinet for the same board available on ThingieVerse, but in my mind it was way to big and way to clunky and their way of wallmounting was to add a couple of huge years to the cabinet - and i really didnt like that. So i decided to do a bit thicker bottom and make room for a couple of countersunk screws.
So the procedure of mounting is that you drill a holw in the wall, and scren the casing to the wall, put a piece of electrical tape between the screw and the board for good measures sake, install the board, the sensor, mount the preasure-fitted lid and finally plug in your Ethernet jack thats it. Admitedly, it's maybe a bit clunky that you need to take it apart if you want to take it down, but i looks really need and it's not comming down unless you really want it. .
My 3D modeling software os choise is OpenSCAD and that enables me to create parameterized models that are easy to modify, export and print on more or less any printer that is able to print with the desired degree of precision, i've been experimenting with several ways of assembly - different kind of screw inserts, preasure fitting and i am not yet sure what is going to end up being the best,but that does not matter - the whole point is that it is possible for it to evolve and become better and we can build a community around it and help each other device the best solution, not just for the case, but for everything.
The ESP32-POE has a nice 10 pin header for what they call UEXT modules, so you can already purchase a lot of premade modules which are just ready to deplay, but the interface itself have 8 gpio ports, some of which can also be used for I2C and SPI, so for now we only have this simple daughterboard which adds support for one temperature probe, but i already have ideas for versions with more sensors and one with a small display aswell.
If we, for some reason, in the future decide to produce a maxi-version. Who am i kidding, ofcourse we are gonna do that ... thats gonna be awesome! When that going to happend we actually have up to 16 available gpio's and we should be able to hook up at least three sensors to each ports, i havent tried it yet - but at some point im gonna play around with that to.
Another thing i would like to be able to, is to hack something together in a hurry, like if i want on-screen temperature on one of my YouTube videos or a public readout of the temperature of our hottub at Bornhack.
This is the main reason i choose to go with json which is very hackable and can be included in more or less everything. If you know how Prometheus work you probably also know that when you have something exposed as json it's fairly easy to turn it into a Prometheus exporter.
I also decided not to do a webinterface for configuration, first of all, i think it's really hard to make a good and robust webinterface and i don't want to do a half-assed job, second of all i actually prefer to configure devices like this from a computer through a cable - this also give a degree of security in that you cannot chance any settings through the network, that requires a usb cable.
Does that mean that i will never add a webinterface and/or snmp support? Not really, but is in no way anything that i plan to prioritize, at least not until someone offers to pay me for it. Thats one of the great things with opensource, i get to do what i think is fun and important - and if somebody else thinks something else is more important, they can either do it themself or pay someone to do it for them.
So when will it be ready? Good question ... in a few days or a few weeks? maybe?