Fork me on GitHub

Blynk integration for Mongoose OS

This Mongoose OS library allows your device remote control via the Blynk platform. Device side logic could be implemented in either C/C++ or JavaScript.

Blynk is a platform with iOS and Android apps to control Arduino, Raspberry Pi and the likes over the Internet.

See example video at:

How to use this library

In your Mongoose OS app, edit mos.yml file and add a reference to this library. See an example blynk app that does that.

Device configuration

This library adds blynk configuration section to the device:

mos config-get blynk
{
  "auth": "YOUR_BLYNK_AUTH_TOKEN",
  "enable": true,
  "server": "blynk-cloud.com:8442"
}

In order for your device to authenticate with Blynk cloud, either use Web UI to change the blynk.auth value, or in a terminal:

mos config-set blynk.auth=YOUR_BLYNK_AUTH_TOKEN

C API Reference blynk.h

#include "blynk.h"

See on GitHub: blynk.h, blynk.c


typedef void (*blynk_handler_t)(struct mg_connection *, const char *cmd,
                                int pin, int val, void *user_data);

Blynk event handler signature.

void blynk_set_handler(blynk_handler_t func, void *user_data);

Set Blynk event handler.

void blynk_send(struct mg_connection *c, uint8_t type, uint16_t id,
                const void *data, uint16_t len);

Send data to the Blynk server. data, len holds a message to send.

enum blynk_msg_type {
  BLYNK_RESPONSE = 0,
  BLYNK_LOGIN = 2,
  BLYNK_PING = 6,
  BLYNK_HARDWARE = 20,
};

Message types for blynk_send().

void blynk_printf(struct mg_connection *c, uint8_t type, uint16_t id,
                  const char *fmt, ...);

Same as as blynk_send(), formats message using printf() semantics.

bool mgos_blynk_init(void);

JAVASCRIPT API Reference api_blynk.js

load("api_blynk.js");


Blynk.send(conn, type, msg)

Send raw message to Blynk server.

Blynk.virtualWrite(conn, pin, val)

Write to the virtual pin. This is a helper function that uses Blynk.send()

Blynk.setHandler(handler)

Set handler for the virtual pin reads / writes.

Example:

Blynk.setHandler(function(conn, cmd, pin, val) {
  print(cmd, pin, val);
}, null);