Visitor Tracking via Wi-Fi

Wi-Fi Probe request is used to actively seek any, or a particular access point.


For example, if you turn on the Wi-Fi of the smart phone, the smart phone will show all available AP list. At this time, the smart phone transmits the “Probe Request” packets to search the APs around. After then the phone will show a list of APs that sends the response packets to the phone.

The probe request packet includes MAC address information of the device. Therefore, if we can capture this probe request packet in any specific area, it is possible to collect the data about staying time of devices. In this posting, we will make a device to track Wi-Fi devices using probe request packets.


We need below hardware

  • WIZwiki-W7500 (ARM Cortex-M0 Platform)
  • WizFi310 : Wi-Fi Module (This module has the function to capture the probe-request packet.)


WizFi310 scans the probe request around and send the data to WIZwiki-W7500ECO. After parsing the data, WIZwiki-W7500 save the data in the SD Card.

The source code for this operation, can be downloadable from mbed.



We could get the below data.


  • X4000 : Probe request packet
  • xx:xx:xx ~~ : MAC Address
  • -84:RSSI (Wireless Signal Sensitivity)

By analyzing above raw data, we could get below result




  • WizFi310 captured about 36,000 Probe request packets
  • Found 343 MAC addresses
  • Captured 15,000 probe requests from a MAC address
  • Captured more than 1000 probe requests from 5 MAC addresses
  • Captured more than 100 probe requests from 33 address

If we use this ‘probe request packet capture’ function, we may be able to make the device to search the visitors who often visit a specific area and sends various information such as restaurant, movies, parking places and etc.

IoT Pet Feeder

If you have this ‘IoT Pet Feeder’, you can feed your pet on command from anywhere in the world and monitor them if they are O.K without any problem.

In this posting, we will introduce the initial version of a pet feeder. The author will develop this device by adding more functions such as Wi-Fi, network camera and etc.


As you see above image, a rotating typed servo motor is installed in the T-PVC with auger screws. The servo motor is controlled by the WIZwiki-W7500 platform. By implementing web server , you can remotely control the device from a web page. If you click below image, you can learn more about WIZwiki-W7500 (ARM cortex-M0 MCU platform board)


For the case, the author used various material. He made some parts by using 3D printer. If you go to the Thingivers site, you can easily find the 3D modeling files for pet feeder. For this project, he used the files from below link. 


We also need the T type PVC.


To save the cost, he used the pack of the Pringles.



Below is the servo motor image (Parallel Continuous Rotation Servo)


Now, let’s assemble them. When he printed the auger screw using above 3D modeling file, he found its size does not fit into the T-PVC. So he cut one side of the PVC.


It is not difficult to assemble the all the parts. He made the cap for the feeder with the Pringle cap. In the 0.1 version, as the network connection is implemented by Ethernet, you can see the network lines. In the next version, the Wi-Fi and network camera will be added.



As the web server is loaded on WIZwiki-W7500, you can control the device on the web page. If you click the “Network Information” menu, you can configure the network parameters for the device. The “Feeding Example” will provide the menus for motor control (Left/Light Control & Go/Stop Control) When the camera is installed to this device, you can monitor your pet through “Monitoring Example” menu.


All the codes are programed by mbed on-line compiler. If you go to below page, you can download the all source code. 


All the codes are programed by mbed on-line compiler. If you go to below page, you can download the all source code. 



Below is the demonstration movie.

Adding REST-based Web Services to IoT Device for IO monitoring


This project is to make a simple RESTful Web service library for IoT Devices. The library is written with C language code and on WIZwiki-W7500ECO platform board from WIZnet. With it, users can implement a RESTful Web service on IoT devices easily. Monitoring IoT devices can be done by RESTful API based on JSON, as well.


* Frozen JSON parser and generator for C/C++ included

* APIs for HTTP POST method will be added

* The post will be update continuously


I’ve also posted this at Instructables.



Step 1: Parts




WIZnet WIZwiki-W7500ECO Platform board

  • WIZwiki-W7500ECO is a compact platform board based on W7500, which is a SOC chip that integrates an ARM Cortex-M0, 128KB Flash memory and hardwired TCP/IP core.
  • W7500 is the best fit to IoT devices.


