Home Hardware 10 sensors and modules for microcontroller development that cost under $2

10 sensors and modules for microcontroller development that cost under $2

by iainhendry

In this article we look at 10 sensors and modules that you can use with an Arduino and various other micro controllers and development boards like the ESP32, ESP8266 and the Raspberry Pi that cost under $2

We will have descriptions of the sensors and modules, links to code examples for them and also 2 different links where you can buy the parts. We prefer Aliexpress because after much research they easily beat other online retailers

All of the sensors and modules we have personally tested, so lets get started with the list

BMP180 sensor

The BMP180 is the new digital barometric pressure sensor of Bosch
Sensortec, with a very high performance, which enables applications in
advanced mobile devices, such as smartphones, tablet PCs and sports
devices. It follows the BMP085 and brings many improvements, like the
smaller size and the expansion of digital interfaces.

The ultra-low power consumption down to 3 μA makes the BMP180 the
leader in power saving for your mobile devices. BMP180 is also
distinguished by its very stable behavior (performance) with regard to
the independency of the supply voltage.

This is a an easy to use sensor with several libraries available, its
easy to connect up and the readings are pretty reliable. You can pick
these up for under $1


barometric pressure sensor example for Arduino

ESP32 and BMP180 sensor example
mini bmp180 sensor example


Digital Barometric Pressure Sensor Board Module
– $0.98
Digital Barometric Pressure Sensor Board Module
– $0.58

HC-SR04 Ultrasonic Module

HC-SR04 consists of ultrasonic transmitter, receiver, and control
circuit. When trigged it sends out a series of 40KHz ultrasonic pulses
and receives echo from an object. The distance between the unit and the
object is calculated by measuring the traveling time of sound and
output it as the width of a TTL pulse.

It runs off 5v, it can measure distances of between 2cm~300cm at a
resolution of 0.3 cm. Fairly easy to work with module that is good for
basic distance measurement although there are better options out there
that cost a little bit more money.


Wemos Mini and HC-SR04 ultrasonic sensor
Raspberry Pi and HC-SR04 Ultrasonic Range Sensor
HC-SR04 Ultrasonic Sensor example for Arduino


Ultrasonic Module Distance Measuring Transducer Sensor
– $0.98
Ultrasonic Module Distance Measuring Sonar Sensor
– $0.68

MAX7219 8-Digit LED Display

The key to this particular module is the MAX7219, in this example it
used in conjunction with a 8 digit LED display

The MAX7219/MAX7221 are compact, serial input/output common-cathode
display drivers that interface microprocessors (µPs) to 7-segment
numeric LED displays of up to 8 digits, bar-graph displays, or 64
individual LEDs. Included on-chip are a BCD code-B decoder, multiplex
scan circuitry, segment and digit drivers, and an 8×8 static RAM that
stores each digit. Only one external resistor is required to set the
segment current for all LEDs. The MAX7221 is compatible with SPI™,
QSPI™, and MICROWIRE™, and has slew-rate-limited segment drivers to
reduce EMI.

A convenient 4-wire serial interface connects to all common µPs.
Individual digits may be addressed and updated without rewriting the
entire display. The MAX7219/MAX7221 also allow the user to select
code-B decoding or no-decode for each digit.

The devices include a 150µA low-power shutdown mode, analog and digital
brightness control, a scan-limit register that allows the user to
display from 1 to 8 digits, and a test mode that forces all LEDs on.

Again easy to use, libraries are available and its a lowish cost way of
displaying visual output in your project


Arduino MAX7219 7 segment display module example
ESP32 and Max7219 8×8 LED matrix example
Raspberry Pi and Max7219 7 segment display


8-Digit LED Display
– $1.45

8-Digit 7 Segment Digital LED Display
– $1.47

MFRC-522 RFID module

A low cost module that allows you to experiment with reading and
writing to RFID cards, usually comes with a test card and a keyfob. As
the picture below

Basic on the Philips MFRC522 Chip
Supported card types: Mifare1 S50, Mifare1 S70, MIFARE Ultralight,
Mifare Pro, and MIFARE DESFire
Power Voltage : 3.3V,Operating frequency: 13.56MHz
Data transfer rate: Maximum 10Mbit/s
Read Range: 0 ~ 35mm (mifare1 card), Module Interface: SP


MFRC522 RFID Reader with Arduino example
ESP32 and RFID-RC522 module example
ESP8266 and RFID-RC522 module example


RFID module
– $1.25

Mfrc522 rfid RF Module
– $0.95

PCF8563 module

PCF8563 has a variety of alarm function, timer function, clock output
function and interrupt output function to complete a variety of complex
timing services, and even for the microcontroller to provide watchdog
function. It is a cost-effective clock chip, which has been widely used
in the field of electric meters, water meters, gas meters, telephones,
fax machines, portable instruments and battery powered instruments and


MFRC522 RFID Reader with Arduino example
ESP32 and RFID-RC522 module example
ESP8266 and RFID-RC522 module example


Real Time Clock Module I2C Interface 3.3V
– $0.62

Real Time Clock Module Board For Arduino
– $0.63

DS3231 Clock Module

