Have you ever wondered what you can do with your unused twisted-pair telephone wire running throughout your house? Well, how about using it as the transport medium for a CAN bus network of environmental sensors? This project, which I dubbed PhoneCAN, is a relatively easy project which uses Adafruit hardware and CiruitPython. My setup uses four CAN nodes:
- A "home" node with an OLED Featherwing display on an RP2040 CAN feather with MCP2515 CAN controller that can show current values for all four nodes using the buttons on the display
- A "send" node with ESP32-S3 Feather and CAN bus Featherwing MCP2515. This node gathers measurements from all nodes at a user-specified interval (I use 15 minutes), averages them over the interval, and pushes them to Adafruit IO.
- Two "remote" nodes which use RP2040 CAN Feathers with MCP2515 CAN controllers.
- I used two types of sensors (just because these were the ones I had on-hand) as I was interested in tracking temperature and relative humidity around my house. Any of Adafruit's environmental sensors should work:
- Gather all those old phone patch cables that you have lying around in drawers around your house (be careful though, some cables have "swapped" wiring). For most of my nodes I used RJ11 breakout boards to connect the three-wire CAN controller to my home phone jacks.
I have all of my nodes reading and posting measurements every second to the CAN bus. Documentation and sample code provided on my PhoneCAN github repository. I believe that this is a relatively easy project and was really a lot of fun to put together. Best part?.. Using that old (abandoned by the steady march of technological progress) twisted pair phone cable sitting in the walls of my house.
This page (Home CAN Bus Network Using Telephone Wiring) was last updated on August 03, 2024.