Smart Home With Arduino

219,309

1,473

106

About: Hi, my name is Nikodem Bartnik. I live in Poland, I'm 18 years old. I like to program and create robots, devices and things. In the future, I want to start a company that creates new technology. Right now I ...

Hello.

I will show you how to build your own smart home. It shows the temperature both inside and outside, if the window is open or closed, shows when it rains and make alarm when the PIR sensor senses move. I made the application on the android to display all the data (you can also watch it on browser). You can see temperature in your home and other information from all over the world! Application is translated to english and polish. I built it because I wanted to make my own smart home and control it. If you want, you can make your own smart home, all you need is parts (listed below) and a lot of desire. So let's get started.

Explanation of acronyms for beginner:

GND - ground

VCC - power

PIR - move sensor

Step 1: Parts

All the parts cost me $90

- Arduino

- Ethernet module ENC28J60

- Thermometer DS18B20 x2

- Microphone module

- Rain sensor

- PIR sensor

- Reed switch

- Relay

-resistor 4,7k Ω

-twisted-pair cable

-ethernet cable

-tools (soldering, screwdriver)

Step 2: Connection

Above I added picture from fritzing with connection. If you have a problem with it leave a comment.

Step 3: Program

First you need to do is download, extract and import this library to arduino IDE. And download 1Wire library from here, Dallas temperature from here and import them to arduino IDE too. You can upload this program to your arduino. In the comment is an explanation of the code.

Step 4: How It Works?

When you click refresh in your app or in browser Arduino sends data to smartphone/browser. Application gets source code from each page ( /tempin, /tempout, /rain, /window, /alarm) and displays it on your phone.

Step 5: Appliaction for Android.

To instal app on your android phone you need to make this (you can see it on the picture above):

1. the firs first step is download smartHome.apk file

2.Send apk file to your phone

3.Open file manager and locate smarthHome.apk file

4.Click on it and click install (if you have enabled the option to install applications outside the google play you need to turn it on)

5.You have finished the installation, you can enable the application



Application is translated to english and polish. In browser you can turn on and off light but in app not because I can't do that, sorry.

Step 6: Application Configuration

I'll explain how the application works. It's shows all data from your home. You can click on settings icon to edit your IP address and turn on or off alarm. When you turn on alarm, app get data from PIR sensor in service and if it's detected move in your home it's make a notification. App retrieves the data from the motion sensor every minute. In IP field you must enter your IP address. You can check it here.

Step 7: Browser

Type in your browser your ip / all. There you can see all the data and turn on and off light.

You can use this instead of the application on android.

Step 8: Port Forwarding

You need to open port on your router. Open your router configuration and set arduino ip and open port 80. You can see it on image above.

Step 9: NO IP (optional)

You can set up an account at no ip but this is not necessary. In the picture above you can see how to configure it.

Step 10: Test It!

If you want to see the data on your computer you can do this by typing into your browser yourip / all (e.g. 12.345.678.901/all) or use android application.

Remember to leave a comment and click favourite if you like my project :)

Step 11: EDIT: Android App Source Code

Because many people asked me about android source code I add it below.

Share

Recommendations

  • Optics Contest

    Optics Contest
  • Plastics Contest

    Plastics Contest
  • Make it Glow Contest 2018

    Make it Glow Contest 2018

106 Discussions

0
None
JovanS11

Question 2 months ago

I would like to implement this project at my home, but etherShield is no longer maintained.

Can the sketch be migrated to EtherCard and how? Or is there some other solution?

0
None
AshwanthB1

Question 3 months ago on Step 2

why do we use microphone module

0
None
ANIRUDHHRAVI1998

1 year ago

Hi When I try to run the program it I am getting a error saying " error compiling on Arduino leonardo"

Error.JPG
0
None
sahilg45

1 year ago

i am getting server timed out error while connecting thorugh browser also the relay is continuously connecting disconnecting. please help

0
None
mnichrudolf

