DESCRIPTION

Mongoose Enterprise Firmware is a generic firmware for remote control and data collection (sensors). It implements functionality that covers wide range of devices: smart heaters, plugs, light and many other. The list of functions Mongoose Enterprise Firmware supports:

Name Config section Description
On/off switch relay Allows to switch things connected to a particular GPIO pin (relays, LEDs, etc) on or off.
Sensors sensor Supports a wide range of humidity, temperature, light, moisture and othe rsensors. Up to 10 sensors supported.
Each sensor configured to measure and report data. It can also trigger threshold-based alerts. For example: Sensor 0 is a DHT22 temperature sensor, measuring each 30 seconds, reporting each 10 minutes to MQTT topic X, sending alert if temperature goes above 40 Celsius. Sensor 1 is DHT22 humidity sensor, measuring and reporting data at 5 minutes interval. Most recent sensor data is kept on a device and could be accessed via cloud or directly.
Timer timer Up to 10 scheduled events or timers could be configured. Example: "turn switch 2 on at 10pm each day Mon-Fri", or "at 2min from now, send message X to the MQTT topic Y".
Status indicator status LED status indicator visually displays the current status of device. Example: Blink white with 1 second inteval if WiFi is not configured, red with 100ms interval if WiFi is configured but cloud connection is lost, green if cloud connection is established.
Blynk mobile app blynk Home device firmware could be controlled by the Blynk mobile app (see evaluation section below). In addition, management API is provided (RESTful or Mongoose RPC based) to allow custom mobile/web app development.
Firmware update ota User-initiated firmware update process. Example: If button 1 is pressed and held for more then 3 seconds, trigger firmware update. Blink blue when updating. Triple-blink blue if up to date.
Factory reset reset User-initiated firmware factory reset. Example: If button 0 is pressed and held for more then 3 seconds, trigger factory reset.
MQTT server mqtt Supports custom MQTT server, AWS IoT, Google IoT Core, Microsoft Azure, IBM Watson, etc.

EVALUATION

Prerequisites

  • An ESP8266 board (e.g. NodeMCU), ESP32 board (e.g. ESP32-DevKit-C), TI CC3200 (e.g. Launchpad).
  • A mobile phone with Blynk mobile app installed
  • mos tool installed

Instructions

  • Connect your ESP32, or ESP8266, or CC3200 board to your computer via the USB cable
  • Download the Mongoose OS Enterprise Firmware for ESP32 (Requires accepting Evaluation License terms)
  • Flash Mongoose Mongoose Enterprise firmware:
    mos flash --firmware PATH/TO/DOWNLOADED/FIRMWARE.zip
  • Configure WiFi on the board:
    mos wifi WIFI_NETWORK WIFI_PASSWORD
  • Start the Blynk app. Create new project with two controls:
    • A graph, assocoated with the virtual pin 0. Set value range from 0 to 40
    • A switch button, assocoated with the virtual pin 1
  • Open an email sent by Blynk with the app credentials, and configure your device to authenticate with the Blynk cloud:
    mos config-set blynk.auth=YOUR_DEVICE_TOKEN
  • Press "run" button on the Blynk app. Notice graph change - that sensor reports data. Click on the on/off button, you'll see a built-in blue LED on NodeMCU blynk. Since an LED is inverted, it should turn off when the button says "on", and vica versa.
  • Run an RPC command to see recent sensor measurements:
    mos call Sensor.GetData
    [
      [
        1503775702,
        19.752001
      ],
      [
        1503775703,
        16.512001
      ],
    ...

Note that the RPC command could be sent by the mos tool or programmatically, locally or remotely, giving you the full remote management control - see documentation on RPC.

RPC SERVICE REFERENCE

NOTE: In the request/response examples below, the some fields are could be truncated to make the table more compact and readable. Truncated fields end with triple-dots, ...

Method Description Request Response
Sensor.List List all available sensors, and describe initialisation options for each. Return list of objects, each object contains sensor type and description.
{}
[
  {
    "type": "VIRTUAL",
    "descr": "Produces random data. ..."
  },
  ...
Sensor.Measure Perform a measurement from the configured sensor. Return numeric result.
{}
32.15
Sensor.GetData Returns recent sensor measurements - a list of tuples (value, timestamp). The number of recent buffered entries is controlled by the max_ram paramenter in the config.
{}
[
  [
    1503772143,
    19.622400
  ],
  ...
GPIO.* GPIO API - for switching things on/off. See the reference

CONFIGURATION REFERENCE

A configuration snippet below describes settings that are specific to the home device firmware only. Additional settings are provided by the extension modules (libraries).

"hd": {
  "relay": {
    "pin": 2,              # Pin number this switch (relay, LED, etc) is attached to
  },
  "sensor": {
    "enable": true,         # Enable this sensor
    "type": "DHT11",        # Sensor type: DHT11, DHT22, MCP9808, DallasTemperature
    "pin": 5,               # Pin this sensor is attached to
    "read_interval": 1,     # Measurement interval in seconds
    "report_interval": 60,  # Report interval in seconds
    "topic": "",            # MQTT topic to report to
    "max_ram": 256          # Max RAM in bytes for storing measurements locally
  },
  "ota": {
    "pin": -1,              # Button pin number which triggers OTA
    "hold": 3,              # Number of seconds to hold to trigger the OTA
  },
  "reset": {
    "pin": -1,              # Button pin number which triggers reset
    "hold": 3,              # Number of seconds to hold to trigger
  },
}

Contact us to inquire on Commercial License terms, or have any further questions.

CONTACT US ON COMMERCIAL LICENSING