DIY Smart Home Projects

The housing culture has been changing along to the smart home technology with development of IoT. Users are familiar with monitoring inside the house using webcam and controlling devices in the house remotely.

In addition, makers share their smart home projects on the Internet under the influence of open source hardware such as Arduino and Raspberry Pi.

This posting will show introduce the makers smart home projects.

Aquarium

Arduino Fish Tank Controller

This project shows how to implement web server using Arduino and Ethernet Shield for controlling the lighting device and feeding device used in aquariums. The author implements the device to monitor the temperature inside the aquarium and the outside temperature using temperature sensor.

Feeder

CatFeeder

The author developed this device to feed cats automatically.
There is a button attached to the device that can feed cats remotely. Users can also feed cats using smartphones because the Ethernet device is connected to the feeder.

Twitter Controlled Pet Feeder

This author implemented a device that can control pet feeder via Twitter Messages. Using the popular social network tool, Twitter, to control the pet feeder is the main feature of this project.

Garden

SmartGarden

This author built a system that can measure the temperature & humidity of the flowerpot and water them remotely. The cloud service called Paraimpu was used, enabling users to turn on and off the automatic watering system with a control signal from Twitter after sending the measured temperature value to Tweeter using Paraimpu.

CloudCooker

The author aimed to make a smart grill that can measure and control the temperature of the grill and food. This project can provide the function of controlling and printing out data in different forms at the Front-end using Azure cloud service created by Microsoft.


Please refer to each links to get more information about what was used in each projects; boards used, cloud systems, implementation method, and source codes.

You can easily learn the necessary techniquies from these materials and you’ll be able to create your own unique project by adding your own ideas.

My Convenient Daily Life

Everyone wants a convenient life and something that enables them to control everything via smartphone.
We can control the garage door, TV, boiler, air conditioner, and lights using our smartphones.

The topic of this curation is “My convenient Daily Life”.

1.Coffee Maker Mod

coffe maker mod

People drink a cup of coffee in the morning, usually they brew coffee using smartphone after taking a shower.
You can brew coffee by turning on and off the coffee maker. Although it seems simple, you will be able to earn a little extra time in the busy morning hours.

WIZnet Museum : http://wiznetmuseum.com/portfolio-items/coffee-maker-mod/?portfolioID=11544
Original : http://baltimorehackerspace.com/2012/01/coffee-maker-mod/
Source Code : https://github.com/theanti9/HTTPCoffeePot

2.Internet enabled catfeeder … powered by Arduino

Internet enable catfeeder

This project was created for feeding pets.
What if you worry about feeding your pet after you go to work? Feed your pet through internet. You don’t need to worry about feeding your pet anymore. Specially, you can leave your pet alone using this project when you go on vacation or go to business trip.

WIZnet Museum : http://wiznetmuseum.com/portfolio-items/internet-enabled-catfeeder-powered-by-arduino/
Original : http://www.klomp.de/index.php/catfeeder/english-version

3.Remote pan/tilt webcam

This project shows how to monitor the house anywhere at any time.

When you want to monitor your child in the house or if a thief enters your house, you can monitor it through a camera connected to the web.
It can rotate a full 360 degrees using a motor abd also includes recording function to figure out the face of an intruder.

WIZnet Museum : http://wiznetmuseum.com/portfolio-items/remote-pantilt-webcam/
Original : http://www.instructables.com/id/Remote-Pantilt-Webcam/
Source Code : http://www.instructables.com/files/orig/FXD/HCPV/ILWLBJ5G/FXDHCPVILWLBJ5G.ino

4. Air Conditioning web controlled by Arduino

This project was created for making a pleasant residential environment in the hot summer. It was created based on turning the air conditioner using IR sensor on the remote control. Users can turn on the air conditioner through internet using this project when they are outside.

What if the heat is driving you up the wall when you enter your house? Let’s turn on the air conditioner through web before you arrive home. Since you’ve already turned on the air conditioner, you’ll be happy to sit at home after work.

WIZnet Museum :http://wiznetmuseum.com/portfolio-items/air-conditioning-web-controlled-by-arduino-2/
Original : http://www.instructables.com/id/Air-Conditioning-web-controlled-by-Arduino/

Check out and apply these projects to your life for more convenient life style.

Open Community ARMmbed

Arduino LogoIt has already been a decade since Arduino was first introduced to the world. And since 2005, terms like open source hardware and software, have been used more commonly.

Nowadays, students can also implement their ideas into reality using Arduino; and the communities based on open source hardware and software have enabled it.

The number of makers using Arduino grows every second and communities made by makers play a powerful role in the era of IoT. The potential of IoT just seem endless thanks to Arduino.

 

