Coder Social home page Coder Social logo

rflink32's Introduction

RFLink ESP

This is a Radio Frequency to MQTT/Serial/TCP gateway built for ESP32 and ESP8266 boards (see #MCU for more).

It receives and decodes OOK 433MHz signals from your sensors, alarms and pushes them over MQTT/TCP/Serial. For some devices it can also send commands to control them.

This project is forked from RFLink-ESP (for ESP8266), which itself is forked from the original RFlink project "Release 29" for Arduino.

This fork provides additional features:

  • Fully (almost) configurable from a web interface whilst retaining the CLI.
  • No recompilation for most options which are configurable at runtime and saved in Flash.
  • More advanced debugging and troubleshooting helpers.
  • Restructured source code with namespaces and classes (Work in Progress)

1. MCU

We extensively use ESP32 dev kits. This is the default settings in Platformio.ini and RFLink.h files.

You may also use other ESP8266/ESP8255 based boards when there are no pin limitations. NodeMCUv2 is known to work.

2. Receiver / Transmitter / Transceiver

As a starting point, you can use the RXB6 receiver which is a simple and stable 3.3v component - it is easy to find and cheap. Many other receivers are also supported.

Avoid using generic noname receivers!

Receivers

For more advanced behavior and reliability, the following receivers are also supported when used with an ESP32 board:

  • SX1278
  • SX1276
  • RFM69CW
  • RFM69HCW
  • CC1101

These advanced receivers require a few pins to be connected to the host. The recommended pin assignments are:

Name ESP32 SX1278/6 RFM69(H)CW CC1101
3v3 VCC 3.3V VCC
GND GND GND GND
18 SCK SCK SCK
19 MISO MISO MISO
23 MOSI MOSI MOSI
pins::RX_RESET NRESET RESET
pins::RX_CS NSS NSS CSN
pins::RX_DATA
pins::TX_DATA
26¹ DIO2 DIO2 GDO0

¹ These must be configured in the web portal, values suggested here are proven to work reliably.

3. OLED display

You can use an OLED display. We used a SSD1306 128x64 I2C screen in our tests.

This is highly experimental and therefore not enabled by default.

OLED

4. IDE

We strongly recommend using the PlatformIO IDE but you can alternatively use the Arduino IDE 1.8.10.

5. Framework

We use Arduino Core for ESP8266.

6. Libraries

In addition to the core libraries, the following are also in use:

7. Compile Options and Flags

Many features are not enabled by default or can be disabled for various reasons like firmware size or compatibility.

OTA (disabled by default)

There are 3 types of OTA to update your firmware:

Arduino/ESP's classic push over UDP (disabled by default)

  • RFLINK_OTA_ENABLED we recommend that you enable a password for this method or anyone on your network could push a new firmware to the device.
  • RFLINK_OTA_PASSWORD="my_password_here" or RFLINK_OTA_PASSWORD='"'${sysenv.OTA_SEC}'"' in platformio.ini with an environment variable called OTA_SEC

AutoOTA

The device will download new firmware from a specified URL.

  • RFLINK_AUTOOTA_ENABLED
  • AutoOTA_URL in Credentials.h or in platformio.ini

Config Portal Web Upload

A firmware file can be uploaded via the Config Portal's Firmware page.

Firmware Screen

8. Additional Info

Config Portal

Repository

The Config Portal web ui is located in its own repository.

Default Login Details

rflink32 / 433mhz

Pinout

  • Pin setup has to be done via the Config Portal when it is active.
  • For safety and simplicity all pins are inactive by default.
  • Decoupling capacitors and antenna can be added to improve results.

Simple RX pin wiring:

Name D1 mini RXB6
PIN_RF_TX_VCC D5 5 VCC
PIN_RF_TX_NA D6 6 DER
PIN_RF_TX_DATA D7 7 DAT
PIN_RF_TX_GND D8 8 GND

Pinout

Alternative Pinout

  • ESP8266 can't draw more than 12mA on a GPIO pin.
  • Some receivers have current spikes bigger than that (eg RXB12).
  • This leads to a non working receiver or non starting ESP.

Safe alternative wiring:

Name D1 mini RXB6
PIN_RF_TX_VCC 3v3 5 VCC
PIN_RF_TX_NA N/A 6 DER
PIN_RF_TX_DATA D7 7 DAT
PIN_RF_TX_GND GND 8 GND

Thanks

Special thanks to: Axellum, Etimou, Schmurtz, Zoomx

rflink32's People

Contributors

adesin-fr avatar andyboeh avatar chm26 avatar cossey avatar couin3 avatar cpainchaud avatar cpawelko-aviti avatar cyrilpawelko avatar martinusgh avatar northernman54 avatar obones avatar plasq avatar schmurtzm avatar

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.