Open Source Wireless Environmental Sensor HW, Part 1: Requirements

Suru Dissanaike
HiMinds
Published in
4 min readSep 19, 2019

Project description:

The purpose of HiMinds wireless environmental sensor project is to develop a rechargeable battery-operated wireless sensor that can measure:

  • Temperature with ±1.0°C accuracy
  • Barometric pressure with 1 hPa absolute accuracy
  • Humidity with ±3% accuracy

It will have a backend that collects the measurements and it will have a progressive web app that visualizes the measurements as beautiful as a native app.

Doesn’t that sound pretty awesome?

Both the hardware design files and the source code are completely open-source. We are utilizing the fantastic contribution from the open-source community and building upon that work. The design is inspired by products such as:

  • Olimex ESP32-DevKit-LiPo
  • Olimex MOD-BME280
  • SparkFun ESP32 Thing plus
  • SparkFun Atmospheric Sensor Breakout — BME280, Humidity + Barometric Pressure + Temperature Sensor Breakout
  • SparkFun Battery Babysitter, LiPo Battery Manager
  • Adafruit HUZZAH32
  • Adafruit BME280 I2C or SPI Temperature Humidity Pressure Sensor
Some of the evaluation board that we tested during the pre-study.

What do we mean when we say that everything is open source?

It means that the software is going to be published on GitHub as always and is part of our Himinds boosting innovation project.

And the hardware?

The goal is to certify the hardware in accordance with Open Source Hardware Association requirements and be part of the “CERTIFIED OPEN SOURCE HARDWARE PROJECTS” list.

©Open Source Hardware Association

Our prestudy

We have used the ESP32 in several of our projects and the possibility to reuse past work was just too compelling. We knew that reusing past work would help us to avoid platform code (OTA, setup, config, etc.) and enable us to focus on the application.

During our prestudy, we tested several different ESP32 development boards and in the end, we chose an Olimex based design because:

  • Design is available in KiCAD format
  • Built-in USB-Serial programmer works both on Mac and Linux
  • Pin compatible with Espressif ESP32-CoreBoard
  • They had a reference design for the BME280
OLIMEX evaluation board for ESP32

We just needed to add the BQ27441-G1 fuel gauge to get the battery level; so we basically put the two designs from Olimex on the same PCB and added 2 LEDs and 1 push button and the BQ27441-G1. We also decided that we want to keep the prototyping area that is provided by the eval board so that we can easily add stuff such as a new sensor.

A custom plastic enclosure is quite expensive to develop but there is a lot of off-the-shelf enclosure available for electronics. You can spend days looking for a nice enclosure…

At some point, we discussed 3D-printing our enclosure but we do not have the skillset for creating the enclosure. I am confident that we will revisit this idea in the future.

One of the enclosures that we found that we really liked was the CBRS01VWH from CAMDENBOSS. The people at CAMDENBOSS are super helpful so it was a super easy decision to chose their enclosure. They have a lot of distributors so it is easy to purchase. The PCB has been designed to fit into the CBRS01VWH from CAMDENBOSS.

CBRS01VWH (shown from both sides) and the OLIMEX ESP32 Evalboard

If you show the enclosure some love it can look quite nice. You can spray-paint the enclosure and get a finish similar to the picture below.

Picture courtesy of CAMDENBOSS

If you want to buy the enclosure you can find a distributor here.

Product details

Product details about the wireless environmental sensor:

  • Measures Temperature, Barometric pressure and Humidity
  • USB-to-Serial converter,
  • Automatic bootloader reset,
  • WiFi for connectivity(2.4 GHz)
  • Lithium Ion/Polymer charger with battery level via I2C
  • Uses MQTT to communicate with a back-end
  • 2 user programmable LEDs (red and green)
  • Charge LED
  • 1 user programmable push buttons
  • 1 reset button
  • Micro USB connector
  • Battery connector runs on a typical 3.7V Lithium-Ion Polymer Battery
  • Battery monitor circuit that measures battery level
  • Easy access to different ESP32 GPIO pins

Thank you for reading! Take care and hope to see you soon. 🙏🏽

This article is a living document please reach out to me if you want to contribute or see anything inaccurate here. This article is part of our “Boosting Innovation” project.

--

--

HiMinds
HiMinds

Published in HiMinds

If you’re an engineer at heart and love being a nerd, then we will understand you. You will find a home here; welcome!

Suru Dissanaike
Suru Dissanaike

Written by Suru Dissanaike

IoT nerd with a passion for Test Automation, Embedded Linux and DevOps. https://www.linkedin.com/in/dissanaike/