Blynk example for RedBearLab BLE Nano

Dependencies:   BLE_API Blynk mbed nRF51822

Committer:
vshymanskyy
Date:
Mon Nov 27 21:29:25 2017 +0000
Revision:
3:1a1b4df54a17
Child:
4:27632dd38be6
Update version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vshymanskyy 3:1a1b4df54a17 1 /**************************************************************
vshymanskyy 3:1a1b4df54a17 2 * Blynk is a platform with iOS and Android apps to control
vshymanskyy 3:1a1b4df54a17 3 * Arduino, Raspberry Pi and the likes over the Internet.
vshymanskyy 3:1a1b4df54a17 4 * You can easily build graphic interfaces for all your
vshymanskyy 3:1a1b4df54a17 5 * projects by simply dragging and dropping widgets.
vshymanskyy 3:1a1b4df54a17 6 *
vshymanskyy 3:1a1b4df54a17 7 * Downloads, docs, tutorials: http://www.blynk.cc
vshymanskyy 3:1a1b4df54a17 8 * Blynk community: http://community.blynk.cc
vshymanskyy 3:1a1b4df54a17 9 * Social networks: http://www.fb.com/blynkapp
vshymanskyy 3:1a1b4df54a17 10 * http://twitter.com/blynk_app
vshymanskyy 3:1a1b4df54a17 11 *
vshymanskyy 3:1a1b4df54a17 12 * Blynk library is licensed under MIT license
vshymanskyy 3:1a1b4df54a17 13 * This example code is in public domain.
vshymanskyy 3:1a1b4df54a17 14 *
vshymanskyy 3:1a1b4df54a17 15 **************************************************************
vshymanskyy 3:1a1b4df54a17 16 *
vshymanskyy 3:1a1b4df54a17 17 * This example shows how to use RedBearLab BLE Nano
vshymanskyy 3:1a1b4df54a17 18 * to connect your project to Blynk.
vshymanskyy 3:1a1b4df54a17 19 *
vshymanskyy 3:1a1b4df54a17 20 * NOTE: BLE support is in beta!
vshymanskyy 3:1a1b4df54a17 21 *
vshymanskyy 3:1a1b4df54a17 22 **************************************************************/
vshymanskyy 3:1a1b4df54a17 23 #include <mbed.h>
vshymanskyy 3:1a1b4df54a17 24 Serial pc(USBTX, USBRX);
vshymanskyy 3:1a1b4df54a17 25
vshymanskyy 3:1a1b4df54a17 26 //#define BLYNK_DEBUG
vshymanskyy 3:1a1b4df54a17 27 #define BLYNK_PRINT pc
vshymanskyy 3:1a1b4df54a17 28
vshymanskyy 3:1a1b4df54a17 29 //#define BLYNK_USE_DIRECT_CONNECT
vshymanskyy 3:1a1b4df54a17 30
vshymanskyy 3:1a1b4df54a17 31 #include <BlynkSimpleRedBearLab_BLE_Nano.h>
vshymanskyy 3:1a1b4df54a17 32
vshymanskyy 3:1a1b4df54a17 33 // You should get Auth Token in the Blynk App.
vshymanskyy 3:1a1b4df54a17 34 // Go to the Project Settings (nut icon).
vshymanskyy 3:1a1b4df54a17 35 char auth[] = "338b85a6c7aa451689ee3590cde0ad33";
vshymanskyy 3:1a1b4df54a17 36
vshymanskyy 3:1a1b4df54a17 37 uint8_t device_name[] = "Blynk";
vshymanskyy 3:1a1b4df54a17 38
vshymanskyy 3:1a1b4df54a17 39 PwmOut speaker(p30);
vshymanskyy 3:1a1b4df54a17 40 BLYNK_WRITE(V1) {
vshymanskyy 3:1a1b4df54a17 41 if (param.asInt()) {
vshymanskyy 3:1a1b4df54a17 42 speaker.period(1.0/param.asInt());
vshymanskyy 3:1a1b4df54a17 43 speaker = 0.5;
vshymanskyy 3:1a1b4df54a17 44 } else {
vshymanskyy 3:1a1b4df54a17 45 speaker = 0;
vshymanskyy 3:1a1b4df54a17 46 }
vshymanskyy 3:1a1b4df54a17 47 }
vshymanskyy 3:1a1b4df54a17 48
vshymanskyy 3:1a1b4df54a17 49 PwmOut ledR(p15);
vshymanskyy 3:1a1b4df54a17 50 BLYNK_WRITE(V2) {
vshymanskyy 3:1a1b4df54a17 51 ledR = 1.0 - (param.asDouble()/1024.0f);
vshymanskyy 3:1a1b4df54a17 52 }
vshymanskyy 3:1a1b4df54a17 53
vshymanskyy 3:1a1b4df54a17 54 void setup() {
vshymanskyy 3:1a1b4df54a17 55 ble.init();
vshymanskyy 3:1a1b4df54a17 56
vshymanskyy 3:1a1b4df54a17 57 ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED);
vshymanskyy 3:1a1b4df54a17 58 ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::SHORTENED_LOCAL_NAME,
vshymanskyy 3:1a1b4df54a17 59 device_name, sizeof(device_name) - 1);
vshymanskyy 3:1a1b4df54a17 60
vshymanskyy 3:1a1b4df54a17 61 ble.gap().setDeviceName(device_name);
vshymanskyy 3:1a1b4df54a17 62 ble.gap().setTxPower(4);
vshymanskyy 3:1a1b4df54a17 63
vshymanskyy 3:1a1b4df54a17 64 // Add Blynk service...
vshymanskyy 3:1a1b4df54a17 65 Blynk.begin(auth);
vshymanskyy 3:1a1b4df54a17 66
vshymanskyy 3:1a1b4df54a17 67 ble.gap().setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED);
vshymanskyy 3:1a1b4df54a17 68 ble.gap().setAdvertisingInterval(Gap::MSEC_TO_GAP_DURATION_UNITS(1000));
vshymanskyy 3:1a1b4df54a17 69 ble.gap().setAdvertisingTimeout(0);
vshymanskyy 3:1a1b4df54a17 70 ble.startAdvertising();
vshymanskyy 3:1a1b4df54a17 71
vshymanskyy 3:1a1b4df54a17 72 printf("Waiting for connections...\n");
vshymanskyy 3:1a1b4df54a17 73
vshymanskyy 3:1a1b4df54a17 74 ledR = 1.0;
vshymanskyy 3:1a1b4df54a17 75 speaker = 0.0;
vshymanskyy 3:1a1b4df54a17 76 }
vshymanskyy 3:1a1b4df54a17 77
vshymanskyy 3:1a1b4df54a17 78 void loop() {
vshymanskyy 3:1a1b4df54a17 79 Blynk.run();
vshymanskyy 3:1a1b4df54a17 80 }
vshymanskyy 3:1a1b4df54a17 81
vshymanskyy 3:1a1b4df54a17 82 int main(void) {
vshymanskyy 3:1a1b4df54a17 83 setup();
vshymanskyy 3:1a1b4df54a17 84 while(1) {
vshymanskyy 3:1a1b4df54a17 85 loop();
vshymanskyy 3:1a1b4df54a17 86 }
vshymanskyy 3:1a1b4df54a17 87 }