Blynk example for RedBearLab BLE Nano

Dependencies:   BLE_API Blynk mbed nRF51822

Committer:
vshymanskyy
Date:
Mon Nov 27 22:48:09 2017 +0000
Revision:
5:c52894060941
Parent:
4:27632dd38be6
Child:
9:6d4eec96b28e
Update

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vshymanskyy 5:c52894060941 1 /*************************************************************
vshymanskyy 5:c52894060941 2 Blynk is a platform with iOS and Android apps to control
vshymanskyy 5:c52894060941 3 Arduino, Raspberry Pi and the likes over the Internet.
vshymanskyy 5:c52894060941 4 You can easily build graphic interfaces for all your
vshymanskyy 5:c52894060941 5 projects by simply dragging and dropping widgets.
vshymanskyy 5:c52894060941 6
vshymanskyy 5:c52894060941 7 Downloads, docs, tutorials: http://www.blynk.cc
vshymanskyy 5:c52894060941 8 Sketch generator: http://examples.blynk.cc
vshymanskyy 5:c52894060941 9 Blynk community: http://community.blynk.cc
vshymanskyy 5:c52894060941 10 Follow us: http://www.fb.com/blynkapp
vshymanskyy 5:c52894060941 11 http://twitter.com/blynk_app
vshymanskyy 5:c52894060941 12
vshymanskyy 5:c52894060941 13 Blynk library is licensed under MIT license
vshymanskyy 5:c52894060941 14 This example code is in public domain.
vshymanskyy 5:c52894060941 15
vshymanskyy 5:c52894060941 16 *************************************************************
vshymanskyy 5:c52894060941 17 This example shows how to use RedBearLab BLE Nano
vshymanskyy 5:c52894060941 18 to connect your project to Blynk.
vshymanskyy 5:c52894060941 19
vshymanskyy 5:c52894060941 20 Warning: Bluetooth support is in beta!
vshymanskyy 5:c52894060941 21
vshymanskyy 5:c52894060941 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 }