A computer for using KEIL uVision5 IDE

  • These library is developed and compiled with uVision5 IDE.



Step 2: Download, Build and RUN

Download the RESTful Web Server & I/O Control by REST API Project on GitHub repository


Build and Firmware write to target board: WIZwiki-W7500ECO

  1. Project Build
  2. Firmware Write
    • Writing firmware into WIZwiki-W7500ECO has three ways
      • Using the CMSIS-DAP (Drag and Drop)
      • Using the CMSIS-DAP (through KEIL uVision5)
      • Using the ISP (ISP, In-System Programming)
    • Please refer to WIZnet wiki site; How to write the firmware into WIZwiki-W7500P

Eric's Labs


This project is simple REST Web server library for small IoT devices. Users can be made the IoT device for REST-based web services available in this project using C language / WIZwiki-W7500ECO platform board.

Users can monitor your devices using REST APIs based on JSON.

* This project includes Frozen JSON parser and generator for C/C++

* HTTP POST method APIs are being developed.

* This posting will be continuously added.

I’ve posted at Instructables.

Step 1: Parts


WIZnet WIZwiki-W7500ECO Platform board

  • WIZnet WIZwiki-W7500ECO is a compact WIZwiki platform board based on W7500. The W7500 chip is one-chip solution which integrates an ARM Cortex-M0, 128KB Flash and hardwired TCP/IP core for various embedded application platform especially internet of things.

A computer for using KEIL uvision5 IDE

  • These library source code and project are developed based on uvision5 IDE

Step 2: Download, Build and RUN

Download the RESTful Web Server…

View original post 208 more words

Seeed Arch Link Board (VAR)

Arch Link is an mbed enabled development board based on Nordic nRF51822 and WIZnet W5500 ethernet interface. With Arduino form factor, Grove connectors and micro SD interface, it is extremely easy to create a bluetooth low energy device.


  • mbed enabled
    • Online IDE
    • Easy to use C/C++ SDK
    • Handy libraries
  • CMSIS DAP based on LPC11U35
    • Drag-n-drop programming
    • Debug using CMSIS DAP standard
    • USB virtual serial for communication
  • Arduino form factor with Grove connectors
    • I2C and UART connecter on board
  • Nordic nRF51822 Multi-protocol Bluetooth® 4.0 low energy/2.4GHz RF SoC
    • ARM Cortex M0 processor
    • 256kB flash/16kB RAM
    • Configurable I/O mapping for digital I/O
  • WIZnet W5500 Ethernet
    • Supports following Hardwired TCP/IP Protocols : TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE
    • Supports Power down mode
    • Supports Wake on LAN over UDP
    • Supports High Speed Serial Peripheral Interface(SPI MODE 0, 3)
    • Internal 32Kbytes Memory for Tx/Rx Buffers
    • 10BaseT/100BaseTX Ethernet PHY embedded
    • with RJ45 connector
  • USB Micro B connector
  • Micro SD Card connector

WIZnet New Product “WIZwiki-W7500P”


WIZwiki Platform

WIZnet WIZwiki Platform based on WIZnet’s MCU. WIZnet WIZwiki-W7500P is a WIZwiki platform board based on W7500P. The IOP4IoT W7500P chip is the one-chip solution which integrates an ARM Cortex-M0, 128KB Flash, hardwired TCP/IP core for various embedded application platform, 10/100 Ethernet MAC and PHY, and especially internet of things. The TCP/IP core is a market-proven hardwired TCP/IP stack and PHY is IC plus IP101G, an IEEE 802.3/802.3u Fast Ethernet Transcevier for 10/100Mbps. The Hardwired TCP/IP stack supports the TCP, UDP, IPv4, ICMP, ARP, IGMP and PPPoE which has been used in various applications for more than 15 years. W7500P suits users who need Internet connectivity best.

For more information, please visit:

To purchase this product, please visit:

[WIZnet’s New Product] WIZwiki-W7500ECONET


We are currently offering sales on our new product “WIZwiki-W7500ECONET” at a special rate just for our valuable customers. In stock and available now. No need to create an account to get this offer. Offer is only available at our online store; Offer expires on December 31st 2015. The price applies to the purchase price (excluding shipping, handling, and taxes) of the products. First come, first served basis. The number of this product is limited.


