One of the key features of an “industrial” piece of equipment is its tolerance to environmental extremes. This includes extremes of temperature, vibration, dust and liquid ingress. In this section, I try to kill ‘n+1’ birds with ‘n’ stones by trying to use the Harting MICA as a weather station, condition monitoring solution and then try to take it for a swim.
While the Bosch CISS sensor is happy to stream data continually, to perform this testing requires logging the data. While it is possible to do this with the Bosch CISS Python Sample Code, I wanted to do this with the included tools from Harting instead. This is a Harting RoadTest after all.
In order to do this, I configured extra end-points to the CISS Gateway container, including a UDP IPv6 output to my main desktop and a UDP IPv6 output to a Debian container hosted on the MICA itself. By logging the data on the UDP socket using socat or nc6, we have a logfile of the data that CISS Gateway sends to NodeRED via MQTT. NodeRED can continue to aggregate and display real-time statistics, while the data logs can be analysed offline afterwards.
Once logged, the data is just a continuous stream of bytes representing successive JSON objects containing nested attributes. To further analyse this, I wrote a very primitive Python parser that tries to segment a single JSON object, then extract one copy of each field (ignoring any missing fields and duplicates), producing a .csv file that can be further analysed with other software. I also produced another simple program that detects the end of a JSON object from CISS Gateway and inserts a new-line, thus making the process of identifying and isolating “bad” JSON records easier. This was necessary in order to provide some data necessary to Harting’s support teams to report issues within the CISS Gateway container.
The tools have been attached to this blog posting – no warranties or guarantees are supplied. The code is rather “hacky” and presently only customised to work with this use case.
Harting MICA Weather Station
As a combined test of the Harting MICA’s robustness, the Bosch CISS sensor’s capabilities and the ability of the Harting MICA to handle the data, I proposed that I would use the Harting MICA in a weather-station-like application. This would entail leaving the unit outside for an extended period, exposed to the elements including direct sunlight, heat, cold, wind, rain, dew and perhaps even unstable power.
Because of this, I would need a way to power and connect the Harting MICA while it was outside in my backyard. The first iteration relied on a pair of eX-Power laptop power bank batteries, outputting 16-19V DC. I constructed a simple diode-isolator to allow the two batteries to feed the Harting MICA through a single barrel jack which permitted any one battery to be removed at a time for recharging without interruption to the system. With a calculated autonomy of close to 36h, it was not too difficult to ensure both batteries got a charge once a day to keep the system alive. The issue of network connectivity was resolved by connecting the Harting MICA to a Mikrotik hAP mini which was configured in proprietary Mikrotik Wireless Bridge mode to my main Mikrotik hAP ac. This permitted truly transparent bridging of the multiple endpoints presented by the Harting MICA without ugly hacks such as proxy-ARP – note that many Wireless Bridge products are incapable of this without the assistance of either WDS or a proprietary protocol. To power the hAP mini, a pair of USB power banks were used – a Xiaomi 10000mAh Pro power bank which is capable of simultaneous output and charging, and a Xiaomi 16000mAh power bank which acted as a “vehicle” to top up the 10000mAh unit.
The experimental setup looked like this, with the Bosch CISS sensor cable-tied to the top of an unused satellite-dish tripod and the Harting MICA sitting on a brick. All the supporting equipment were housed in zip-lock bags to provide some weather resistance. I’m fully aware that they are not industrial grade equipment, thus it may be a problem if anything fails, but thankfully, it did not.
During initial testing, a number of anomalies with the CISS data appeared, mostly being out-of-range spikes, which would appear almost at random in one channel or another, which were narrowed down to defects in the CISS Gateway container. After much troubleshooting and communication with Harting’s MICA support team, several test-versions were built and trialled. This delayed collection of data until a stable test-version of CISS Gateway was provided that no longer had any issue.
All the while, I had commenced collection of data, which was being sent via UDP over the bridge to my desktop for logging as well as via UDP to a Debian container on the MICA itself which logged the data to a file on the microSD card I had inserted into the MICA for local logging. I’m glad I also did the latter, as it turned out, Windows 10’s updates conspired to reboot my computer during the test period, and occasionally, the power banks in charge of the Wi-Fi bridge were not charged enough resulting in the network link being lost (but the containers continued to run).
But in all, after the issues with CISS Gateway were resolved, the unit was operating just fine and logging data “on its own” despite being subject to random battery connection and disconnection every day. I also installed the “aggregator” tool in NodeRED which allows for summaries of the incoming data (10-minute averages) to allow for plotting longer timeframes without overloading the browser or the MICA, along with a redesign of the dashboard to better meet my needs.
Eventually, I got tired of swapping out batteries and charging them manually. In my proposal, I did mention the potential for a solar-powered station, so I thought I’d quickly build one. It’s hacky, but it worked for over two weeks before I ended the testing.
Using an old Century PS12180 12V 18Ah sealed lead-acid battery previously purchased from element14, I hooked up a 12V 50W “no-name” Chinese solar panel I had laying about through a set of four 1N4004 diodes for reverse blocking and spade terminals to the battery lugs. I used some standard 0.5mm2 hook-up wire and 4mm crimp bullet connectors to make connection to the MC solar contacts on the rear (as I didn’t have the appropriate 4mm2 wire nor MC connectors and crimp tool). As I was unconcerned about overcharging the battery, I didn’t worry about having a charge controller – as I didn’t have one to hand, I would have to build one otherwise.
I found an old scrap female barrel connector and attached wires to it, terminating it in crimp spade terminals to be directly connected to the battery as well. Perhaps adding a fuse would be a good idea – but I had no fuse holders nor fuses on-hand, so I thought I’d do without. This would be connected into the diode isolator circuit with the laptop power-bank to allow for seamless switchover from power bank to solar-battery without taking the system offline. I’m glad to report this worked exactly as planned.
Finally, I took a buck converter module from my pile of parts and hooked that into the battery as well, to provide 5V output for the hAP mini wireless bridge through a USB-A female connector. This worked well, and the whole system became autonomous, requiring no attention to operate over the next few weeks (including the next experiment).
The logged data (just over 1GiB comprising of data-points at 1s intervals) was processed through my Python script to create a CSV file, then processed through MATLAB to be plotted. Around 16 days of continuous logged data was achieved – prior to the beginning of this recording, I was testing out other versions of CISS Gateway in the process of troubleshooting. After this, I was running a different experiment as I thought we had proved the viability of the MICA being outdoors unprotected. The dates are based on UTC time, with local time being +10 hours.
In all, the unit was exposed to cyclical changes in temperature between 3 - 38°C, relative humidities of 29-99% including direct rain and sunlight exposure without any failures. While this is not quite taxing to the full extent of the industrial temperature range, it is still a valid test that shows the MICA’s strengths in tolerating outdoor conditions, unregulated battery power and having the ability to locally log and serve the data over Ethernet.
Condition Monitoring of a Water Heater?
That being said, most people are going to be interested in using the unit for some condition monitoring, rather than monitoring the weather. This got me thinking – I have a gas tank hot water heater … I wonder how often it runs and for how long?
I guess that makes the perfect question for my MICA + CISS bundle to answer. By magnetically attaching the Bosch CISS to the heater outlet flue, we should register a temperature increase every time the heater fires up, remaining high as the heater continues to burn and ramping down as the heater shuts off. We can also get an idea what the temperature around the heater is like – representative of the heat loss from the hot water tank, as I suspect it is warm enough to allow for cockroaches to “over-winter” inside the outer case.
I immediately moved the whole set-up across the backyard to my hot water heater, met with several days of straight rain and cloudy weather.
Despite winter conditions normally reading lows of about 0-10C, it seems the temperature at the heater is higher for quite a lot of the time. The humidity was also fairly high, perhaps due to the rains, but also perhaps due to steam escaping from the heater. Spikes are clearly visible where the heater is running – not very often but usually in several bursts as we wash dishes and take showers.
A close-up of the spikes which seem to be spaced around an hour to a couple of hours apart in the even in high-use periods. I guess we perhaps oversized our heater, or its insulation is not bad.
Harting MICA Goes for a Swim!
While the Harting MICA survived admirably in the outdoors, unprotected from the mild Australian winter, the torture does not end there. With its IP67 rating, it should be able to survive up to 30 minutes immersion in water up to 1m deep. I thought it would be good to see whether we could test this out in some way … do not try this at home (or work, in a park, etc.)!
For those who would rather read about it rather than watch the video, I prepared a container of cold water of about 45cm depth to which the MICA was placed into.
To push the limits somewhat, the MICA was left in for a total of an hour and seven minutes, then taken out to bask in the winter sunlight.
Throughout the test, the MICA was streaming data from the CISS to my network and operated flawlessly. After taking it out and letting it stand for a few minutes, I disconnected all the plugs to assess for water ingress. The only port that had some water ingress was the USB port with the Bosch CISS sensor connected, which had about two or three drops inside the connector’s inner shell. This was not enough to interfere with operation; thus, I would still consider this a “pass” given that I was not testing directly to standard (i.e. lower depth but longer duration). As a result, it seems the Harting MICA really isn’t afraid of some water.
One of the key features of an “industrial” piece of equipment is its tolerance to environmental extremes. In order to test this, I ran a series of tests. I put the Harting MICA and Bosch CISS outside, unprotected in the mild Australian winter to serve as a weather station, connected to a Wi-Fi bridge, with the MICA being powered from a pair of Li-Ion laptop power banks through a diode isolator circuit. Data was being sent over the network as UDP to a desktop for logging, via UDP to the Debian container within the MICA for logging to microSD and via MQTT to NodeRED for plotting. The setup was exposed to daily battery swaps, temperatures between 3 - 38°C, relative humidities of 29-99% including direct rain and sunlight exposure without any failures.
The system was then advanced to a solar-powered system from an oversized 50W solar panel and a Century 12V/18Ah sealed lead-acid battery without shutting down the system. The system survived the step change in voltage from 19V to 12V and continued to operate, logging for a total of 16 continuous days before being taken offline for a change of experiment. The experiment would have run longer if not for the fact that a whole week was taken up in debugging various CISS Gateway package issues with Harting, resulting in spiky and incorrect data that was discarded.
In these tests, the Harting MICA proved itself to be robust to loss of network connectivity, exposure to unregulated battery and solar voltages with occasional jumps due to switching power sources and having the ability to locally record data to microSD card, thus overcoming data losses due to network outages or computer restarts (thanks to Windows 10).
As such a unit would be commonly used for condition monitoring, I tried to answer a question I have always had – “how often does my gas fuelled tank water heater run, and how long does it run for?” By attaching the CISS to the flue of the heater, it was possible to answer this question.
Finally, I thought it would be good to test the IP67 rating and perhaps push it slightly, thus I let the MICA have a swim in a container of cold water of about 45cm depth for over an hour. The unit functioned flawlessly throughout, with inspection afterward showing two or three drops of water had entered on the CISS USB cable port only. I would consider this a pass, as testing was not done to standards (lower depth, but longer duration) and it did not interfere with operation. As a result, we can conclude that the MICA isn’t afraid of a bit of water.
This post is a part of the Harting MICA CISS Complete IIoT Starter Kit RoadTest
jsonscripts.zip 2.0 KB