4. Control LED blink speed via Internet - Spark Core

Let's add more to 3. Bread Board & LED. I use exact same setting on the bread board.
Just changed code.

Here is code for accepting API request via Internet.
As you can see, we register “blink” API endpoint which will call int blink(String) function.

// Control LED blink speed via the Internet

// We name pin D0 as led
int led = D0;

// This routine runs only once upon reset
void setup()
{
  // Initialize D0 pin as output
  pinMode(led, OUTPUT);
  Spark.function("blink", blink); 
}

int blink(String command) {
    // Default is fast blink
    int ms = 50;
    if (command == "slow") {
        // slow
        ms = 300;
    }
    for (int i = 0; i < 20; i ++) {
      digitalWrite(led, HIGH);
      delay(ms);            
      digitalWrite(led, LOW);
      delay(ms);
    }
    return 0;
}

// This routine loops forever
void loop()
{
}

You can call the API using curl as follows.

# blink fast
% curl https://api.spark.io/v1/devices/YOUR_DEVICE_ID/blink \
>   -d access_token=YOUR_TOKEN
{
  "id": "YOUR_DEVICE_ID",
  "name": "mona",
  "last_app": null,
  "connected": true,
  "return_value": 0
}

# blink slow
% curl https://api.spark.io/v1/devices/YOUR_DEVICE_ID/blink 
  -d access_token=YOUR_TOKEN -d params=slow
{
  "id": "YOUR_DEVICE_ID",
  "name": "mona",
  "last_app": null,
  "connected": true,
  "return_value": 0
}

https://github.com/higepon/Spark-Core-Examples/blob/master/4.Blink%20LED%20via%20Internet.ino