Bus Arrival Alarm based on ARM mbed WIZwiki-W7500

Eric's Labs

Check out this awesome Instructable.



I’ve making real-time bus arrival alarm device based on WIZnet WIZwiki-W7500 mbed IoT platform board. This device project for busy people in the morning. Perhaps, you could be more freely checking bus arrival without mobile phone for this device.

* This project made by korean. If you live in foreign country, you may need to be modified for Bus information system in yours.

Step 1: Concept


Step 2: Parts

Grove_-_piezo_buzzer_and_Grove_connector_resizeGrove_Base_Shield_v2_no_transparency  Grove_-_4_digit_displayGrove_-_oled_display_96x96wizwiki-w7500_resize

For this Project, you’ll need next things.

  • WIZnet WIZwiki-W7500 IoT Platform board
  • Seeed Studio Grove Devices
  • A Computer connecting to Internet
    • ARM mbed platform provided Web compiler (IDE)

View original post 134 more words

WIZnet WIZwiki-W7500 Tutorial Exercise 5. Reading the analog value using a variable resistor


This is an exercise to read Analog values made by variable resistor (potentiometer). The ADC (Analog Digital Converter) module of W7500 chip embedded in WIZwiki board is used. User can learn how to read sensor’s analog output data.

What you need

  • WIZwiki-W7500
  • USB cable
  • Breadboard
  • Jumper wire
  • Rotary Potentiometer (10K Ohm)


The Circuit

This is the circuit for this example.


WIZwiki and a variable resistor


Example Code

Below are the example codes. Delete the default code and copy/paste the codes below and compile.

#include "mbed.h"
AnalogIn analog_value(A0);
DigitalOut led(LED1);
int main() {
    float meas;
    printf("\nAnalogIn example\n");
    while(1) {
        meas =; // Converts and read the analog input value (value from 0.0 to 1.0)
        meas = meas * 3300; // Change the value to be in the 0 to 3300 range
        printf("measure = %.0f mV\n", meas);
        if (meas > 2000) { // If the value is greater than 2V then switch the LED on
          led = 0;
        else {
          led = 1;
        wait(0.2); // 200 ms

How to run and test result

When you download the compiled binary to the WIZwiki board and push the reset button, check the serial port message as rotating the dial of potentiometer. You can see the measured value (mV unit) periodically.

If user rotates the dial clock-wise, the measured value will increase. If the measured value is above than 2000mV, then the LED1 of WIZwiki board turns on. If the measured value is less than 2000mV, then the LED1 turns off.

The WIZwiki board can read analog values from external circuit and convert them to digital values.

Learning Resources

Next Exercise

  • Exercise 6. Reading the temperature sensor value

WIZnet WIZwiki-W7500 Tutorial Exercise 3. Blinking LED with a switch


This is an exercise to blink an LED with a switch. Users can learn how to put digital input into the WIZwiki board with a switch. Users can learn how to get digital output from a specified pin in the WIZwiki board.

What you need

  • WIZwiki-W7500
  • USB cable
  • Breadboard
  • Jumper wire
  • Switch
  • LED
  • Resistor (330 Ohm)
  • Test S/W : In order to check serial data, terminal program is required on the PC. Tera Term is used in this exercise.


The Circuit

This is the circuit for this example.

Button and LED

The LED for this example is placed on the WIZwiki board and it is shown in the red box in the cicuit below. RGB LED



Example Code

Below are the example codes. Delete the default code and copy/paste the codes below and compile.

#include "mbed.h"
DigitalOut myled(LED1);
DigitalIn mybutton(D6);
int main() {
    while(1) {
        if (mybutton == 1)
          myled = 0;
          myled = 1;

How to run and test result

DigitalOut myled(LED1) part configures LED1 as an output mode. DigitalIn mybutton(D6) part configures D6 pin as an input mode.

When pushing a button, the LED turns on. When 3.3V drives to D6 pin, mybutton will be recognized as “1”, myled becomes “0”. When myled becomes “0”, then the LED1 on the WIZwiki board turns on.

When you release the button, the LED turns off.

To learn Class and API like the DigitalOut and DigitalIn parts of the above example code, refer to the mbed Handbook page.

Next Exercise