TinySensor aims to provide a customisable firmware and a hardware design for low-power environment sensors using wireless communication.
In the complete system, data is processed by a Domoticz/RFlink couple. Data decoding is also tested using RTL_433 decoder. Large part of the code, especially wireless encoders, are unit-tested.
- ATTiny84a
- ATMega328p (ongoing)
- I2C sensors (eg. Bosch BME/BMP280)
- Analog sensors (eg. LM35)
- OneWire sensors (eg. Dallas DS18S20)
- "one pin" emmiters. Tested with low-cost 433Mhz emmitters.
- Oregon(c) for environment measurement transmission
- X10(c) for (optional) battery level transmission
- Lacrosse Technology for enviroment measurement transmission
Various libraries are used here, and some where tweaked to remove any Arduino dependencies, making the whole firmware more compact:
- Sparkfun BME280 sensor library with all SPI related code removed
- Tiny I2C of David Johnson-Davies
- Unity test harness from Throw The Switch, for all testing code
- DS18B20 library of Jacek Wieczorek
A web application wrapped in a Docker container allow to build the firmware in a sealed environment. NOTE: It is at his early stage!
TinySensor build environment now uses PlatformIO.
TinySensor can use combination of sensors, the limit comes from amount of flash memory on the ATTiny.
OneWire sensor, cheap and efficient.
The BMP280 and the BME280 share the same library, but the BME provide humidity sensing, and thus use more memory.
Analog sensor can be used for LM35 temperature sensor, or LDR.
A 0v ground reference is needed. Solder pads 2 and 3 of J4, (rear side) as well JP3.
In the case of a -CAZ version, temperature below 0 can be measured. To allow this, two 1N914 diodes must be placed to put the sensor reference below 0v. This setup is documented in the LM35 datasheet. On TinySensor board v2.1 and up, this can be implemented by:
- solding D2 and D3 diodes *solding R4 with a value of 18k
- solding JP3 to bypass C3 capacitor
- solding pads 1 and 2 of J4 (rear side) to set ground reference.
You can add a filter capacitor C3 to avoid swing if the wire is long. In this case, do not solder JP3. See datasheet for details.
Use the right value for R4 (should match the used LDR) and solder JP3 and, on JP4, middle and 3 pads. This way, there will be no RC filter (no cap because of J3) and Vss analog reference thanks of JP4.