1 year ago

Hello,

I still have an error in the compilation. Someone has an idea what to change?

Arduino:1.6.12 (Windows 10), Płytka:"Arduino/Genuino Uno"

In file included from C:\Program Files (x86)\Arduino\libraries\etherShield/etherShield.h:25:0,

from C:\Users\admin\AppData\Local\Temp\untitled921585978.tmp\sketch_jan13a\sketch_jan13a.ino:16:

C:\Program Files (x86)\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:66: error: 'prog_char' does not name a type

extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

^

In file included from C:\Users\admin\AppData\Local\Temp\untitled921585978.tmp\sketch_jan13a\sketch_jan13a.ino:16:0:

C:\Program Files (x86)\Arduino\libraries\etherShield/etherShield.h:34:65: error: 'prog_char' does not name a type

uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

0
None
GeeksTipsDotCom

1 year ago

Interesting but this is not smart ... its just playing with Arduino cheap modules. Also you could use a ESP8266 Arduino WiFi module instead of ENC28J60. You can find here more about what smart house should be. Thank you for your work!

0
None
ShyamM11

2 years ago

can you send the video of your prototype

0
None
hasmilazlan

2 years ago

can i know the block of this app in appinventor?

0
None
AndrewJ110

2 years ago

CAn i know the code for this project on the W5100 shield?

0
None
pallaviaris

2 years ago

Please can u tell spesifically which changes u have in code for the w5100 shield?

0
None
AckapT

2 years ago

if (strcmp(params,"all")==0) /// what this parameter "all" ????

0
None
Halil SelimG

2 years ago

How can I send to the measure value of soil moisture to android phone with ethernet module (enc28j60)?

Is it possible?

0
None
Halil SelimG

2 years ago

I need your arduino code which You already write on ardunio ide

0
None
ZulR

2 years ago

Thanks for the instructions. I made it but, I used different Ethernet shield which is W5100. It doesnt need special library, just use the libraries provided by Arduino IDE. Just need to make over the code. Fortunately, it works like a charm!

1 reply
0
None
NikusZulR

Reply 2 years ago

Great!

0
None
mirza1994ahmedsaad.zizou

Reply 3 years ago

hello brother Ahmed.
am doing this same project but am stuck in ethernet module.
can u plz share the details of it. currently am using arduino mega and Ethernet shield module W5100,so if u have the sketch and connections ..plz share it ..thank u ...!
my email : mirzzz21@gmail.com

0
None
yasserm9mirza1994

Reply 2 years ago

please if you find solution i need it , the same proplem ,

yassermunther2003@yahoo.com

0
None
KemalB1

2 years ago

Thank you for your sharing. I want to ask somethings:
after use "no ip" are we need to adjust port setting on router or not? For example if my dynamic "no ip" adress is "127.253.252.80" and can we use directly in our arduino code as like this ?
static char myip[127,253,252,80] ;
And second question about forwarding:
for example my arduino adress is "192.168.0.200" and after that in my router to setting this adress like this "192.168.0.200:8080 or :8181. So can ı use this adress outside of my network? For example ı want to check one of sensor situation in my home when ı am out side of home. Than ı write this 192.168.0.200:8080. Can ı see to sensor position?

0
None
stanisławb

2 years ago

Hi

I've got some problems with code. Can you help me please, because I'am new in arduino.

C:\Users\biale\Downloads\smart_home\smart_home.ino:146:30: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

ethernet.print("</center>");

--> a lot of problems how this.

C:\Program Files (x86)\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:77: error: ISO C++ forbids declaration of 'progmem_s' with no type [-fpermissive]

extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

--> this,

C:\Program Files (x86)\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:66: error: 'prog_char' does not name a type

extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

--> this

In file included from C:\Program Files (x86)\Arduino\libraries\etherShield/etherShield.h:25:0,

from C:\Users\biale\Downloads\smart_home\smart_home.ino:16:

--> and this.