Web of Things Semi-Final

Post-mortem link from last week here.

Since returning from a week-long conference trip, I have made additional progress to improve upon the half-working Web of Things light structure.

Things that were working last week:

  • 1/2 of the LED strips
  • Searching for access points within the area

Things that weren’t working last week:

  • Searching for wireless devices (phones, laptops, etc.) within the area
  • The other 1/2 of the LED strips. A connection broke in one of the LEDs.
  • Getting the Arduino & Raspberry Pi connected
  • Polish and structure stability in general

First, I determined whether or not detection of mobile devices was even possible with the wireless dongle that I had.  I installed the following programs that are specifically meant to grab information the wifi dongle sees:

After following several tutorials such as this one, these programs have returned just wireless access points on the Pi. Despite being advertised as a wireless dongle that has such capabilities, it’s possible that the hardware had limitations with what it could see.


Pi running airmon-ng. It sees some access points and a printer.


Pi running Kismet. Same thing as airmon-ng.

The Pi was able to consistently and accurately detect around 10-20 access points within the area and I decided that would be a decent range of points to display on the web. Instead of digging further, I moved onto hooking up the structure.

This is the code (as of 3/6/17) uploaded to the FLORA board. It listens for input from the Raspberry Pi via I2C and lights up the LEDs starting from the center of the web. Since only half of the NeoPixel strips were working, I had to make it work with just those strips.

Here is the code for the Raspberry Pi. It uses the wireless dongle and iwlist to scan for nearby wireless access points. Because iwlist doesn’t run on elevated privileges unless the Pi is already as superuser/admin, I had to take a snippet of the source and modify it (iwlist is under BSD license).

Video results of the combination above:

Video is sped up 3x. The structure is bouncing between 14 and 16 access points seen.

Now that both pieces work when connected, I had to make sure things still ran while un-tethered to a keyboard and monitor. I used forever & forever-service so that my wireless scanning script A) will run forever as long as the Pi is on and B) will run when the Pi is turned on. It was difficult to configure since I had an older version of nodejs installed, which confused forever on which version of nodejs to use when it was trying to run my script. Now the Pi is ready to be implemented within the structure.

Tomorrow will be a trip to the ECE Lab, where I will be attempting to fix the other half of the structure and hopefully polishing up the entire project.

Posting reference links I have used:

  • https://oscarliang.com/raspberry-pi-arduino-connected-i2c/
  • https://holisticsecurity.io/2016/02/02/everything-generates-data-capturing
  • wifi-anonymous-traffic-raspberrypi-wso2-part-i/
  • http://www.slidequest.com/q/70ang
  • https://stackoverflow.com/questions/13385029/automatically-start-forever-node-on-system-restart

Leave a Reply