This fall, Earthling partnered with local product development firm bb7 to produce an internet-connected beehive we call WiHive. I know what you’re thinking, “what do the bees have in their Netflix queue?” but that’s not quite what we’re doing here. WiHive embeds hardware inside the hive that measures things like temperature and humidity both inside and outside the hive, sounds in the hive, and the amount of light shining on the hive and uploads it wirelessly so that you can access it from anywhere. This not only lets the beekeepers monitor the health of their hive without disturbing the bees (especially helpful during a Wisconsin winter) but it also allows for looking at trends and correlations between the data points. For example, data can be used to examine the theory that the temperature in the hive influences the sounds bees make. For this project, our partners at bb7 provided the hardware and the bees themselves and we supplied the software to process the data and access it online.
This is just one example of the quickly expanding Internet of Things where physical objects that previously might not have had an electronic component are being connected to the web for remote monitoring and/or control. The Earthlings are really excited about IoT and we are thrilled to have worked on this and a few other IoT projects that are currently in progress. Tying the physical and digital world together in new ways is interesting partly because of the special challenges it presents such as limitations of hardware you can use in the available space, power management for devices that aren’t plugged in, and occasionally unreliable wireless data connections.
We got to tackle many of these challenges on the WiHive. The sensors are controlled by a small solar-powered board and the wifi transmission takes too much juice to stream around 10 data points per second plus continuous audio. So to work around, the decision was made to store up data for a time then send that data in one bulk message to cloud storage in S3. Since the board has limited storage capacity, there needs to be a balance between not transmitting too often for power savings while also not running out of memory. We found the sweet spot at one upload per minute. We set up a Lambda function in AWS to watch for those uploads and automatically process each one. This process parses the data file and stores each data point in our time-series database InfluxDB. From there, our web application running Node, React, and Redux displays nearly live data (there is an offset of a couple of minutes to account for the batched uploads) as well as charted data for looking at trends.
Altogether, this was a really fun project. It makes us even more excited to get further into the Internet of Things and explore blurring the lines between the physical and digital worlds.