Pro Trinket and RF24L01 Transceiver RF Module

In this project, we took a Arduino Pro Trinket, RF24L01 2.4G Transceiver RF module, MCP9808 Temperature sensor, and a voltage regulator. Our module broadcasts temperature values wirelessly over the 2.4GHz band. This data is received by another RF module which is connected to a workstation via a USB connection. Running on this workstation is a custom application which takes the data and allows us to manage it. At this time, the app forwards the data off to a SQL server, which runs off a Raspberry Pi. Also running on the Pi is a web server. Connecting to the web page, python code pulls data out of the SQL database and displays the temperature values via graphs. Currently there are five zones being monitored at 5 minute intervals. This process has been running for just over 9 months so far. Eventually this data can be pooled with the home power meter readings.


This is the proto-board with the basic components soldered in place. In order to be able to reuse our components, sockets were added. Most of our components run off 5v, however our RF module requires 3.3 volts. A voltage regulator was added. We have our 5-12 volt rails on one side, and our 3.3 volt rails on the other.



Here we see all the components finally in place. While developing the code, I came across a really good timer module. Making use of this, I added some LED’s that trigger off 1, 10, and 60 second intervals. Nice thing about the lights, we can see that the board is still functioning.



Here we can see what the back of the proto-board looks like. Components were arranged in order to help keep the wiring better organized.



With the proto-boards, all the columns are connected together. In order to add multiple components to the same row and keep them independent/isolated from each other, the trace lines had to be cut.



This is a sample packet that is passed from the RF module.



Here we can see versions of the module. The one at the top is the finished version, while the one on the bottom is the test board that was used to test everything before making things permanent. The bottom version also contains the setup that we can use when running off a battery. In this setup, the top board is sending its data via RF  to the bottom board.



The following is a windows application that I put together. The application currently is limited to only receive data from up to 6 separate RF modules. In the design, there is a master RF module which takes readings and passes them to the workstation via a USB connection. This RF module (Master) is also programmed to look for any other RF modules (Child) and pass its data on to the workstation. We can handle up to 128 separate RF modules sending information. Our limitation right now is the application.

Here we can see the different zones we are getting data for. We receive data from the different modules once every minute. Our application will actually push all the data it receives once every 5 minutes to a SQL database which runs on a Raspberry Pi. The application also has the ability to send SMS notifications to a pre-determined phone number. Currently its setup to send any error notifications that may occur.



On our Raspberry Pi, we also run a small web server. The web code there queries our SQL server and pulls back the data, displaying each zone as a 6 hour and 24 hour graph.


Tags: , , ,

Comments are closed.