What's the toughest part of building IoT applications? Someone says the jump wires usually make him frustrated, while the other guy says he hates soldering the most. There are even some people who don't like breadboard. Maybe you are not one of them, but the knowledge of electronic engineering, micro-controller programming, network programming, IoT protocols handling are still great burden between you and a successful IoT project.
In order to simplify all these steps, at the end of 2015, Seeed Studio initiated Wio Link on KickStarter, defined a new way of developing IoT applications. Wio Link is an ESP8266 SoC based open-source Wi-Fi development board, the best part of it is the associated platform that allows users to create IoT applications by virtualizing plug-n-play modules to RESTful APIs with mobile Apps. It means that there will be no hardware programming, no breadboard, no jumper wires, and no soldering, just by installing an App on your mobile phone, you are able to build a simple IoT project in 5 minutes.
- No hardware programming, No breadboard, No jumper wires, No soldering required.
- A lot of Grove modules are supported (Check the list in Mobile App).
- Plug-n-Play Grove Modules
- Visual configuration instead of microcontroller programming.
- Update automatically via cloud compiling and OTA.
- Bring real world to virtual platform. All sensors become virtual RESTful API.
- Android & iOS Apps to manage Wio Link.
- IFTTT supported by Seeed's Channel
|Size||55mm * 48mm||DC Current Per I/O Pin||12mA|
|Crystal||26MHz||Input Voltage (Micro USB)||5V|
|Flash Memory||4MBytes (W25Q32B)||Input Voltage (Battery holder)||3.4~4.2V|
|Wi-Fi Network Protocol||802.11b/g/n||Output DC Current||1000mA MAX|
|Wi-Fi Encryption Technology||WEP/TKIP/AES||Operating Voltage||3.3V|
|Grove Connectors||6||Charge Current||500mA MAX|
Make with Wio Link¶
Wio Link is well designed to provide simple Wi-Fi solutions for projects like:
- Smart Home
- Intelligent environmental monitoring
- Funny Toys
- Web of Things
- Internet of Things
In fact, we have already designed many projects in our recipe, come and visit it to find some interesting projects or even share you own projects, I am sure it will gain a lot of fans for you ~
|Irrigation control system||The internet of led wall||Dog feeding machine|
|MAKE IT NOW||MAKE IT NOW||MAKE IT NOW|
|Kickstarter Monitor||MIssing Call Monitor||Boss Key|
|MAKE IT NOW||MAKE IT NOW||MAKE IT NOW|
- Some of the recipe are made for Wio Node, but it can apply to Wio Link too.
|Digital Port 0||GPIO 14|
|Digital Port 1||GPIO 12|
|Digital Port 2||GPIO 13|
|UART Port||Pin 1 & Pin 3|
|I2C Port||Pin 4 & Pin 5|
|Status Light||Blue LED is the WiFi status indicator, Red LED indicates the working status|
|Configure Button||To configure and manage your Wio Link|
|Micro USB||To power the board or communicate to the PC|
|Reset Button||To reset the MCU|
Near to the FUNCTION button there’re 2 status Leds, a blue one and a red one. The BLUE led is the network status indicating led. It has the following blink patterns:
- breathing Under configuration mode
- blink twice quickly then off 1s requesting IP address from router
- blink once quickly then off 1s connecting to the server
- on 1s then off 1s The node is online
- on constantly the node is dead for not getting IP or not connecting to server.
- blink quickly (on 100ms then off 100ms) OTA
- The BLUE led is attached to GPIO2 which is also the TX pin of UART1. When downloading firmware, the UART1 dumps the data transmitting on UART0 by instinct. So the BLUE led will blink while downloading firmware. After startup the GPIO2 will be configured as a GPIO not TX of UART1.
The RED led is another status led which indicates the power status of Grove modules. All the six Grove interface’s VCC converge together and can be controlled with GPIO 15. When the node is in deep sleep mode, all the grove modules lose their power too. The RED led will light on when Grove modules are powered and will go off when Grove modules aren’t powered.
Wio Link has an inbuilt LiPo battery charger, so you can charge 3.7v LiPo battery through JST 2.0 Port when USB is connecting.
- Battery needs to be bought separately. Please visit Bazzar where we arranged many choices for you.
Let us build a very basic LED application with Wio Link, in this application you will be able to control LED by your smartphone in about 5 minutes. Before we start, please make sure you have below things on hand:
|Wio Link||Grove - LED||Micro USB Cable|
|GET ONE NOW||GET ONE NOW||GET ONE NOW|
- A smartphone is needed as well (Android OS version 4.1 or advanced, iOS version 7 or advanced)
- Grove - LED include a Grove cable already
STEP 1: Install Android/iOS App¶
You need to install the Wio Link App to manage and configure your Wio Link devices.
Download the Android or iOS App and install. Or you can go to App Store of Apple or Google Market and search "Wio Link", you will find it.
|Get Android App||Get iOS App|
- Make sure your Android OS version is 4.1 or advanced, iOS version is 7 or advanced.
STEP 2: Create your Account¶
- If it is your first time to use Wio APP, it may require GPS authorization, please approve it, then sign up.
- If you already have an account, check the server location before logging in.
- Please pay attention to the server location, because wrong server location will lead to failure when connecting to Wio Link.
STEP 3: Connect Wio Link Wi-Fi AP¶
- Push and hold the CONFIG button until the blue LED turns into breathing mode (i.e. blinking with fade in & fade out effect). It means that Wio Link has turned to configuration mode successfully and can be detected by the Wio App.
- Push "Add your first Device".
- Choose Wio Link
- "Go to Wi-Fi list" will lead you to the Wi-Fi setting interface of your smartphone.
- If you have successfully made the blue LED turn into breathing mode, you will find the Wio Link in the Wi-Fi list, connect to it!(Usually it is not called Wio Link in the Wi-Fi list, in the example, mine is Wio_8B2F12, you may find one named wio_xxxxxx in your list.)
- Once connected, you will receive a notice, then you can go back to the app
- Next step is connecting to the Wi-Fi of your home or company
- If there is password pf the Wi-Fi you want to connect, it may require you to enter the password
- Consider that you may need to connect more than 1 Wio device in the future, a special name will make you distinguish them from each other easily.
STEP 4: Virtually interconnect modules with Wio Link and update firmware¶
- Click the Wio Link and you will be in the main interface.
- There are 6 grove connectors, select the first one on the left.
- Because LED is output devices. Choose output category
- Find the icon that looks like a bulb, choose it.
- Then you will find the bottom rectangle button becomes red and "View API" becomes "Update Firmware". Choose "Update Firmware"
- Since you selected the Digital 0 port to connect with LED in the APP, you need to connect the real Grove-LED to Digital 0 port of Wio Link too.
STEP 5: Test application using APIs¶
- Now that you have successfully connect the LED to Wio Link, click "View API" to check the API of Wio Link
- Input "1" or "0" in the "Test Request" area, and click "Post" button and see what will happen.
Get started with IFTTT & DoButton¶
Dont't know how to code? Don't worry, with the help of IFTTT, even if you know nothing about coding, you are still able to build some simple projects.
IFTTT is an abbreviation of "If This Then That", it is a free web-based service that allows users to create chains of simple conditional statements, called "recipes", which are triggered based on changes to other web services such as Gmail, Facebook, Instagram. How does IFTTT work with Wio Link? As you can see in below pictures, Seeed provided cloud service at wio.seeed.io, which can interchange data and send instructions to IFTTT and Wio Link. So by creating some simple recipe, you are able to hack things without coding.
If you don't have an IFTTT account, click here to sign up.
If you already have an IFTTT account,click here to connect with Seeed, or search Seeed at IFTTT website. There you will find 9 recipes by Seeed to teach you how to us e IFTTT.
What is DoButton? DoButton is one of IFTTT's application that empowers you to create your own personalized button with just a tap, it is very suitable for building IoT projects and control it through your smartphone, here are two examples to show you how to use IFTTT&DoButton to make useful applications.
|[Recipe]DIY an Automatic Garden Irrigation without coding||[Recipe]How to feed your pets when you're not home|
|[Video]How to use ITFFF||[Video]How to use DoButton|
Guide for advanced users¶
Feel those examples too simple? Wanna make more complicated projects? Here are the best guides for advanced users to hack things with Wio Link. By these guides, advanced users are able to know more detail information about Wio Link, deploy private server, even write module driver for Wio Link.
The guide covers:
- API Reference
- Server Deployment Guide
- Advanced User Guide
- How to write module driver for Wio Link?
If you have successfully controlled the grove-led with your smartphone, and want to try something more difficult and not that complicated, why not try this tutorial, after learning it, you will be able to build a temperature and humidity monitor and light up the RGB Led strip with Wio Link.
Before you start, please check if you have below devices on hand.
|RGB Led strip||Grove-Temperature and Humidity Sensor|
|Get One Now||Get One Now|
- Step1: Remove the Grove LED from the grove connector, plug the Led strip to Wio Link and drag the same module to Wio Link in the App.
- Update the firmware.
- Step2：Plug the Grove-Temperature and Humidity Sensor to Wio Link and drag the same module to Wio Link in the App.
- Update the firmware.
- Step3: View the APIs and read the temperature & humidity in your house. Below image shows the temperature change before and after holding the grove in hand. I increased the temperature by 1 Celsius. Try and see how you can change the temperature and humidity in your house.
- Step4: Control the light of Led strip by changing RGB value.
Because the Wio Link App read hex RGB value, RGB value need to be converted to hex value. Here I would like to recommend the website RGB t0 Hex. Just by inputting RGB value for the 3 RGB elements (Red, Green, Blue), the website will converts the RGB value to hex very easily. Here is some example. - Input 255, 0, 0
- Convert it, then you will get the hex value as FF0000, the color is Red.
- The RGB value you input should be any nature number between 0 and 255 (Including 0 and 255)
Then input how many Leds you want to lighten and the hex value in the app, here my Led strip has 30 Leds, so I lighten all of them.
You can also specific which part of the strip be lighted and give a special color to it, or even make like blink in rainbow mode. A lot of amazing functions are waiting for your exploration!
More documentation and references
- API Reference
- Server Deployment Guide
- How to write module driver for Wio Link
- iot.seeed.cc to get more info.
Here are some questions that we usually received from new users. If you have any other issues when you are using Wio Link or other Wio products, welcome to the Community of Wio where there are many professional users waiting to give you advices and also many advanced users providing plenty of ideas on how to use Wio products!
1. Power & Battery － Does Wio Link come with a Lipo battery?
Nope. Each Wio Link goes with a micro USB cable for charging or you can purchase a 3.7V Lipo battery from our Bazzar. Here’s the specs for your reference: - maximum input voltage: 4.2V; - maximum charging current: 500mA.
2. Power & Battery - Can I use a power adapter with Wio Link? Which type? And common battery holders?
There are two ways to power the Wio Link, Micro USB cable or a 3.7V Lipo battery. If both Micro USB and battery are plugged into the board, the battery will be charged by the USB power. You can use all kinds of power adapter which can connect with Micro USB cable and 5Vdc output. The battery holder is a JST-2.0 connector.
3. Power Consumption - What’s the power consumption of Wio Link?
The average power consumption is 70mA. With a battery of 700mAh, it can keep alive up to 10 hours. There are Low-Power-APIs which allows you to change the Wio Link from working-mode to sleeping-mode. It will reduce average power consumption to 150uA or less.
4. Grove Cables - Are the Groves equipped with cables in all kits?
Yes, we have each Grove modules packed with one standard 4-pin Grove cable.
5. RESTful APIs - Where are the endpoints? The calls aren't required to go through some cloud servers are they? Is it an internet connection required or can they be made all through a local network?
We deploy the REST API server to iot.seeed.cc, so you can get access to sensor and actuator from iot.seeed.cc. At the moment, Wio Link must connect to the Internet. Also, we will open-source the server so as to enable users deploy local servers in very simple Docker way. With local servers deployed, they can utilize the compiling and data exchange service locally instead of going online.
6. Programming Methods Supported - Will other programming methods be supported, such as Arduino IDE?
Wio Link can be programed with Arduino IDE, in that case it will lose the functionality of RESTful APIs except you implement another one in the same time. Wio Link is mostly expected to archive the Web of Things conversion for physical hardware, so interactions are expected to perform in web / internet. But no worries, the software architecture is flexible, you can pull down the source code to local and connect Wio Link to the local servers, then you could modify the source code which will be compiled.
If you would like to interact with Arduino or RPI, you can develop a 3rd-party module driver and here’s the guide: https://github.com/Seeed-Studio/Wio_Link/wiki/How-to-write-module-driver-for-Wio-Link%3F and example driver: https://github.com/Seeed-Studio/Wio_Link/tree/master/grove_drivers/grove_example
7. Platform Supported -Does Wio Link support Windows Platform?
By now Wio Link provides Android and iOS two mobile Apps. We have all services as RESTful API, such like user accounts and OTA, following API documents, the third-party developers can build their own applications say Mobile Apps or Desktop Apps. Wio Link is an community friendly project. It won't be limited to a certain platform. We really expect people can play with Wio Link in their way.
8. Can I use Wio Link to interact with existing systems?
Yes. Who Link can interact with your existing system in several ways. First, connect any GPIO of Wio Link to other system, select “Generic Digital Input” or “Generic Digital Output” virtual Grove modules in the mobile App, then send/read signals to/from the existing system with RESTful API calls. Second, connect the analog port of Wio Link to other system, select “Generic Analog Input” virtual Grove module in the mobile App, then read analog measurement for some physical quantity of your existing system. Third, to interact with existing system more flexible, you can develop a 3rd party module driver in which dispatch the requests from internet to your existing system through I2C or UART interface. We have a guide about how to develop 3rd party module driver and also we can provide technical support for your development.
9. How many Groves supported on Wio Link?
There are 150+ kinds of plug and play Groves modules available, among which 36 were supported on Wio Link till now, and you can find most of them in the Rewards, we're working to add more continuously.
Here's the list of supported Groves so far:
Grove Support List¶
|101020008||Grove - Moisture Sensor||Analog||itself||link|
|101020014||Grove - Light Sensor||Analog||Generic Analog Input||link|
|101020015||Grove - Temperature Sensor||Analog||itself||link|
|101020017||Grove - Rotary Angle Sensor||Analog||Generic Analog Input||link|
|101020022||Grove - Light Sensor(P)||Analog||Generic Analog Input||link|
|101020023||Grove - Sound Sensor||Analog||ifself||link|
|101020027||Grove - Electricity Sensor||Analog||Generic Analog Input||link|
|101020036||Grove - Slide Potentiometer||Analog||Generic Analog Input||link|
|101020042||Grove - 80cm Infrared Proximity Sensor||Analog||Generic Analog Input||link|
|101020043||Grove - UV Sensor||Analog||itself||link|
|101020048||Grove - Rotary Angle Sensor(P)||Analog||Generic Analog Input||link|
|101020063||Grove - Loudness Sensor||Analog||itself||link|
|101020076||Grove - Luminance Sensor||Analog||itself||link|
|101020078||Grove - Air quality sensor v1.3||Analog||Generic Analog Input||link|
|101020003||Grove - Button||Digital||itself||link|
|101020004||Grove - Switch(P)||Digital||Generic Digital Input||link|
|101020005||Grove - Collision Sensor||Digital||Generic Digital Input||link|
|101020009||Grove - Line Finder||Digital||Generic Digital Input||link|
|101020018||Grove - Water Sensor||Digital||Generic Digital Input||link|
|101020020||Grove - PIR Motion Sensor||Digital||itself||link|
|101020025||Grove - Tilt Switch||Digital||Generic Digital Input||link|
|101020037||Grove - Touch Sensor||Digital||Generic Digital Input||link|
|101020038||Grove - Magnetic Switch||Digital||itself||link|
|101020046||Grove - Hall Sensor||Digital||itself||link|
|101020049||Grove - Flame Sensor||Digital||Generic Digital Input||link|
|111020000||Grove - Button(P)||Digital||Generic Digital Input||link|
|101020073||Grove - Electromagnet||Digital||itself||link|
|101020090||Grove - Water Atomization v1.0||Digital||Generic Digital Output||link|
|103020004||Grove - Solid State Relay||Digital||itself||link|
|103020005||Grove - Relay||Digital||itself||link|
|103020008||Grove - MOSFET||Digital||Generic Digital Output||link|
|103020010||Grove - 2-Coil Latching Relay||Digital||Generic Digital Output||link|
|103020014||Grove - Dry-Reed Relay||Digital||itself||link|
|104020001||Grove - Variable Color LED||Digital||Generic Digital Output||link|
|104020002||Grove - Purple LED (3mm)||Digital||Generic Digital Output||link|
|104020005||Grove - LED String Light||Digital||Generic Digital Output||link|
|104030005||Grove - Red LED||Digital||Generic Digital Output||link|
|104030007||Grove - Green LED||Digital||Generic Digital Output||link|
|104030009||Grove - White LED||Digital||Generic Digital Output||link|
|104030010||Grove - Blue LED||Digital||Generic Digital Output||link|
|104030014||Grove - Multi Color Flash LED (5mm)||Digital||Generic Digital Output||link|
|105020003||Grove - Vibration Motor||Digital||Generic Digital Output||link|
|105020004||Grove - Mini Fan||Digital||Generic Digital Output||link|
|105020005||Grove - EL Driver||Digital||itself||link|
|107020000||Grove - Buzzer||Digital||Generic Digital Output||link|
|107020001||Grove - Speaker||Digital||itself||link|
|101020034||Grove - 3-Axis Digital Compass||I2C||itself||link|
|101020039||Grove - 3-Axis Digital Accelerometer(±1.5g)||I2C||itself||link|
|101020050||Grove - 3-Axis Digital Gyro||I2C||itself||link|
|101020072||Grove - Barometer Sensor (BMP180)||I2C||itself||link|
|101020083||Grove - Gesture||I2C||itself||link|
|101020088||Grove - Multichannel Gas Sensor||I2C||itself||link|
|103020013||Grove - I2C ADC||I2C||itself||link|
|104030008||Grove - OLED Display 1.12''||I2C||itself||link|
|104030011||Grove - OLED Display 0.96''||I2C||itself||link|
|105020001||Grove - I2C Motor Driver||I2C||itself||link|
|107020006||Grove - I2C FM Receiver||I2C||itself||link|
|101020192||Grove - Barometer(BMP280)||I2C||itself||link|
|101020193||Grove - Temp&Humi&Barometer Sensor(BME280)||I2C||itself||link|
|101020010||Grove - Ultrasonic Ranger||Ditital||itself||link|
|101020016||Grove - Infrared Receiver||Digital||itself||link|
|101020019||Grove - Temperature&Humidity Sensor Pro||Digital||itself||link|
|101020026||Grove - Infrared Emitter||Digital||itself||link|
|101020029||Grove - Infrared Reflective Sensor||Others||itself||link|
|101020030||Grove - Digital Light Sensor||I2C||itself||link|
|101020040||Grove - IR Distance Interrupter||Digital||itself||link|
|103020018||Grove - Recorder||Digital||itself||link|
|104020006||Grove - LED Bar v2.0||UART||itself||link|
|104030003||Grove - 4-Digit Display||UART||itself||link|
|316010005||Grove - Servo||Digital||itself||link|
|101020067||Grove - CO2 Sensor||UART||itself||link|