Title
Create new category
Edit page index title
Edit category
Edit link
MKR1000

Components
- Arduino MKR1000
Setup Your Environment
- Install the Arduino IDE (Integrated development environment). This is where You can download it for Mac OS X, Windows and Linux here. Detailed instructions can be found below:
- Installing the Arduino IDE for Windows
- Installing the Arduino IDE for Mac
- Installing the Arduino IDE for Linux
New to the Arduino IDE? If you are completely unfamiliar with the Arduino IDE, watch this video here to give you a better understanding of how it works.
In the Arduino IDE:
- Go to menu:
Tools > Board > Boards Manager - Search for
Arduino SAMD. When found, clickInstall

Select board and port
In the Arduino IDE:
- Select the Arduino/Genuino MKR1000 board type by going to
Tools > Board - Select the port that displays
Arduino/Genuino MKR1000If no name is displayed, you can find the port with the following steps:
Linux and Mac OS X
- Download and install the FTDI drivers from here. Select the appropriate version for your operating system and architecture.
- Open a terminal window and run the command
ls /dev/tty* - Look for a device with the name that begins with
/dev/ttye.g./dev/tty.usbmodemPy343431on MAC or/dev/ttyUSB0/dev/ttyACM0on Linux
For Linux, you may need to run the two commands below. Once you've completed that, reboot your computer. This will add permissions that will allow you to upload a sketch to the board.
sudo usermod -a -G tty ${USER}sudo usermod -a -G dialout ${USER}
Windows
- Download and install the FTDI drivers from here. Select the appropriate version for your operating system and architecture.
- Open the Windows start menu and search for
Device Manager - The COM port for the Pycom device will be listed as
USB Serial Deviceor something similar - Keep note of the COM port (e.g. COM4)
Install the required libraries
To complete the tutorial, additional libraries of functionality are required, these can be installed through the Arduino IDE in the following way:
In the Arduino IDE:
- Go to
Sketch > Include Libraries > Manage Libraries
In the search bar, search for the below libraries. When found, click on the library and a button will appear in the bottom right of the box that will allow you to install the library.
- WiFI101
- ArduinoHttpClient
- ArduinoJson

Create a new Sketch In the Arduino IDE:
- Click on
File > Newto create a new Sketch - Copy and paste the
publishEvent.inoorpublishLocation.inofrom the example code
#include <WiFi101.h>#include <ArduinoJson.h>#include <ArduinoHttpClient.h>const char WIFI_SSID[] = "your-wifi-ssid"; // WiFI ssid const char WIFI_PASS[] = "your-wifi-password"; //WiFI password// get this from the wia dashboard. it should start with `d_sk`const char* device_secret_key = "your-device-secret-key";WiFiClient client;int status = WL_IDLE_STATUS;// Wia API parameterschar server[] = "api.wia.io";char path[] = "/v1/events";int port = 80;StaticJsonDocument<200> jsonBuffer;HttpClient httpClient = HttpClient(client, server, port);JsonObject root = jsonBuffer.to<JsonObject>();void setup() { // initialize serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } Serial.println("Starting WiFI connection to Wia!."); // check for the presence of the shield: if (WiFi.status() == WL_NO_SHIELD) { Serial.println("WiFi shield not present"); // don't continue: while (true); } // attempt to connect to WiFi network: while ( status != WL_CONNECTED) { Serial.print("Attempting to connect to SSID: "); Serial.println(WIFI_SSID); // Connect to WPA/WPA2 network. Change this line if using open or WEP network: status = WiFi.begin(WIFI_SSID, WIFI_PASS); // wait 5 seconds for connection: delay(5000); } }void loop() { root["name"] = "hello-wia"; root["data"] = ""; // if you get a connection, report back via serial: if (client.connect(server, port)) { postToWia(root); } else { // if you didn't get a connection to the server: Serial.println("connection failed"); } delay(3000); // Wait for 3 seconds to post again}void postToWia(JsonObject& data){ String dataStr = ""; serializeJson(data, dataStr); httpClient.beginRequest(); httpClient.post(path); httpClient.sendHeader("Content-Type", "application/json"); httpClient.sendHeader("Content-Length", dataStr.length()); httpClient.sendHeader("Authorization", "Bearer " + String(device_secret_key)); httpClient.beginBody(); httpClient.print(dataStr); httpClient.endRequest(); }- Add the ssid and password for your WiFI
- Add the
device_secret_keywith your device secret key from the Wia Dashboard (the one that begins withd_sk).
In your Arduino IDE:
- Go to
Sketch > Uploadto send it to your MKR 1000
Now go to your device in the Wia dashboard and you should see the data appearing in the debugger.
