The radio-sensor is designed to work with the Weather Monitor BIM32. It can work indoors or outdoors. Powered by three AAAA batteries (LR61). Also, the sensor can be powered from a Li-Ion battery, but it is preferable to use batteries, since batteries are not afraid of outdoor frost.
Currently the radio-sensor supports the following sensors:
- BME280 - temperature, humidity and atmospheric pressure sensor
- SHT21 - temperature and humidity sensor
- DS18B20 - temperature sensor (four such sensors can be connected at once)
- MAX44009 - ambient light sensor
- BH1750 - ambient light sensor
- PZEM-004t - electricity meter (voltage, current, power, energy consumption, network frequency)
- SenseAir S8 - CO2 sensor
Of course, you don’t need to connect everything from this list, but only those sensors that you need.
As an option, you can add a 4-digit, 7-segment display to the TM1637. Only the temperature can be displayed on the display, from only one temperature sensor. This is an experimental feature, I may remove it in the future.
The radio sensor is based on the Atmega328p microcontroller and the HC-12 radio module. This radio module operates at a frequency from 433.4 to 473.0 MHz and promises an information transmission range of up to 1800 meters.
The Radio-sensor itself can be assembled on the Arduino Nano module, or any other module built on the atmega328p. In this case, the circuit, assembly and flashing of the Radio-sensor will be as simple as possible, but in this form you can forget about the autonomous power supply of the sensor.
Or you can go a more complicated way, assemble the Radio-sensor from SMD-components and flash it with a programmer. In this case, the Radio-sensor will be able to live from three AA batteries for almost a year.
To flash the Radio-sensor you need to open the project in the Arduino IDE, go to the config.h tab and uncomment (remove the characters // at the beginning of the line) the necessary sensors. If you have 2 radio-sensors - at the end of this file in the line const int SENSOR_NUMBER = 0; for the first sensor leave the value 0, and for the second change 0 to 1.
If your sensor is built on Arduino module then just flash it as usual.
And if on SMD-components - select in the Arduino IDE Tools -> Programmer -> Your type of programmer
Then click on the menu Sketch -> Download via programmer
If Ardino does not have your programmer, select Sketch -> Export binary file from the menu.
After compilation, two .hex files will appear in the project folder, you need the BIM32_Radio-sensor.ino.eightanaloginputs.hex one. And you need to flash it into atmega328p using a programmer. Set the fuses as in the screenshot below.
The case is designed for three AAAA (or LR61) batteries. Why them? They are quite small, but quite capacious. You can, of course, use any others, but the case is designed for these. AAAA batteries are not sold in any store and their cost is noticeably higher than AAA or AA. Therefore, it is cheaper and easier to get such batteries from a 9-volt battery 6LR61, it contains as many as six pieces.
Next, we will need a fully assembled and tested PCB
Then, you need to 3D print a battery holder. It is advisable to print it with TPU material, it is like silicone, it can be bent, it is springy and does not break. I made the contacts for the batteries from a wire. There are already special holes for this.
All other parts of the case are printed with ASA material.
Next you need to install insert knurled nuts brass hotmelt
Next, I hope, from the photos it will be clear how to assembly