Visitor Tracking via Wi-Fi

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

wifi-probe-eng

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.

<Hardware>

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.)
  • SD CARD

probe-1

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.

https://developer.mbed.org/users/jehoon/code/WiFi_Tracker/

 

<Result>

We could get the below data.

probe-2

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

By analyzing above raw data, we could get below result

probe-3

probe-4

 

  • 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.

pet_1

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)

pet_2

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.

http://www.thingiverse.com/thing:34100 

pet_3d

We also need the T type PVC.

pet_t

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

pet_pringles

 

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

servo_motor

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.

pet_cut

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.

pet_ass

 

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.

pet_web

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

https://developer.mbed.org/users/justinkim/code/PetfeederWebServer/ 

pet_mbed

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

https://developer.mbed.org/users/justinkim/code/PetfeederWebServer/ 

pet_7500

 

Below is the demonstration movie.
http://serviceapi.nmv.naver.com/flash/convertIframeTag.nhn?vid=6D4D8D9CDCA3C6CF8B94CFC598BFBA7A56E0&outKey=V123dc08c6915ce680b6bf0c30a16fa6e01b1564b628dbdb7210ef0c30a16fa6e01b1

How to Measure the Oil Usage using Axeda Service (WizFi250)

Axeda provides advanced cloud-based service and software for managing connected products and machines and implementing innovative Machine-to-Machine [M2M] and Internet of Things (IoT) applications

The Axeda IoT Cloud Service includes

  • Axeda Connect – IoT Connectivity Middleware
  • Axeda Build – IoT Application Enablement Platform
  • Axeda Manage – Connected Machine Management Applications

If you want to know more about AXEDA Cloud service, click here.

From this tutorial, you can learn the basic skills about how to use the AXEDA service and send the data from the device to the AXEDA cloud.

<Go to the staging page on your AXEDA Toolbox account>

Go to the page http://toolbox.axeda.com and register your account.

As you see below, click the AXEDA READY icon and select ‘mbed LPC1768 Device”

axeda-1

 

axeda-2

We are going to use the WIZwiki-W7500 board, but it’s not supported yet by AXEDA cloud. So, we are going to use the LPC1768 toolbox.

Input the “Device Name” and click “Go” button. You can see the web page as below. As the serial number is required to operate the AXEDA example code, you must remember it.

axeda-7

 

<Materials>

For this project, we need below hardware.

WIZwiki-W7500 (MCU Platform)

axeda-3

WizFi250-EVB (Wi-Fi Shield)

wizfi250

Sensor Shield

sensor

Hardware Configuration

sensor_250

 

<Compile AxedaGo-WizFi250 Example onto WIZwiki-W7500 Board>

Connect to below link and get the WizFi250 AXEDA example code.

Link for AxedaGo-WizFi250 Example

axeda-4

Before compiling the example, add the serial number that you got from AXEDA Tool box.

axeda-5

After compiling the code, upload the binary to WIZwiki-W7500 board.

 

<Source Code>

 

<Test Result>

Send data to the demo application

After performing the above code, WIZwiki-W7500 and WizFi250 will transmit the sensing data to AXEDA Tool box. With the sensing data, AXEDA Tool box will create the mbed widget. If you operate the A0 switch on the sensor shield, you can see the changes on the AXEDA mbed widget.

axeda-6

 

<Log message on Serial Terminal>

 

<Demonstration Video>

WIZnet Technology Online Store (www.shopwiznet.com)

In order to purchase the WIZnet Products using in this project, please visit the following links.

 

Wi-Fi Geolocation Watch

This posting explains how you can acquire the position information from Geolocation server and time information from NTP server using WizFi250 & WIZwiki-W7500.

Below is the system diagram.

geolo-1

 

Hardware

You need below hardware parts :

geolo-2

  • WizFi250-EVB :  WizFi250-EVB is the evaluation board for WizFi250 Wi-Fi module. As it is compatible with Arduino, it could be used for Wi-Fi Shield for Arduino boards.

geolo-3

  • Sensor Shield : On this sensor shied, various sensors are mounted. Just by plugging to the WIZwiki-W7500, you can test the all the peripherals of the W7500.

geolo-4

  • SSD1306  OLED : 128 x 64 dot matrix panel

 

Hardware Configuration

WIZwiki-W7500 board controls the WizFi250 using UART0 RX/TX/CTS/RTS pins and SSE1306 OLED using I2C SDA/SCL pins.

geolo-5

geolo-6

Compile the example codes of WizFi250 Geolocation and NTP

You can download the example code from below link.

WizFi250 Gelocation_NTP Example 

The libraries of the example are as below.

<SSD 1306 Library>

To use this SSD1306 OLED, we used the GFX Library provided by Adafruit. We also found some bugs in Display() function and sends the “Pull Request” to modify the code.

<HTTP Client>

HTTP Client library is used for transmitting or receiving the Web server request/Response messages. The example connects to the ‘ip-api.com’ server to acquire the geolocation information. If you try to connect the server with ‘ip-api.com/csv’ address, you can get the information of the country, address, latitude, longitude and Time zone in csv format.

Click below link to download the HTTP Client library.

HTTP Client

 

<NTP Client>