To follow the trend of open source hardware, ARM corporation provided an alternative option beside Arduino with ARMmbed. ARMmbed provides an ecosystem in collaboration with many silicon partners, cloud partners, and device partners; ARM says that any developer can easily develop an IoT device platform and prototype using platforms and services provided in the ecosystem. ARMmbed expects to become the ecosystem that can lead the IoT era.

20160711_104621
20160711_103929ARMmbed first launched its beta version in 2009. Since then, ARMmbe built its ecosystem by collaborating with other IT companies like Atmel, NXP, Nordic, and STM. Almost 100 platforms based on Cortex-M series core were registered and around 400 components were used in that platform, resulting in creating over 17,000 projects and 6,000 libraries currently opened and registered. Also, mbed OS is slowly being considered as the most powerful OS in IoT device market since ARM was famous for developing CPU architecture.

However, mbed has not built a large fandom as Arduino so far although it has successfully made and provided an ideal environment. This post can help developers and makers who have not experienceed or underutilized ARMmbed.

Refer to these links for more details about ARMmbed.

Refer to these links if you would like to find out more about the 100 platforms, 400 components, and 20,000 codes.

 

Be aware that the ARMmbed ecosystem is an environment created by its users. Users made and shared more than 20,000 codes, thus there could be errors and difference in the implementation content. However, these difficulties are commonly found when obtaining info from the open source communities. Since ARMmbed ecosystem provides service simlir to Git, which many developers use, users can obtain the shared code and modify projects or libraries already created and send comments to ther users; and through these activities the code becomes more reliable.

One of the strengths of the ARMmbed ecosystem is the Web Compiler developed by ARMmbed.
ARMmbed brought the working environment for developers from Local to Web using this Web Compiler. This allows users to open and share many projects and libraries. And the data that developers use with platforms provided form ARMmbed, are currently being strored in the ARMmbed database through the Web compiler. As result, ARMmbed has been able to secure powerful resources of open source software in a short period of time.

The Web Compiler provides many advantages to the ARMmbed ecosystem and its developers, and one of those advantages is version management. Web Compiler enables easy version management since it provides simliar service as Git. Users can use and switch among the registered 100 platforms and easily compare with previous versions when working as a team.

The following links explain how to generate and compile projects on Web Compiler.

 

Lastly, the picture and link below is about the product development procedure in the ARMmbed ecosystem.

I will introduce various projects made with WIZwiki-W7500 platform board from WIZnet, Silicon partner of ARMmbed, in the next curation.

https://developer.mbed.org/explore/

Explore mbed

IoT Cloud Service

network-782707_960_720

There seems to be a lot of excitement about IoT these days. Gartner forecasts IoT devices would increase to 25 billion pieces in 2020 from 4.9 billion pieces in 2015. The industry will increase at least 5 times during the next 5 years. Although negative evaluation such as exaggerative advertisement of IoT exists, the fact is that the number of IoT device is sharply increasing at a fast phase. And if the number of IoT device increse, related service also increases. These related servicees will collect huge amounts of data and share the data with users after analysis. The capacity of server that handles IoT service should be in a state of flux depending on the amount of data collected if we consider the number of IoT device increased sharply. IoT service will also rapidly change since it is at an early stage. Then, the server program should be very flexible and IoT services require all levels of IT from “embedded” to “server”. Do you think this will require high technology? It does not. Cloud service meets all requirements; it can change capacity depending on the amount of data and its pricing and server programs are very flexible. Another advantage of cloud service is that users can drive its server by simply drawing a diagram instead of programming it.

server-1235959_960_720

So which companies lead the cloud service? Global companies provide cloud service such as Google cloud platform from Google, aws from Amazon, and azure from Microsoft. Besides that, there are endless companies providing cloud service.

amazon-aws-google-cloud-platform-microsoft-azure-606x404

This post will introduce a few of IoT cloud services from the WIZnet Museum.

1. IC2Cloud: www.ic2cloud.com

http://wiznetmuseum.com/portfolio-items/www-ic2cloud-com/

IC2Cloud is one of the easiest cloud service I experienced. The most powerful advantage of IC2Cloud is programming the server by using drag-amd-drop ICON such as App inventor. It is also specialized for IoT projects; there are 8 examples of Arduino uploaded on WIZnet Museum.

device builder

2. IBM Bluemix: Build a cloud-ready temperature sensor with the Arduino Uno and the IBM Watson IoT Platform

http://wiznetmuseum.com/portfolio-items/build-a-cloud-ready-temperature-sensor-with-the-arduino-uno-and-the-ibm-iot-foundation/

