Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
lib
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 

ESP32 BACnet Server Example

In this project we are using the CAS BACnet stack to generate a simple BACnet server with one Multi-state-value (MSV) object. The MSV shows the current mode of the built-in LED. A BACnet client (such as the CAS BACnet Explorer) can be used to write to this MSV to change the mode.

The MSV allows for three possaible values to be written.

  • 1 = Off
  • 2 = On
  • 3 = Blink - Blinks the LED on and off at a rate of 500 ms.

Quick start

  1. Download and install Platform/io for Visual studios code
  2. Add the ESP32 board to Platform/io
  3. Add the CAS BACnet stack libary to the /lib/ folder.
  4. Use Platform/io to Build the project.
  5. Use Platform/io to Upload and Monitor.

Supported BIBBs

The CAS BACnet stack supports many other BIBBs, this minumial example only supports the following:

  • DS-RP-B: Data Sharing - ReadProperty-B
  • DS-RPM-B: Data Sharing - ReadPropertyMultiple-B
  • DS-WP-B: Data Sharing - WriteProperty-B
  • DM-DDB-B: Device and Network Management - Dynamic Device Binding-B (Who-Is)
  • DM-DOB-B: Device and Network Management - Dynamic Object Binding-B (Who-Has)

BACnet objects supported

The CAS BACnet stack supports many other object types this minumial example only supports the following:

  • Device (8)
  • Multi-state Value (19)

Device Tree

Below is the device tree exported from the CAS BACnet Explorer.

device: 389001  (ESP32 BACnet Example Server)
    object_identifier: device (389001)
    object_type: device
    vendor_identifier: Chipkin Automation Systems (0x185)
    application_software_version: v1
    firmware_revision: 3.8.1.0
    model_name: CAS BACnet Stack
    object_name: ESP32 BACnet Example Server
    protocol_services_supported: readProperty (1), readPropertyMultiple (1), writeProperty (1), who_Has (1), who_Is (1), 
    protocol_version: 1
    vendor_name: Chipkin Automation Systems
    protocol_revision: 14
    multi_state_value: 1  (LED State)
        object_identifier: multi_state_value (1)
        object_type: multi_state_value (0x13)
        event_state: normal (0x0)
        number_of_states: 3
        object_name: LED State
        out_of_service: False
        present_value: 3
        status_flags: in_alarm (0), fault (0), overridden (0), out_of_service (0), 
        state_text: Off, On, Blink

Example in the CAS BACnet Explorer

Preview of the CAS BACnet Explorer

Example output

The example output from the serial terminal of the ESP32

FYI: ESP32 CAS BACnet Stack example version: 0.0.1
FYI: ESP32 Chip ID: 30C6, (08A4AE30)
FYI: Connecting to wifi...
FYI: Connected to XXXXXXXXXX
FYI: IP address: 192.168.1.66
FYI: Connecting UDP resource to port=[47808]
FYI: Connected to UDP port.
FYI: CAS BACnet Stack version: 3.8.1
FYI: BACnet device created: Device instanse=389001
FYI: Enabled WriteProperty for Device 389001
FYI: Enabled Read Property Multiple for Device 14
FYI: Added multi-state-output (1) to Device (389001)
FYI: CallbackGetPropertyUInt deviceInstance=389001, objectType=8, objectInstance=389001, propertyIdentifier=62
FYI: CallbackGetPropertyUInt deviceInstance=389001, objectType=8, objectInstance=389001, propertyIdentifier=120
FYI: Sent message with 25 bytes to 192.168.1.255:47808
FYI: Sent broadcast IAm message
FYI: FreeHeap: 270784 / 336136 (80.59 %)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
FYI: Recived message with 19 bytes from 192.168.1.77:47808
FYI: CallbackGetPropertyUInt deviceInstance=389001, objectType=19, objectInstance=1, propertyIdentifier=74
FYI: CallbackGetPropertyCharString deviceInstance=389001, objectType=19, objectInstance=1, propertyIdentifier=77
FYI: CallbackGetPropertyUInt deviceInstance=389001, objectType=19, objectInstance=1, propertyIdentifier=85
FYI: CallbackGetPropertyUInt deviceInstance=389001, objectType=19, objectInstance=1, propertyIdentifier=110
FYI: CallbackGetPropertyCharString deviceInstance=389001, objectType=19, objectInstance=1, propertyIdentifier=110
FYI: CallbackGetPropertyCharString deviceInstance=389001, objectType=19, objectInstance=1, propertyIdentifier=110
FYI: CallbackGetPropertyCharString deviceInstance=389001, objectType=19, objectInstance=1, propertyIdentifier=110
FYI: Sent message with 98 bytes to 192.168.1.77:47808
FYI: FreeHeap: 270784 / 336136 (80.59 %)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Tested hardware

FAQ

Can't build the project. CASBACnetStackAdapter.h: No such file or directory

Please see this issue CASBACnetStackAdapter.h: No such file or directory

About

A simple ESP32 BACnet server example project

Topics

Resources

Releases

No releases published

Packages

No packages published