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.
- Install the Arduino IDE
- Open the nRF905API.ino file in Arduino IDE
- 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
- In the Tools menu select Board and find the board you are using (DO-IT ESP32 / Wemos / NodeMCU etc).
- In the Sketch menu select Upload
- 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 passwordnrf905api
. - Open a webbrowser and go to
http://192.168.4.1/
- Follow the configuration wizard:
- Your device will now connect to your WiFi network.
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 CRC8 : enable 8-bit CRC16 : enable 16-bt CRC |
txpower |
No | Set the RF transmit power-10 : -10dBm-2 : -2dBm6 : 6dBm10 : 10dBm |
rxpower |
No | Set the RF receive powernormal : normal receive modelow : low power receive mode |
txaddrwidth |
No | Set the number of Tx address bytes1 : 1 byte4 : 4 bytes |
rxaddrwidth |
No | Set the number of Rx address bytes1 : 1 byte4 : 4 bytes |
txpayloadwidth |
No | Set the number of Tx payload bytes1...32 : Payload is 1...32 bytes |
rxpayloadwidth |
No | Set the number of Rx payload bytes1...32 : Payload is 1...32 bytes |
txaddr |
No | Set the Tx address0x12345678 : Set Tx address to 0x12345678 |
rxaddr |
No | Set the Rx address0x12345678 : Set Rx address to 0x12345678 |
nvram |
No | Store the nRF905 configuration in NVRAMtrue : Store nRF905 config in NVRAMfalse : Do not store nRF905 config in NVRAM |
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
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
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 |
Configure the system board.
Example:
http://192.168.x.y/api/v1/systemconfig.json?reset=true
Parameter | Required | Description |
---|---|---|
reset |
No | Reset the systemtrue : Reset system |
nvram |
No | Clear the NVRAMclear : Clear the NVRAM |
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
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 |
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 speedmedium : Medium speedhigh : High speedmax : Maximum speed |
timer |
No | Set the fan timer (number of minutes) |
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 |
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 |