Brother-in-law' wine cellar temperature and humidity supervision

Covid-19 lockdown extension…and some unfortunate spare time

Intro

C++ | FreeRTOS | Javascript | Typescript | NodeJS | Angular v11 | JAVA&SWING | Rest-API | Debian | Apache | PostgreSQL | Arduino | Seeed XIAO | I2C | Serial Peripheral Interface | UART | TI CC1101 868Mhz transceiver | HTU21D Humidity&Temperature sensor | ATMEL SAMD21G18A | Expressif ESP8266 WiFi module | MS Visual Studio Code | PlatformIO | WebUSB | Sketchup | 3D printing

Genesys

The COVID-19 crisis has drained its share of difficulties and even tragedies.

The multiple lockdowns will have repercussions for years to come, even if they were also (and this is the only positive point) many opportunities to enjoy the present time: sharing with one’s family, talking, reading, cooking, sorting, tidying, etc … and tinkering. The DIY stores are the big winners (the term is probably not suitable) of this period of unrest.

For my part, I took the opportunity to complete an already well advanced project: see The Ultimate Raspberry Meeting-room project. For others, like my brother-in-law – even if he’s a lucky young retiree – these moments of free time allowed him to finish the refurbishment of his wine cellar.

Also, when he finished the masonry work, he became interested in the health of his bottles. A wine kept at constant and adapted temperature and humidity ranges is a prerequisite for lovers of Grands-Crus. We share this passion.

The idea of ​​monitoring the conservation environment in real time and via an App, naturally emerged. I offered him to experiment with a very famous product – Netatmo – but it quickly became apparent that both the HF and Wifi modules did not allow the measurements to be transmitted due to the depth of the cellar and the thickness of the walls. Also, the 2 Netatmo modules returned to the suppliers.

What to do ? For reasons I would not elaborate on – but just mentioning this is clear enough – I still had a lot of free time. Also, I started to think about a solution.

The WiFi frequency band and the range of internet box were simply not suited to the need, but other frequency bands seemed to me to be able to fulfill the mission. A first POC allowed me to ensure that an HF 868MHZ module could reach the requirement. The use of GFSK (Gaussian Frequency-Shift Keying) modulation has many advantages: reduction in the power of the sideband – therefore at equivalent power a greater range, lower spectral width therefore less interferences. And transmission power stronger in 868MHZ than in 433MHZ.

Transposed from my apartment to my brother-in-law’s cellar, the results of the first models turned out to be very conclusive.

Concept

A global and coherent approach should now be considered, e.g. Temperatures&Humidity into the wine cellar, the attic, an outbuilding, into the living room, bedrooms, etc … keeping in mind the idea of consulting the measurements on a mobile App regardless the user location.

Therefore is seemed logical to consider storing the measurements into the Cloud and consequently developing an API to populate and consult the database.

Part #1 of the project focuses on devices, API server, and web application. Obviously, the web application is designed mainly to fit mobile screens.

Part#2 will concern the development of a dedicated mobile App. I already have in mind the use of Flutter which would avoid developing both Apps one for Android and another for IOS. I like this challenge.

Technical choices

The choices of the Arduino library, the Seeed XIAO module and so on are precisely explained into the following pages. To summarize, the main concerns were:

  1. a limited overall cost
  2. a reduced form-factor
  3. components&modules simple to supply (from your favorite seller)
  4. proven technologies but still current
  5. having fun and enjoying

Let’s have a taste…

Site map

The presentation of the following pages corresponds to the different stages and milestones that I followed during this Agile development

  1. Hardware: choices and modules connectings, including PCB.
  2. Devices: embedded developement tools and software.
  3. API: server environnement, dependencies and software 
  4. Web-App: server environnement, dependencies and software.
  5. Settings tools: JAVA-App and a Web-App (came later) to set devices settings, environnement and software.
  6. Case: devices housing, design and 3D printing

Let’s start !

0 Comments