Giter Site home page Giter Site logo

mqtt-433mhz-gateway-homie's Introduction

433Mhz <-> MQTT gateway with some extras

Build Status GitHub release

The mqtt-433mhz-gateway-homie project is a simple bidirectional gateway to transmit and receive 433Mhz RF signals connected to MQTT. The gateway is built with a cost-effective ESP8266 WiFi chip (I used a Wemos D1 mini, NodeMCU will do as well), simple 433Mhz RF modules and an additional BMP085 sensor.

It enables to:

  • receive MQTT data from a topic and send the 433Mhz signal
  • receive 433Mhz signal from a traditional remote, optional map it to a channel and publish the data to a MQTT topic
  • additional a simple temperature sensor can record the room temperature of the room where the gateway is installed

The software is based on Homie to enable an easy integration with home automation systems like OpenHab.

Hardware

  • ESP8266 (Wemos D1 mini, Nodemcu)
  • RF Receiver 433Mhz
  • RF Transmitter 433MHz
  • BMP085 or BMP180 sensor breakout

I got the RF modules form https://www.sparkfun.com, others will do as well. Additional I got some Wemos Protoboards, an USB power supply with a very short cable and an enclosure to keep all together.

Building the circuit

Wemos D1 mini BMP085 RF Receiver RF Transmitter
5V VIN VIN VIN
GND GND GND GND
D0 DATA
D1 SCL
D2 SDA
D5 DATA

Software

The following software libraries are used. When using PlatformIO all dependencies are resolved automatically.

MQTT

For a detailed documentation of the MQTT topics and commands used see Homie documentation.

Sample gateway messages:

# sensor temperature reading
homie/mqtt-gateway-livingroom/temperature/degrees 23.70

Temperature value send form device.

# send RF command via MQTT & response
homie/mqtt-gateway-livingroom/MQTTto433/on/set 1394001
homie/mqtt-gateway-livingroom/MQTTto433/on 1394001

First line: MQTT command send from MQTT client or smart home solution. Translates into the code send by the RF transmitter. Second line: Response from device after RF signal was send.

Config

The following config parameters are available via MQTT message (see Homie documentation how to use):

Parameter Type Usage
temperatureInterval long temperature reading interval in seconds
temperatureOffset double temperature offset (-/+) to correct the sensor reading, for example if used in enclosure box
channels const char* mapping of 433MHz signals to mqtt channels, useful if used with OpenHab

All configs can be set during the init procedure of the module or via MQTT messages (see Homie specification).

Sample config:

{
    "settings": {
        "channels": "o-1:[139400];o-2:[139707];o-3:[1398097,1398100];o-4:[139803];i-1:[44618];i-2:[44620];i-3:[44623];i-4:[44638];i-5:[44700];“,
        "temperatureOffset“: -2.4,
        "temperatureInterval": 300
    }
}

Credits

This project is was inspired by 1 Technophile's 433toMQTTto433 solution.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.