Blynk example for RedBearLab BLE Nano

Dependencies:   BLE_API Blynk mbed nRF51822

Committer:
vshymanskyy
Date:
Mon Nov 27 22:00:52 2017 +0000
Revision:
4:27632dd38be6
Parent:
3:1a1b4df54a17
Child:
5:c52894060941
Update

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 #include <BlynkSimpleRedBearLab_BLE_Nano.h>
vshymanskyy 3:1a1b4df54a17 30
vshymanskyy 3:1a1b4df54a17 31 // You should get Auth Token in the Blynk App.
vshymanskyy 3:1a1b4df54a17 32 // Go to the Project Settings (nut icon).
vshymanskyy 4:27632dd38be6 33 char auth[] = "YourAuthToken";
vshymanskyy 3:1a1b4df54a17 34
vshymanskyy 3:1a1b4df54a17 35 uint8_t device_name[] = "Blynk";
vshymanskyy 3:1a1b4df54a17 36
vshymanskyy 3:1a1b4df54a17 37 PwmOut speaker(p30);
vshymanskyy 3:1a1b4df54a17 38 BLYNK_WRITE(V1) {
vshymanskyy 3:1a1b4df54a17 39 if (param.asInt()) {
vshymanskyy 3:1a1b4df54a17 40 speaker.period(1.0/param.asInt());
vshymanskyy 3:1a1b4df54a17 41 speaker = 0.5;
vshymanskyy 3:1a1b4df54a17 42 } else {
vshymanskyy 3:1a1b4df54a17 43 speaker = 0;
vshymanskyy 3:1a1b4df54a17 44 }
vshymanskyy 3:1a1b4df54a17 45 }
vshymanskyy 3:1a1b4df54a17 46
vshymanskyy 3:1a1b4df54a17 47 PwmOut ledR(p15);
vshymanskyy 3:1a1b4df54a17 48 BLYNK_WRITE(V2) {
vshymanskyy 3:1a1b4df54a17 49 ledR = 1.0 - (param.asDouble()/1024.0f);
vshymanskyy 3:1a1b4df54a17 50 }
vshymanskyy 3:1a1b4df54a17 51
vshymanskyy 3:1a1b4df54a17 52 void setup() {
vshymanskyy 3:1a1b4df54a17 53 ble.init();
vshymanskyy 3:1a1b4df54a17 54
vshymanskyy 3:1a1b4df54a17 55 ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED);
vshymanskyy 3:1a1b4df54a17 56 ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::SHORTENED_LOCAL_NAME,
vshymanskyy 3:1a1b4df54a17 57 device_name, sizeof(device_name) - 1);
vshymanskyy 3:1a1b4df54a17 58
vshymanskyy 3:1a1b4df54a17 59 ble.gap().setDeviceName(device_name);
vshymanskyy 3:1a1b4df54a17 60 ble.gap().setTxPower(4);
vshymanskyy 3:1a1b4df54a17 61
vshymanskyy 3:1a1b4df54a17 62 // Add Blynk service...
vshymanskyy 3:1a1b4df54a17 63 Blynk.begin(auth);
vshymanskyy 3:1a1b4df54a17 64
vshymanskyy 3:1a1b4df54a17 65 ble.gap().setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED);
vshymanskyy 3:1a1b4df54a17 66 ble.gap().setAdvertisingInterval(Gap::MSEC_TO_GAP_DURATION_UNITS(1000));
vshymanskyy 3:1a1b4df54a17 67 ble.gap().setAdvertisingTimeout(0);
vshymanskyy 3:1a1b4df54a17 68 ble.startAdvertising();
vshymanskyy 3:1a1b4df54a17 69
vshymanskyy 3:1a1b4df54a17 70 printf("Waiting for connections...\n");
vshymanskyy 3:1a1b4df54a17 71
vshymanskyy 3:1a1b4df54a17 72 ledR = 1.0;
vshymanskyy 3:1a1b4df54a17 73 speaker = 0.0;
vshymanskyy 3:1a1b4df54a17 74 }
vshymanskyy 3:1a1b4df54a17 75
vshymanskyy 3:1a1b4df54a17 76 void loop() {
vshymanskyy 3:1a1b4df54a17 77 Blynk.run();
vshymanskyy 3:1a1b4df54a17 78 }
vshymanskyy 3:1a1b4df54a17 79
vshymanskyy 3:1a1b4df54a17 80 int main(void) {
vshymanskyy 3:1a1b4df54a17 81 setup();
vshymanskyy 3:1a1b4df54a17 82 while(1) {
vshymanskyy 3:1a1b4df54a17 83 loop();
vshymanskyy 3:1a1b4df54a17 84 }
vshymanskyy 3:1a1b4df54a17 85 }