Greetings to all! Today I want to tell you about one of my projects, this is a soil moisture sensor with a small screen on electronic ink, the sensor works on a battery, can send data over the air to some of the Smart Home systems. This project is a further development of my other DIY project of the soil moisture sensor (link about the beginning, link about the continuation).

In this project, as in previous ones, the 555th timer is used to measure moisture in the soil. Since this project does not use a ready-made Chinese sensor with Aliexpress, for this project I chose the LMC555CMX CMOS timer. Stable operation at low voltages from 1.5V is declared, super low consumption in the region of 150mkA, frequency 3 MHz (datasheet). The foot timer is compatible with NE555 and other counterparts.

To display information on the sensor itself, I used an e-ink display with a diagonal of 1.02 inches, which I had previously used in my other project of a miniature temperature and humidity sensor.

Display characteristics:

Two versions of the boards were developed for two radio modules from different manufacturers. The radio modules have been chosen in such a way as to completely cover the entire nRF52 range. The MINEW MS50SFA module has three modifications on which the nRF52810, nRF52811 and nRF52832 are installed. And the second module is EBYTE E73-2G4M08S1, which has two modifications C and E (in fact, there are already three, in the third, instead of a ceramic antenna, an external one is used) on which nRF52840 and nRF52833 are installed.

Why are there so many nRFs? I just wanted to minimize the disadvantages when using sensors in various conditions. For example, if the sensor is located near the gateway, then there will be enough radio transmitter power of 4dBm, while we get a very attractive consumption of the device when it is in sleep mode (which is most of the time), about 2 μA. If the gateway is located at a distance, then it will be possible to use sensors on which radio modules are installed with nRF52833 or nRF52840, which have a maximum radio transmission power of 8dBm. Well, in dreams there are plans for Traed and Zigbee, and this requires a lot of space, which is only in nRF52833 and nRF52840.

The production of pcb was ordered to China, due to the dimensions of the main board with a humidity sensor, the cost of the order was higher, since the board did not fit into 10x10cm, and these are the maximum dimensions that can be made for $ 2. The second display board naturally fit into the two dollar terms.

The encloser  of the device was printed on an FDM printer with PLA filament. After printing, the body was sanded and polished.

Device operation. 

The sensor can send data to the Smart Home system using the MySensor protocol (over ESB), this is an open source home automation project. The sensor can also work in offline mode as a standalone device.
The sensor makes measurements of soil moisture once an hour (by default). When the moisture level changes in relation to the previous measurement by 1%, the device sends data to the Smart Home system and displays a new value on the device screen. Also, during the measurement of the soil moisture level, the temperature is measured by the temperature sensor built into the MK, when the temperature changes by 1°C relative to the previous measurement, data is also sent and information is displayed on the display. Once every 12 hours (by default), the battery voltage is measured, the data is converted into percentages, and information is sent and displayed on the screen. Also, when sending data about the battery, the level of the singal is calculated. When the soil moisture level is low (below 45%), an icon is displayed on the device screen about the need to water.

The device can be configured by external commands sent through the interface of the Smart Home controller. External commands can change the reading interval of soil moisture and temperature sensors from 1 hour to 24 hours in one hour increments. You can change the interval for reading and sending the battery charge level, from 1 hour to 3 days in 1 hour increments. You can also reset the device to its original settings with an external command, the device memory is completely cleared, after the device reboots and tries to register on the network as a new device.

The device has a "menu" button, through the menu you can invert the image on the screen (black / white), call a presentation (transfer parameters to the UD) of the device and the sensors available to it, manually turn on the network search mode one-time (if the network is lost, bypassing the standard automatic search with an interval of 1 hour), calling the device configuration mode by external commands, resetting the device to the initial settings.

Device diagram

Short Videos

Thanks for attention.