Smart Home With Arduino

Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

instructables

Smart Home With Arduino

by Nikus

Hello. can make your own smart home, all you need is parts
(listed below) and a lot of desire. So let's get started.
I will show you how to build your own smart home. It
shows the temperature both inside and outside, if the Expla na t io n o f a cro ny m s f o r be g inne r:
window is open or closed, shows when it rains and
make alarm when the PIR sensor senses move. I made GND - ground
the application on the android to display all the data
(you can also watch it on browser). You can see VCC - power
temperature in your home and other information
from all over the world! Application is translated to PIR - move sensor
english and polish. I built it because I wanted to make
my own smart home and control it. If you want, you

Step 1: Parts

All the parts cost me $90

Smart Home With Arduino: Page 1


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)

1
7

3 6
2
8

9
5 4 10

11

1. rain sensor
2. relay
3. ENC28J60
4. DS18B20 thermometer
5. resistor 4,7 k
6. microphone module
7. reed switch
8. PIR sensor
9. breadboard
10. Arduino
11. DS18B20 thermometer

Step 2: Connection

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

Smart Home With Arduino: Page 2


Step 3: Program

First you need to do is download, extract and import program to your arduino. In the comment is an
this library to arduino IDE. And download 1Wire explanation of the code.
library from here, Dallas temperature from here and
import them to arduino IDE too. You can upload this
Download
https://www.instructables.com/ORIG/FIZ/MU6L/I1FQ8B0M/FIZMU6LI1FQ8B0M.ino

Download
https://www.instructables.com/ORIG/FAC/MNUT/I1FQ8B5N/FACMNUTI1FQ8B5N.rar

Step 4: How It Works?

Smart Home With Arduino: Page 3


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 5.You have nished the installation, you can enable
make this (you can see it on the picture above): the application

1. t he rs rs t s t e p is do w nlo a d
s m a rt Ho m e . a pk le

2. S e nd a pk le t o y o ur pho ne

3. O pe n le m a na g e r a nd lo ca t e
s m a rt hHo m e . a pk le Application is translated to english and polish. In
browser you can turn on and o light but in app not
4 . Click o n it a nd click ins t a ll (if y o u ha v e because I can't do that, sorry.
e na ble d t he o pt io n t o ins t a ll a pplica t io ns
o ut s ide t he g o o g le pla y y o u ne e d t o t urn it
o n)

Smart Home With Arduino: Page 4


1

1. settings 1. click file manager

Smart Home With Arduino: Page 5


1

1. click smartHome.apk 1. click package installer

Smart Home With Arduino: Page 6


1. and click install

Download
https://www.instructables.com/ORIG/FY1/BDEB/I1EU1KXW/FY1BDEBI1EU1KXW.apk

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 o 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 noti cation. App retrieves the data from the motion sensor every minute.
In IP eld you must enter your IP address. You can check it here.

Smart Home With Arduino: Page 7


Smart Home With Arduino: Page 8
Smart Home With Arduino: Page 9
Smart Home With Arduino: Page 10
Step 7: Browser

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

You can use this instead of the application on android.

Smart Home With Arduino: Page 11


Step 8: Port Forwarding

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

2
1
4
3

1. click on port forwarding


2. click on advanced
3. and set this
4. click save

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 con gure it.

2
1

1. enter your ip
2. Choose hostname

Smart Home With Arduino: Page 12


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.

Download
https://www.instructables.com/ORIG/FE2/7O5X/I2D6N9HF/FE27O5XI2D6N9HF.rar

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

i am getting server timed out error while connecting thorugh browser also the relay is continuously
connecting disconnecting. please help
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);


Smart Home With Arduino: Page 13
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!
can you send the video of your prototype

can i know the block of this app in appinventor?

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

G.T

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

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

How can I send to the measure value of soil moisture to android phone with ethernet module
(enc28j60)?
Is it possible?
I need your arduino code which You already write on ardunio ide

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!
Great!

We are in the process done an excellent project and thank you and hope to stay in touch with us
Thank you thank you thank you thank you Nikus
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 : [email protected]
please if you find solution i need it , the same proplem ,
[email protected]
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?
Hi
I've got some problems with code. Can you help me please, because I'am new in arduino.

Smart Home With Arduino: Page 14


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.
Hi ther. I am stuck at ethershield library. I have tried 100s new downloads. the new ethercard
works. can anyone tell how can i mod to the code to ethercard library?
Hi can anybody help me with a strange problem. I am using all the same equipment. the code
doesnt give any error but the module doesn't take IP from the router, I have tried 3 different routers,
IPs and ports. It just happens when I am using the "ethershield" library. when i use ether card
library or the UIP library the modules takes the IP and example sketches work. now I have two
options.
Ether I change the code to newer "ethercard" liberary or I fix the problem. I have been struggling for
weeks. any help will be much appreciated
Which arduino do you use?

