more G-Labs products

Author Topic: 433MHz receiver (weather sensors, power monitor, etc)  (Read 1887 times)

February 24, 2015, 05:05:21 PM
Read 1887 times

bkenobi

  • *****
  • Information
  • Global Moderator
  • Posts: 1525
I'm planning on incorporating a 433MHz receiver into my HA setup so I can receive 433.92MHz signals sent from various devices.  I already have the appropriate receiver (3400RF based superhetrodyne module) and it works quite well with code (Powermon433) that I've been testing on an Arduino UNO to capture data from my power monitor (Blue Line Power Monitor).  What I'm trying to figure out now is how best to incorporate this into HG.

The options I'm currently looking at are:
  • Connect an Arduino to Raspi via I2C
  • Connect an Arduino to Raspi via SPI using Eden code
  • Connect an Arduino to Raspi via USB
  • Connect 433MHz receiver to Raspi GPIO

I'd prefer option 4 due to less hardware to potentially have issues with.  However, I don't currently have any software that can decode the incoming RF.  The up side is that since HG can run several different types of code, I could potentially incorporate things into a script should I find something on the internet.  The other option would be building a new module for HG similar to the X10, Insteon, ZWave, etc. modules.  I fear that's well above my head though.

Option 2 is the next best I believe.  I wasn't aware that the Eden was an Arduino embedded add-on board.  Had I known that, I would have been paying a lot more attention to it from the original announcement.  Either way, I think this would provide a really good way to interface the preexisting code to HG and would likely only require a simple script to convert the Arduino code's output into data that gets stored in the appropriate locations.

Any inputs?  I'm open to suggestion as I'm still just making sure that the receiver module will work under all likely environments I may have.

March 17, 2015, 03:50:24 AM
Reply #1

NickP

  • *
  • Information
  • Newbie
  • Posts: 24
Looking at github, if you wanted a native Pi solution, the powermon software could be converted to c# and the README seems to suggest the receiver is SPI.

Whether you connect direct or continue with the Arduino, if I remember right the issue you were facing with the Pi was level shifting? Adafruit has multi channel bi directional level shifters, or you could build your own with a mosfet: http://www.hobbytronics.co.uk/mosfet-voltage-level-converter

March 17, 2015, 05:21:09 AM
Reply #2

bkenobi

  • *****
  • Information
  • Global Moderator
  • Posts: 1525
I've looked at and actually purchased a couple options for level shifting.  However, I'm still struggling with an approach that will allow me to receive multiple protocols with the same hardware.  I could certainly use Powermon433 on one Arduino and then use a different Arduino for weather monitoring.  But, that seems like a really sloppy hacked approach.  I'm currently in the process of trying to convert the Powermon433 code into a RCSwitch compatible protocol and decode functions.  That way, I can add a different protocol and decode function(s) for whatever weather station (and other hardware) I may choose to add.

I could use the RPi for this, but I think using the Arduino for the decoding makes sure I don't overtax the RPi and keep other time critical tasks from working correctly.  I use the CM15A to receive X10 PLC and RF, so I'm thinking using the Arduino as a second controller is similar and just makes sense.

March 17, 2015, 03:57:14 PM
Reply #3

bkenobi

  • *****
  • Information
  • Global Moderator
  • Posts: 1525
Oh, and I also found a source for 433MHz superheterodyne receivers that claim to run 3v3 logic.  I ordered them a week ago and they will take a month to arrive but they may allow connection to the RPi directly without the need for the level change circuit.

Also, while testing things out last night, I think I isolated a major issue that was causing me to pull my hair out.  I was able to receive signals with my SDR on USB (though that radio is poor when it comes to these signals and results in a very low signal to noise ratio).  However, when I switched to the Arduino, I was getting nothing out of my superheterodyne board.  It turns out that one of the jumper wires that connected the logic half to ground was broken.  I soldered the connecter back together and I started getting some results.  I'm still working out how to get RCSwitch to detect the protocol from the power meter transmitter, but at least I can detect signals from my test doorbell switch now.  Baby steps!