-
Notifications
You must be signed in to change notification settings - Fork 2
Home
freebird-base provides three base classes used by freebird IoT framework. These classes are abstractions of the network controller, network device, and real appliance, respectively.
Class | Description | Example |
---|---|---|
[[ Netcore | Netcore Class]] | A network controller responsible for message transportation and network management. |
[[ Device | Device Class]] | A wired/wireless machine in the network. |
[[ Gadget | Gadget Class]] | Something specific and functional in our life. |
The concept of Netcore, Device, and Gadget in freebird framework well separates the machine management and application management from each other. This brings developers a more clear, convenient and flexible way in building up a IoT machine network.
To explain why we need these three base classes, let's take a wifi weather station in a machine network for example:
- The weather station is made up of a temperature, a humidity, and a pm2.5 sensor, where each sensor is a gadget living on the WiFi-connected device.
- A device, such as an Arduino(wifi-connected), ESP8266, MT7688, RaspberryPi or Beaglebone, is the carrier of applications(gadgets).
- Now we know, this weather station has 3 gadgets on it, but only has a single device in it.
Here is another example:
- We have a bluetooth low-energy (BLE) light switch in the network.
- It is a simple one-device-with-one-gadget machine.
- We can say "there is only one gadget(a light switch) implemented on a TI CC2540 BLE SoC device."
The last question here is who manages the machine network? Obviously, it's the Netcore which starts a network, permits devices to join the network, removes a device from the network, and bans a device, like so.
Here are the list of ready-made netcores that can be used directly with freebird.js:
-
freebird-netcore-ble
- Required hardware: TI CC2540 EVM, TI CC2541 USB Dongle, CSR8510 USB Dongle
- Install:
npm install freebird-netcore-ble --save
-
freebird-netcore-zigbee
- Required hardware: TI CC2530 EVM, TI CC2531 USB Dongle
- Install:
npm install freebird-netcore-zigbee --save
-
freebird-netcore-mqtt
- Required hardware: Ethernet or WiFi
- Install:
npm install freebird-netcore-mqtt --save
-
freebird-netcore-coap
- Required hardware: Ethernet or WiFi
- Install:
npm install freebird-netcore-coap --save
freebird team
Overview
Main Classes
Design Your Own Netcore
- Workflow
- APIs for Implementer
- Unified data model
- What should be implemented
Appendix
- Device data object format
- Gadget data object format