NTP Client library acquires the UTC information from Network Time server by using UDP protocol. The example code will connect to ‘kr.pool.ntp.org’ the Korean NTP server domain.

NTP Client

 

<Example Source Code>

WizFi250-Geolocation_NTP

 

Below is the demonstration.

WIZnet Technology Online Store (www.shopwiznet.com)

In order to purchase WIZnet produts, please visit the following links.

Network Watch with 7 Segment

This posting explains how to make the network watch with 7 segment. The watch will acquire the network time information using SNTP (Simple Network Time Protocol) and displays the current time on the 7 segment using RTC (Real Time Clock)

7 segment display is a form of electronic display device for displaying decimal numerals that is an alternative to the more complex dot matrix display. If you want to know more about 7 Segment, Click below link.

About 7 Segment (Wikipedia)

SNTP (Simple Network Time protocol) is the network protocol to synchronize the time on Internet. RTC provides the current time information. It counts the date, time, minute and second by operating independently from the MCU or CPU

Hardware

  • WIZwiki-W7500 : 1EA (Cortex-M0 Platform board)
  • Common-Anode Type, Array 7 Segment : 2EA
  • BC547 : 8EA
  • Tact Switch : 1EA
  • 220Ohm Resistor : 16EA
  • 1kOhm Resistor : 8EA
  • 10kOhm Resistor : 1EA
  • 1uF : 1EA
  • Jumper Wires
  • Bread Board

Hardware Circuit

seven_seg_1

 

As you see above circuit image, the A~G pins from 7 segment are connected to WIZwiki-W7500 in parallel. Common pins can be optionally connected 3.3V using npn transistor.

seven_seg_2

Demonstration

As you see the demonstration movie, when the WIZwiki-W7500 is reset, it acquires the time information from NTP server. If the RED LED is on, it means the time information is successfully acquired from NTP server. The time information is registered to RTC. The current time of RTC is displayed on the 7 segment.

Whenever you press the switch, the time and data information is alternately displayed on the 7 segment.


Firmware Code

The firmware is programmed on the mbed on-line compiler. If you click below link, you can get the source code.

https://developer.mbed.org/users/nanjsk/code/SNTP_7SEG_WIZwiki_W7500/

WIZnet Technology Online Store (www.shopwiznet.com)

In order to purchase WIZnet produts, please visit the following links.

WIZKon

Have you ever heard about PiKon 3D Printed Telescope? It is the Raspberry Pi based telescope made by a physicist in England, and got £5,850 funding at the crowd funding site Indiegogo.

For more detail, refer to below

Pikon 3D Printed Telescope

One day, a WIZnet engineer decided to make the similar one, WIZKon – an Internet Telescope that its platform is WIZwiki-W7500. Let’s see how he made it. It is very simple and easy to follow.

Hardware

The following board and electronic parts are required.

3d_telescope_1

  • 3D CAD File : The main body of the telescope will be made by 3D printer. You download the CAD file from the link.
  • WIZwiki-W7500 : This is the mbed-enabled ARM cortex-M0 platform board. For more detail, click Here
  • Serial Camera : LJ-DSC02
  • LENS : SSG-B51
  • ETC : Rubber bands, 2mm x 10, 20 screw bolt, wire, black thick paper, plastic support, pin header socket and etc

3D Printed Bodies

If you use above CAD file, you could get the below bodies that printed by the 3D printer.

3d_telescope_2

Serial Camera Wiring

As shown below images, connect the wires to the main board of the serial camera. We are going to use this board to compress the image data from telescope into JPEG format and transmit it to the main platform board, WIZwiki-W7500.

  • Prepare the serial camera, Wires and Pin headers.
  •  serial_wire_1
  • Take off the screws from the back panel of the camera PCB
  • serial_wire_2serial_wire_3
  • Connect the wires by soldering to the PCB as below.
  • solder_wire_4
  • solder_wire_5
  • Connect the pin headers to the end of the wires as below.
  • solder_wire_6

Mounting the Camera Module

Mount the above camera module in the middle of the telescope.

camera_bodycamera_body-1

Assembling the bodies

As shown in below images, we assemble the bodies of the telescope and lenses. For the exterior body of the telescope, we used the black paper to save the cost.

camer_ass_1

camer_ass_2camera_ass_3

Assembling Everything

camer_ass_4

WIZwiki-W7500

Connect the camera module in the body of the telescope, to the WIZwiki-W7500 as below.

mbed

Firmware

You can download the mbed code about processing the camera image and Ethernet connectivity from below link.

Mbed source code repository

Test

telescope_test

Below is the screen capture of the PC viewer. The PC viewer has been made with C#. If you need the source code, contact to ricky@wiznet.co.kr

telescope_pc

WIZnet Technology Online Store (www.shopwiznet.com)

In order to purchase WIZnet produts, please visit the following links.

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

wizwiki-w7500eco3dtop_edit

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.

http://www.instructables.com/id/Adding-REST-based-Web-Services-to-IoT-Device-for-I/

 

 

Step 1: Parts

 

wizwiki-w7500eco_detailpinout

 

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

wizwiki-w7500eco3dtop

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.

http://www.instructables.com/id/Adding-REST-based-Web-Services-to-IoT-Device-for-I/

Step 1: Parts

wizwiki-w7500eco_detailpinout

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