I m using leonardo.

hi, nikus. the library problem has been fixed, now i have problem with the app source code, can
you tell me which the source code in arduino IDE to declare between arduino and app? how to
connect it? thanks
You not need to change app code, install it on your phone only. Go to the android app click
settings (on the top on right) and here in edit text write your ip address where your arduino is
connected. Click save and now it will probably work. If not try to make connect by browser if still
not working try to open ports on your router.
ok, i will try it. i replaced ethernet module ENC28J60 with arduino ethernet shield W5100 because
ENC28J60 can't ping when i used local network, but arduino ethernet shield W5100 successful.
source code from you can work with arduino ethernet shield W5100, isn't it? and can it work if i use
local network or usb modem? thanks
No, this code is rather not compatible with your ethenet controller. Sorry for delay but I hadn't time
because I work on my next project.
are you serious? it can work if use ENC28J60 only?

ok, no problem. sorry if i disturbing you :)


I don't say no. I do not have W5100 so you need to check it. Maybe you need to change a little this
code. I don't know it but I hope it can work. No problem you not disturbing me. Good luck
Smart Home With Arduino: Page 15
ok. i have W5100 and ENC28J60, but ENC28J60 always error with library. where the code will be
change? Arduino IDE or App?
ok thank you nikus :)
heloo brother,
am currently doing this project. and i bought Ethernet shield W5100.
jst want to confirm with u. is that works with this shield? if yes, please tell where to change in the
coding part. would be helpful if u share ur experience.
my email : [email protected]
Hi Nikus, I have final project about smart house by motoring the doors, widows, lights,
electricity,etc. and control them by using mobile interface and contect them by using wifi network.
So, please If you have any idea about this help me. Thanks.
how did u solve library problem?

Hello!
Is it possible to make changes to the application file? Would be nice to change the text to
something more specific in my project. For example, change from "Window" to "Door". If so, how
do I do this?
Best Regards
Hi, Can any one tell me whats that connection between VCC(5V) and pin 7 of Arduino? what is
that thing the light greenish colur?
This is reed switch for detecting if window is open or closed.

Hello, most of the information on this guide is how to handle the software and the programming. So
I'm wondering what kind of hardware you use, what kind of voltage? Do you use a seperate power
supply and relays controlled by the output signals from the arduino? Could you explain that more in
detail please.
Mr NIKUS, please can you guide me on how to implement this same project using GSM network
instead of internet. MY MAIL IS: [email protected]. THANKS
Brother...I am also interested in implementing the same project using GSM network...If you have
the guide for that, it would be nice if you send it to me...
Thank you
This project is uniquely relevant. More power to your elbow author

Hi! I am having some difficulties with the sketch and the libraries... Could you send me the
hardware configuration (for Arduino Uno and Mega 2560), the right libraries and the sketches for
these boards? Please contact me at my e-mail address: [email protected] Thanks a lot

I'm curious as built file (program code) smartHome.apk


can you send me program code?
Very good project!!!can you send me code of android app?
My e-mail: [email protected]
Smart Home With Arduino: Page 16
Thanks! Look at last step :)

Cześć Nikodem! Całkiem fajny projekt. Myślałeś nad rozbudową tego systemu?

Cześć!
Wielkie dzięki! Tak, myślałem nad jego rozbudową i najprawdopodobniej podejmę się tego ciągu
najbliższych kilku miesięcy (aktualnie rozpocząłem pracę nad nieco innym projektem ale również
związanym z smart home). Zastanawiam się również nad zrobieniem następnej wersji
inteligentnego domu nie w arduino a w czystym C na AVR. Być może zrobię to tak aby można było
uruchomić kod napisany w C jak i w arduino. Jeszcze zobaczę. W następnym systemie będzie
zdecydowanie więcej opcji, planuję również napisanie zdecydowanie bardziej funkcjinalnej i lepiej
wyglądającej aplikacji a w ostatnim czasie jeśli chodzi o programowanie androida dość dużo się
nauczyłem. Więc jeśli jesteś zainteresowany następną wersją inteligentnego domu sprawdzaj co
jakiś czas mój profil lub odwiedź moją stronę na której piszę po Polsku: arduinopolska.cba.pl

Pozdrawiam
Can you tell me how can i log via browser to ardiuno using DDNS

I can't include dalas library!

Smart Home With Arduino: Page 17

You might also like