Hello everyone and welcome. In this instructable, we'll build a weather station that not only measures temperature, pressure, humidity and air quality, but it also fits in your pocket, so you can measure everywhere you go! It is also very inexpensive to make (around 35$), so it is really a cool project for everyone! If you are ready, we can begin.
The sensor used is a BME680 from Bosch. It is a small sensor with tons of functionality. The controller is an Arduino nano, because of its size. To display the readings, I decided to use an OLED display. These have relatively low power consumption and are small, yet easily readable.
Step 1: Components
To make this project, you do not need a lot of components. Everything you need is listed here:
BME680 - this is the sensor for measuring temperature, humidity, pressure, altitude and air quality
OLED - this is the screen that the readings are going to be displayed on
SWITCH - a sliding switch that will be used to turn the station on and off
LITHIUM BATTERY (not linked because I got mine at a local store) - a rechargeable battery that is going to power the station
CHARGER MODULE - this is a module used to charge the battery
WIRES - used to connect the components together
ARDUINO NANO - the brains of the operation
Step 2: Tools
In the last step we gathered all the electronic components required to make the weather station. We also need some basic tools to continue. All you need is listed here:
SOLDERING IRON - to solder the components together
ARDUINO IDE - a software used to program the Arduino
3D PRINTER (optional) - to make the case, but if you don't have one, you can just get a plastic box and cut some holes in it.
HOT GLUE GUN - to secure the components inside the case
Step 3: The Circuit
Now that we have everything needed, the fun part can begin.
Since both our BME680 and 64X128 OLED use I²C, the connection is relatively simple.
Just connect the power (VCC) to the 3,3V or 5V pin and the ground (GND) to the GND pin. It is better if your Arduino doesn't actually have the pins, but rather just holes. This way you can solder wires directly to it.
Now your display and sensor have power, but there is no way to communicate with them. To do this, you must connect them to the A4 and A5 pins located under analog in. It is just two wires thanks to I²C. Connect the SDA to A4 and SCL (sometimes marked as SCK) to A5.
IMPORTANT! Cut your wires as short as you can (and as short as the electronics allow) to prevent a mess that you won't be able to fit into the case!
Step 4: Battery
Now that we have all the components connected, it is time to connect the battery to the circuit.
Solder the + and − of the battery to the B+ and B− pads of the charger module.
Then, simply connect the OUT+ and OUT− to the Arduino's VIN and GND pins. Make sure you add the switch to the + cable.
It is a good idea to add heatshrinks to all the soldered wires. This can prevent short circuits and protect the wires.
Step 5: Script
After completing the circuit, it is time to do some coding. Well, time for me, you can just copy the script here:
This script reads the sensor data and prints them on the OLED.
It is useful to run an I²C locator to make sure your components are connected correctly. You can get it here.
Step 6: Case
Now that you tested out the script and the weather station is working, it is time to put it in a case. I designed this simple enclosure in Fusion 360, but feel free to make your own if you wish.
Just 3D print it and put the stuff inside. I used hot glue to secure the components inside, but anything will work.
Also, be very patient when putting the stuff inside, as it is a small case and the things barely fit in it!
Step 7: Done!
Look at you! You now have a tiny weather station that you can take anywhere, and making it was (relatively) easy and (hopefully) fun. If you liked this Instructable, be sure to like it! And as always, if you have any questions, I will do my best to answer them in the comments.
I'll see you in my next Instructable, bye!