You are reading a single comment by @Blynk and its replies. Click here to read the full conversation.
  • @Gordon

    Our protocol supports main 6 commands:

    digitalRead/Write
    analogRead/Write
    VirtualRead/Write
    

    "Virtual Pins" were designed specifically for Blynk to allow sending any data (e.g String, ints) to the app and back. This is one of the reasons why we didn't use Firmata.

    There are two layers. 1 responsible for connection , 2nd for commands processing.

    We build Blynk hardware agnostic and now it supports almost every popular maker's hardware and shields on the market. You can see full list here - and it's constantly updating.

    BTW, We have lots of requests from Espruino owners to add it to Blynk. We would love to see Espruino there, we just have no time for it now. May be someone from that this amazing community will initiate it and we will help.

    There were a few comments on security. Well, it's hard to implement software security on Arduino. You can achieve it by connecting to the hub, or adding hardware security. More powerful devices will of course have more options. All the other connections (Apps <-> Server) are using mutual SSL. If you connect over USB- we also provide security.

    Since our server is open source - you can download it and install locally, even on the Raspberry Pi - this will give you full control of your network of devices.

    Regarding flexibility:
    Here is an example for Arduino UNO with Ethernet shield. There are just a few lines of code in order to get Blynk running. And they don't interfere with any code you will add on top of that. Of course there are some specifics(e.g. avoid using long delays), but overall it just works.

    include <SPI.h>
    include <Ethernet.h>
    include <BlynkSimpleEthernet.h>
    
    char auth[] = "YourAuthToken"; // Find your Token in the app and paste it here
    
    void setup()
    {
      Serial.begin(9600);
      Blynk.begin(auth); // Here your hardware connects to Blynk Server
    }
    
    void loop()
    {
      Blynk.run(); // Blynk commands processing happens here 
      //Your code goes here
    }
    
    // Next command gets value from the Widget in the app
    // which is attached and writing to Virtual Pin 1
    BLYNK_WRITE(1)
    {
    incomingValue =  param.asInt(); // This is the value from the Widget
      // You can also use: asStr() and asDouble()
    }
    
    

    We don't plan to have a web interface, because working as a UX designer for last decade in web, mobile, automotive and IoT , I definitely feel a strong trend towards mobile. And this is where we see Blynk.

    We hope that Blynk will become your Magic Box in one Box :). As we add more and more widgets you might not need to design your own ones. However, I would really love to hear about your needs. What are those bits of interface you would like to use?

About

Avatar for Blynk @Blynk started