This project used bluemix cloud from IBM. It shows data in real-time graph after sending temperature data as MQTT protocol to IoT foundation server of Bluemix using Arduino and Ethernet Shield. MQTT is a typical IoT protocol made by IBM and used for Facebook chat.

IBM0

3. Dweet.io: Send data to dweet.io and freeboard.io

http://wiznetmuseum.com/portfolio-items/send-data-to-dweet-io/

This project used cloud platforms such as Dweet.io and Freeboard.io . It collects data through Dweet.io and shows the form that users want using Freeboard.io. Arduino and Ethernet Shield were used to implement this IoT device.

4. Cloud MQTT: How to implement embedded Mqtt Client using W5500 IC

http://wiznetmuseum.com/portfolio-items/how-to-implement-embedded-mqtt-client-using-w5500-ic/

This project  explained how to implement MQTT Client in W5500 custom board. For explanation, an exclusive cloud platform for MQTT called Cloud MQTT was introduced; it is made by using AWS cloud service and there is no need to implement MQTT Broker.

Picture of Preparing Broker server - CloudMQTT

5. ThingSpeak: Logging Data and Displaying Graphs over the Internet with Arduino

http://wiznetmuseum.com/portfolio-items/logging-data-and-displaying-graphs-over-the-internet-with-arduino/

This project introduced an IoT cloud service called ThingSpeak. It shows sent data using Arduino and Ethernet Shield in graphs and seems to be appropriate for beginners.

ThingSpeak chart

There are only 5 IoT cloud projects introduced in this post, but please visit WIZnet Museum for more info of IoT cloud projects.

Wiznet Museum site: http://wiznetmuseum.com/

 

Even though the usage of clouds for IoT these days is already widely used, more IoT cloud platforms will become available because of its usefulness.

If you are planning a business that provides IoT service, I suggest you wisely choose the right cloud server, service, or platform for your application.

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

Arduino pulse counting with multiple Energy Meters and logging to Emoncms

This project measures multiple energy meters to check its consumption rate. Its key features are to

  • monitor power consumption using multiple counters
  • store the collected data through a net connection to an Open Energy Monitor instance

 

Parts:

-Energymeter (One or more)

– IBOARD W5100 Ethernet Module for Arduino Development Board with POE / Xbee and SD Card Slot Expansion Free Shipping

 

URL & Code : http://blog.mrossi.com/?view=classic

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.

 

W5500-EVB Development Configuration

W5500-EVB is based on W5500 (WIZnet Ethernet Controller chip) and NXP ARM Cortex M0 MCU. It is usually used for evaluating W5500 and starting the IoT device development project.

To start the IoT development, we will set up the development configuration of W5500-EVB

  1. LPCXpresso Installation

LPC Xpress is development tool provided by NXP. It is based on Eclipse and using ARM-GCC compiler. If you go to http://www.lpcware.com/lpcxpresso/download, you can get the program. (It supports Windows, Linux, MAC OS)

 

  1. Flash Magic Installation

Flash Magic is the flash programming tool for NXP MCU. If you go to below link, you can get the program.

http://www.flashmagictool.com/

Get the installation file according to your PC operation system. (In here, we will explain with windows version)

flash

If you execute the download file, you can see below windows. Just by clicking the “Next” button, install the program.

flashmagic1

flashmagic2

flashmagic3

flashmagic4

flashmagic5

Click the “Install” button.

flashmagic6

Click the “Finish” button

flashmagic7

 

Run the Flash Magic program. If you can see the below window, the installation is correctly done.

flashmagic8

 

  1. How to create the new project

We will explain how to create the new project by using open library that provided by NXP. LPC11E36 MCU is used for the W5500-EVB. As NXP does not provide the open library of LPC11E35, we will modify the “LPCOpen for KPC11E68” library. You can download the modified library from below link.

Download

You can get the LPC Open library from below link.

http://www.lpcware.com/lpcopen

Run the LPCXpress and go to File -> New -> Project. You can see below window. Select “LPCExpresso C Project” and click “Next” button.

project11

Select “LPC11/LPC12 -> LPC11Exx -> LPCOpen – C Project” and click “Next”.

project21

Input the project name.

project31

Select the target MCU (LPC11E36)

project41

Import the LPC Open library. For the open library, use the librarythat modified for W5500-EVB (File Name : W5500_EVB_lib.zip). Click import button.

project51

project61

 

Select Chip/Board Library and click the Finish button.

Chip/Board Library

  • lpc_chip_11exx : Chip Library
  • wiznet_evb_w5500evb_board : Board Library

project8

Click “Next” button

project9

project10

project111

 

If you click the Finish button, a new project is created.project13

 

As shown in below , you can see the project has been created.

project14

WIZnet Technology Online Store (www.shopwiznet.com)

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