The DS3231 is a low-cost, extremely accurate I²C real-time clock (RTC)
with an integrated temperature-compensated crystal oscillator (TCXO)
and crystal. The device incorporates a battery input, and maintains
accurate timekeeping when main power to the device is interrupted. The
integration of the crystal resonator enhances the long-term accuracy of
the device as well as reduces the piece-part count in a manufacturing
line. The DS3231 is available in commercial and industrial temperature
ranges, and is offered in a 16-pin, 300-mil SO package.

The RTC maintains seconds, minutes, hours, day, date, month, and year
information. The date at the end of the month is automatically adjusted
for months with fewer than 31 days, including corrections for leap
year. The clock operates in either the 24-hour or 12-hour format with
an active-low AM/PM indicator. Two programmable time-of-day alarms and
a programmable square-wave output are provided. Address and data are
transferred serially through an I²C bidirectional bus.


Arduino and DS3231 RTC example
ESP32 and DS3231 RTC example
Wemos and DS3231 RTC example


AT24C32 IIC Module Precision Clock Module
– $1.12

AT24C32 IIC Module Precision Clock Module for Arduino
– $1.00

MAX44009 ambient light sensor module

The MAX44009 ambient light sensor features an I²C digital output that
is ideal for a number of portable applications such as smartphones,
notebooks, and industrial sensors. At less than 1µA operating current,
it is the lowest power ambient light sensor in the industry and
features an ultra-wide 22-bit dynamic range from 0.045 lux to 188,000

Low-light operation allows easy operation in dark-glass applications.

The on-chip photodiode’s spectral response is optimized to mimic the
human eye’s perception of ambient light and incorporates IR and UV
blocking capability. The adaptive gain block automatically selects the
correct lux range to optimize the counts/lux.

The IC is designed to operate from a 1.7V to 3.6V supply voltage range
and consumes only 0.65µA in full operation.


Wemos and MAX44009 ambient light sensor example
Raspberry Pi and MAX44009 ambient light sensor example
Arduino and MAX44009 ambient light sensor example


MAX44009 Ambient Light Sensor Module for Arduino
– $1.55

MAX44009 Ambient Light Sensor Module
– $1.65

MMA7660 module

The MMA7660FC is a digital output I²C, very low-power, low-profile
capacitive micro-machined accelerometer featuring a low pass filter,
compensation for zero-g offset and gain errors and conversion to
six-bit digital values at a user configurable output data rate. The
device can be used for sensor data changes, product orientation and
gesture detection through an interrupt pin (INT)

Low-power current consumption
Low-voltage operation: 2.4 – 3.6-volts
3-axis ±1.5 g MEMS sensor and CMOS interface controller built into one
Configurable output data rate from one to 120 samples a second
Auto wake/sleep feature for low-power consumption
Tilt orientation detection for portrait/landscape capability


Arduino and MMA7660 accelerometer
ESP8266 and MMA7660 accelerometer example
MMA7660FC accelerometer and Raspberry pi example


Triaxial Acceleration Sensor Module For Arduino
– $1.51

Triaxial Acceleration Sensor Module For Arduino
– $1.79

ADS1115 module

The ADS1115 devices is a precision, low-power, 16-bit, I2C-compatible,
analog-to-digital converters (ADCs)    offered in an
ultra-small, leadless, X2QFN-10 package, and a
VSSOP-10    package. The ADS111x devices incorporate a
low-drift voltage reference and an    oscillator. The
ADS1114 and ADS1115 also incorporate a programmable gain amplifier
(PGA) and a digital    comparator. These features, along
with a wide operating supply range, make the    ADS111x
well suited for power- and space-constrained, sensor
measurement    applications.

The ADS111x perform conversions at data rates up to 860 samples
per    second (SPS). The PGA offers input ranges from
±256 mV to ±6.144 V, allowing precise large- and
small-signal measurements. The ADS1115 features an
input    multiplexer (MUX) that allows two differential
or four single-ended input measurements. Use the
digital comparator in the ADS1114 and ADS1115 for under- and
overvoltage detection.

The ADS111x operate in either continuous-conversion mode
or    single-shot mode. The devices are automatically
powered down after one conversion in single-shot
mode; therefore, power consumption is significantly reduced during idle


ADS1115 analog-to-digital converter and Arduino
ADS1115 analog-to-digital converter and ESP32
ADS1115 analog-to-digital converter and Raspberry Pi


Bit I2C ADS1115 Module
– $1.41

Module for Arduino
– $1.75

LM75 module

The LM75A is an industry-standard digital temperature sensor with an
integrated sigma-delta analog-to-digital converter (ADC) and I2C
interface. The LM75A provides 9-bit digital temperature readings with
an accuracy of ±2°C from –25°C to 100°C and ±3°C over –55°C to 125°C.

The LM75A operates with a single supply from 2.7 V to 5.5 V.
Communication is accomplished over a 2-wire interface which operates up
to 400 kHz. The LM75A has three address pins, allowing up to eight
LM75A devices to operate on the same 2-wire bus. The LM75A has a
dedicated overtemperature output (O.S.) with programmable limit and
hysteresis. This output has programmable fault tolerance, which lets
the user to define the number of consecutive error conditions that must
occur before O.S. is activated.


Arduino Uno and LM75 temperature sensor example
ESP8266 and LM75 temperature sensor example
Raspberry Pi and LM75 temperature sensor example
STM32 Nucleo and LM75 temperature sensor example


Temperature Sensor I2C Interface Temperature Module
– $0.83

Temperature Sensor Module
– $0.98

You may also like

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More