Git Product home page Git Product logo

nrf905-api's Introduction

nRF905 Arduino API

nRF905 Arduino API. Compatible with ESP8266 and ESP32 boards, tested on Wemos D1 mini Pro, NodeMCU 1.0 (ESP-12E module) and DOIT ESP32 Dev Module.

Building the hardware

See Buiding the hardware

Compiling / Installing

  1. Install the Arduino IDE
  2. Open the nRF905API.ino file in Arduino IDE
  3. In the File menu select Preferences and add the following to Additional Board Manager URLs:
https://arduino.esp8266.com/stable/package_esp8266com_index.json,https://dl.espressif.com/dl/package_esp32_index.json
  1. In the Tools menu select Board and find the board you are using (DO-IT ESP32 / Wemos / NodeMCU etc).
  2. In the Sketch menu select Upload
  3. When the code has been uploaded the device will reboot and start a WiFi access point named nRF905. Connect to that access point with the password nrf905api.
  4. Open a webbrowser and go to http://192.168.4.1/
  5. Follow the configuration wizard:
    cfglang
    cfgauth
    cfgwifi
    cfgfan
    cfgfand1
    cfgfand2
    cfgboot
  6. Your device will now connect to your WiFi network.

Usage

/api/v1/config.json

Configure the nRF905.

Example:
http://192.168.x.y/api/v1/config.json?frequency=868400000&crc=16&txpower=10&rxpower=normal&rxaddr=a55a5aa5&txaddr=a55a5aa5&rxaddrwidth=4&txaddrwidth=4&rxpayloadwidth=16&txpayloadwidth=16

Parameter Required Description
frequency No Set the RF frequency
crc No off: disable CRC
8: enable 8-bit CRC
16: enable 16-bt CRC
txpower No Set the RF transmit power
-10: -10dBm
-2: -2dBm
6: 6dBm
10: 10dBm
rxpower No Set the RF receive power
normal: normal receive mode
low: low power receive mode
txaddrwidth No Set the number of Tx address bytes
1: 1 byte
4: 4 bytes
rxaddrwidth No Set the number of Rx address bytes
1: 1 byte
4: 4 bytes
txpayloadwidth No Set the number of Tx payload bytes
1...32: Payload is 1...32 bytes
rxpayloadwidth No Set the number of Rx payload bytes
1...32: Payload is 1...32 bytes
txaddr No Set the Tx address
0x12345678: Set Tx address to 0x12345678
rxaddr No Set the Rx address
0x12345678: Set Rx address to 0x12345678
nvram No Store the nRF905 configuration in NVRAM
true: Store nRF905 config in NVRAM
false: Do not store nRF905 config in NVRAM

/api/v1/status.json

This will show a status page with details about the hardware. This API call takes no parameters.

Example:
http://192.168.x.y/api/v1/status.json

/api/v1/receive.json

This will return a list of received data frames by the nRF905. This API call takes no parameters.

Example:
http://192.168.x.y/api/v1/receive.json

/api/v1/send.json

This will transmit data. After the data has been transmitted, the API will wait for data to be received (a reply to the transmitted data). By default it will wait for 2 seconds, but you can change this by adding the timeout parameter.

Example:
http://192.168.x.y/api/v1/send.json?txaddr=aabbccdd&payload=0400035efa0c04a55a5aa50000000000&timeout=10

Parameter Required Description
txaddr Yes Address to send the data to
payload Yes The data to be sent
timeout No Timeout for reading data after the transmission is completed (in seconds)
Default: 2 seconds

/api/v1/systemconfig.json

Configure the system board.

Example:
http://192.168.x.y/api/v1/systemconfig.json?reset=true

Parameter Required Description
reset No Reset the system
true: Reset system
nvram No Clear the NVRAM
clear: Clear the NVRAM

Fan API calls

/api/v2/fan/link.json

Link the nRF905-API to a fan device. This API call takes no parameters.

Example:
http://192.168.x.y/api/v2/fan/link.json

/api/v2/fan/config.json

Configure the fan parameters.

Example:
http://192.168.x.y/api/v2/fan/config.json?model=zehnder&network=1a2b3c4d&main_unit_id=91&device_id=5d

Parameter Required Description
model Yes Fan model:
zehnder: Zehnder fans (868.400MHz)
buva: BUVA fans (868.200MHz)
network Yes Network ID of your fan network
main_unit_id Yes ID of your fan main unit
device_id Yes ID of your nRF905-API

/api/v2/fan/setspeed.json

Set the fan speed of your fan device.

Example:
http://192.168.x.y/api/v2/fan/setspeed.json?speed=high

Parameter Required Description
speed Yes Fan speed:
low: Low speed
medium: Medium speed
high: High speed
max: Maximum speed
timer No Set the fan timer (number of minutes)

/api/v2/fan/setvoltage.json

Set the fan voltage of your fan device.

Example:
http://192.168.x.y/api/v2/fan/setvoltage.json?voltage=2.4

Parameter Required Description
voltage Yes Voltage:
0.0...10.0: Voltage; range between 0.0 volt and 10.0 volt

/api/test/fan/querydevice.json

Query a device for it's current settings (this API endpoint is not yet finished and is in test-mode).

Example:
http://192.168.x.y/api/test/fan/querydevice.json?device_id=32

Parameter Required Description
device_id No Device ID:
ID of a fan device. By default it will select the fan it's linked to

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.