This embedded system measures temperature and humidity and outputs the data on an LCD. The BME280 sensor can also do pressure but I didn’t implement it because the MCU had no more space available. The whole project can be found here; I’ve also included datasheets for the MCU, sensor and LCD.
Development was done on FreeBSD using the workflow I describe here. If you’re using Microchip’s own tools, you’ll have to make some small changes to the code, but nothing too extreme.
Components
- Microchip PIC16F877A-I/P microcontroller.
- Adafruit BME280 temperature, humidity and pressure sensor.
- 16x2 LCD.
- 1x 16MHz crystal oscillator.
- 2x 10kΩ resistor.
- 2x 300Ω resistor.
- 1x 10kΩ potentiometer.
- 2x 22pF ceramic capacitor.
- 2x LED.
- 2x push-button.
- Breadboard and wires.
- 3x AAA batteries (4.5V total) or a 9V battery with a 5V voltage divider.
Safe temperature range
Component | Operating temperature |
---|---|
PIC16F877A | -40°C - 85°C |
BME280 | -40°C - 85°C |
LCD | -20°C - 70°C |
So, it’s best for the system to operate in the -20°C to 70°C range.
Schematic
You can also get the PDF version.