Sunteți pe pagina 1din 14

Arduino

Coordonator: S.l. Dr. Ing. Iulian-Claudiu DUTU


Student: Stanciu Claudiu
Grupa: CPTSB I

SCURT ISTORIC
Arduino este o companie open-source care produce, att placate de dezvoltare bazate
pe microcontrolere, ct i partea de software destinat funcionrii i programrii acestora. Pe lng acestea
include i o comunitate uria care se ocup cu creaia i distribuirea de proiecte care au ca scop crearea de
dispozitive care pot sesiza i controla diverse activiti sau procese n lumea real.
Proiectul este bazat pe designul plcilor cu microcontroler, produse de c iva furnizori, folosind
diverse tipuri de microcontrolere. Aceste plci pun la dispozi ia utilizatorului pini I/O, digitali i analogici,
care pot fi interfaai cu o gam larg de plcu e numite scuturi (shield-uri) i/sau cu alte circuite. Plcile au
interfee de comunicaii seriale, inclusiv USB pe unele modele, pentru a ncrca programe din calculatorele
personale. Pentru programarea microcontrolerelor, Arduino vine cu un mediu de dezvoltare integrat (IDE)
bazat pe proiectul Processing, care include suport pentru limbaje de programare ca C i C++.
Arduino a nceput n 2005, ca un proiect al unui student al Institutului de Interac iune a Designului
din Ivrea, Italia. La acea vreme studenii foloseau o plcu de dezvoltare BASIC Stamp, care costa 100 de
dolari, ceea ce era considerat foarte scump pentru studen i. Massimo Banzi, unul dintre fondatori, era student
la Ivrea. Numele "Arduino"provine de la un bar din Ivrea, locul unde o parte din fondatori obinuiau s se
ntlneasc.
Arduino are ca int asigurarea unei soluii ieftine i simple pentru nceptori i profesioni ti spre a
crea dispozitive capabile s interacioneze cu mediul, folosind senzori i sisteme de ac ionare. Cele mai
comune exemple sunt dispozitivele pentru utilizatorii nceptori precum: robo ii simpli, termostatele i/sau
detectoarele de micare.

CASA SMART

Cum funcioneaz un sistem de automatizare acas fr fir?


O instalaie de acest tip este compus dintr - o "unitate central, care constituie inima sistemului i
comunic i gestioneaz toate dispozitivele periferice prezente n cas.
Aceasta este de obicei un calculator personal sau un sistem dedicat Pagina de automatizare prin care
se poate controla casa de la o distan.
Folosind un protocol de comunicare non-proprietate, comunicarea ntre dispozitivele din casa devine
instrumentul pentru a oferi consumatorilor cu capacit ile necesare pentru a monitoriza i controla pana i
consumul de energie electric.

Fundamental la un sistem de automatizare fr fir este apoi gestionarea la distan , pentru a putea
verifica casa , oriunde v aflai. Tot ce trebuie este o conexiune la Internet, iar casa va fi monitorizat printrun computer, o tablet sau un smartphone de oriunde.
Un sistem de automatizare fr fir poate fi, prin urmare, de diferite niveluri de complexitate n func ie
de numrul i caracteristicile dispozitivelor conectate.
Doar pentru a avea o idee vom vedea o list a diferitelor domenii de aplicare de automatizare fr fir:
Instalaii de iluminat;
Sisteme audio video, cum ar fi TV, cablu cutie, stereo;
nclzire i rcire;
puncte de lumin ca i ferestre, dar, de asemenea, obloane, jaluzele sau perdele;
Intrare i securitate, i anume gestionarea de por i, garaje i sisteme de detec ie a intrusilor;
spaii n aer liber, cum ar fi copertine, pergole i sisteme de irigare.
Beneficiile unui sistem de automatizare ar fi:
Mai mult confort: automatizarea permite utilizatorului s efectueze diferite ac iuni cu o
singur telecomand

Securitate: Una dintre aplicaiile cele mai rspndite de automatizare acas fr fir este cea
cu sisteme de supraveghere video , alarma si antiefractie, care v permit s fie notificat
prompt n cazul unei tentative de spargere , n propria cas
Economie de energie: cu senzori speciali ai putea fi capabil de a optimiza consumul de
combustibil folosind energie atunci cnd ntr - adevr nevoie
Suport: automatizare la domiciliu permite persoanelor cu handicap sau cu mobilitate redus
pentru a efectua mai multe aciuni n cas n deplin autonomie.

De ce anume avem nevoie pentru a ne crea proriul nostru sistem de automatizare?


Unitatea centrala in cazul nostru va fi o placuta Arduino la care se adauga un shield pentru internet,
ce face ca unitatea noastra sa poata afisa si primi informatii direct din panoul de comanda al casei.

Fig.1 Montarea acestui shield de internet pe placuta Arduino UNO


Panoul de comanda reprezinta o interfata web a tuturor comenzilor ce se pot actiona prin intermediul
acestui sistem, si totodata afiseaza valorile senzorilor instalati.

Fig.2. Panoul de comanda

Automatizarea luminii

Componentele de mai sus sunt pentru a face de un singur controler de bord v pute i multiplica
numrul de componente n funcie de ct de multe controler de releu pe care dori i.

Cod sursa:
//for use with IDE 1.0
//open serial monitor to see what the arduino receives
//use the \ slash to escape the " in the html
//for use with W5100 based ethernet shields
// this project is hosted at
// http://code.google.com/p/arduino-autohome/
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x78, 0xE0 }; // <------- PUT YOUR MAC Address Here
byte ip[] = { 192, 168, 1, 102 }; //
<------- PUT YOUR IP Address Here
byte gateway[] = { 192, 168, 1, 254 }; //
<------- PUT YOUR ROUTERS IP Address to which your
shield is connected Here

byte subnet[] = { 255, 255, 255, 0 }; //


<------- It will be as it is in most of the cases
EthernetServer server(80); //
<------- It's Defaulf Server Port for Ethernet Shield
String readString;
//////////////////////
void setup()
{
pinMode(6, OUTPUT); // Pin Assignment through which relay will be controlled
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
//start Ethernet
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
//enable serial data print
Serial.begin(9600);
Serial.println("server LED test 1.0"); // so that we can know what is getting loaded
}
void loop()
{
// Create a client connection
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request
if (readString.length() < 100) {
//store characters to string
readString += c;
//Serial.print(c);
}
//if HTTP request has ended
if (c == '\n') {
///////////////
Serial.println(readString); //print to serial monitor for debuging
/* Start OF HTML Section. Here Keep everything as it is unless you understands its working */
client.println("HTTP/1.1 200 OK"); //send new page
client.println("Content-Type: text/html");
client.println();
//client.println("<meta http-equiv=\"refresh\" content=\"5\">");
client.println("<HTML>");
client.println("<HEAD>");
client.println("<meta name='apple-mobile-web-app-capable' content='yes' />");
client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
client.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"http://arduinoautohome.googlecode.com/svn/trunk/autohome.css\" />");

client.println("</HEAD>");
client.println("<body bgcolor=\"#D0D0D0\">");
client.println("<hr/>");
client.println("<hr/>");
client.println("<h4><center><img border=\"2\" src=\"https://lh3.googleusercontent.com/C6BoJrRUFko/UEUFeCwkvdI/AAAAAAAAAOc/E7gcYvPV6r4/s960/Logo.jpg\" /></center></h4>");
client.println("<hr/>");
client.println("<hr/>");
client.println("<br />");
client.println("<br />");
client.println("<br />");
client.println("<br />");
client.println("<br />");
// Relay Control Code
client.println("<a href=\"/?relay1on\"\">Turn On Light 1</a>");
client.println("<a href=\"/?relay1off\"\">Turn Off Light 1</a><br />");
client.println("<br />");
client.println("<br />");
client.println("<br />");
client.println("<br />");
client.println("<a href=\"/?relay2on\"\">Turn On Light 2</a>");
client.println("<a href=\"/?relay2off\"\">Turn Off Light 2</a><br />");
client.println("<br />");
client.println("<br />");
client.println("<br />");
client.println("<br />");
client.println("<a href=\"/?relay3on\"\">Turn On Light 3</a>");
client.println("<a href=\"/?relay3off\"\">Turn Off Light 3</a><br />");
client.println("<br />");
client.println("<br />");
client.println("<br />");
client.println("<br />");
client.println("<a href=\"/?relay4on\"\">Turn On Light 4</a>");
client.println("<a href=\"/?relay4off\"\">Turn Off Light 4</a><br />");
client.println("<br />");
client.println("<br />");
// control arduino pin via ethernet Start //
if(readString.indexOf("?relay1on") >0)//checks for on
{
digitalWrite(6, HIGH); // set pin 4 high
Serial.println("Led On");
client.println("<link rel='apple-touch-icon' href='http://chriscosma.co.cc/on.png' />");
//client.println("Light 1 Is On");
client.println("<br />");
}
else{

if(readString.indexOf("?relay1off") >0)//checks for off


{
digitalWrite(6, LOW); // set pin 4 low
Serial.println("Led Off");
client.println("<link rel='apple-touch-icon' href='http://chriscosma.co.cc/off.png' />");
//client.println("Light 1 Is Off");
client.println("<br />");
}
}
if(readString.indexOf("?relay2on") >0)//checks for on
{
digitalWrite(7, HIGH); // set pin 4 high
Serial.println("Led On");
client.println("<link rel='apple-touch-icon' href='http://chriscosma.co.cc/on.png' />");
//client.println("Light 2 Is On");
client.println("<br />");
}
else{
if(readString.indexOf("?relay2off") >0)//checks for off
{
digitalWrite(7, LOW); // set pin 4 low
Serial.println("Led Off");
client.println("<link rel='apple-touch-icon' href='http://chriscosma.co.cc/off.png' />");
//client.println("Light 2 Is Off");
client.println("<br />");
}
}
if(readString.indexOf("?relay3on") >0)//checks for on
{
digitalWrite(8, HIGH); // set pin 4 high
Serial.println("Led On");
client.println("<link rel='apple-touch-icon' href='http://chriscosma.co.cc/on.png' />");
// client.println("Light 3 Is On");
client.println("<br />");
}
else{
if(readString.indexOf("?relay3off") >0)//checks for off
{
digitalWrite(8, LOW); // set pin 4 low
Serial.println("Led Off");
client.println("<link rel='apple-touch-icon' href='http://chriscosma.co.cc/off.png' />");
//client.println("Light 3 Is Off");
client.println("<br />");
}
}
if(readString.indexOf("?relay4on") >0)//checks for on

{
digitalWrite(9, HIGH); // set pin 4 high
Serial.println("Led On");
client.println("<link rel='apple-touch-icon' href='http://chriscosma.co.cc/on.png' />");
//client.println("Light 4 Is On");
client.println("<br />");
}
else{
if(readString.indexOf("?relay4off") >0)//checks for off
{
digitalWrite(9, LOW); // set pin 4 low
Serial.println("Led Off");
client.println("<link rel='apple-touch-icon' href='http://chriscosma.co.cc/off.png' />");
//client.println("Light 4 Is Off");
client.println("<br />");
}
}
// control arduino pin via ethernet End //
// Relay Status Display
client.println("<center>");
client.println("<table border=\"5\">");
client.println("<tr>");
if (digitalRead(6))
{
client.print("<td>Light 1 is ON</td>");
}
else
{
client.print("<td>Light 1 is OFF</td>");
}
client.println("<br />");
if (digitalRead(7))
{
client.print("<td>Light 2 is ON</td>");
}
else
{
client.print("<td>Light 2 is OFF</td>");
}
client.println("</tr>");
client.println("<tr>");
if (digitalRead(8))
{
client.print("<td>Light 3 is ON</td>");
}
else

{
client.print("<td>Light 3 is OFF</td>");
}
if (digitalRead(9))
{
client.print("<td>Light 4 is ON</td>");
}
else
{
client.print("<td>Light 4 is OFF</td>");
}
client.println("</tr>");
client.println("</table>");
client.println("</center>");
//clearing string for next read
readString="";
client.println("</body>");
client.println("</HTML>");
delay(1);
//stopping client
client.stop();
}
}
}
}
}
Sistem de securitate cu alerta sms
Acest proiect se ocup cu proiectarea i dezvoltarea unui sistem de control pentru furt acas, care este
utilizat pentru a preveni / controla orice tentativ de furt. Sistemul dezvoltat utilizeaz un sistem ncorporat
(cuprinde un microcontroler hardware deschis i un modem GSM) bazat pe sistemul global de comunica ii
mobile de tehnologie (GSM).
Sistemul proiectat i dezvoltat poate fi instalat n cas. O unitate de intruziune detector de interfa
este, de asemenea, conectat la sistemul de securitate bazat pe microcontroler.
n cazul n care unei ncercri de intruziune, un mesaj de avertizare este transmis de ctre sistem (ca
un sms) pe telefonul mobil al proprietarului, sau la orice numr de pre-configurat telefonul mobil pentru
prelucrare ulterioar

.
Cod sursa

/*
* Arduino Home Security GSM Alarm
* An Arduino + SIM900A Project
* T.K.Hareendran
* Tested at TechNode PROTOLABZ
* 21 August 2014
* http:// www.electroschematics.com
*/
//Connect the Tx pin of the GSM modem to D3
//Connect the Rx pin of the GSM modem to D4
//SMS Trigger Key/Input connected to D7 (Active LOW)
//CALL Trigger Key connected to D8 (Active LOW)
//END Key Connected to D9 (Active LOW)
#include <NewSoftSerial.h>
NewSoftSerial mySerial(3,4); // RX and TX pins to communicate with GSM module
#define msg_key 7
#define call_key 8
#define end_key 9
String number ="0000000000"; // Add the 10-Digit Mobile Number to which message / call is to be made,by
replacing the 0's
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
pinMode(msg_key,INPUT);
pinMode(call_key,INPUT);
pinMode(end_key,INPUT);
digitalWrite(msg_key,HIGH);
digitalWrite(call_key,HIGH);
digitalWrite(end_key,HIGH);
}
void loop()
{
//Sends an sms everytime msg_key is pressed
if (digitalRead(msg_key)==LOW) // Check if the sms key is being pressed
{
mySerial.println("AT+CMGF=1"); // Set the Mode as Text Mode
delay(150);
mySerial.println("AT+CMGS=\"+00"+number+"\""); // Specify the Destination number in international
format by
replacing the 0's
delay(150);
mySerial.print("Warning! Intruder Alert!"); // Enter the message
delay(150);
mySerial.write((byte)0x1A); // End of message character 0x1A : Equivalent to Ctrl+z
delay(50);
mySerial.println();
}
//Makes a call when call_key is pressed
else if (digitalRead(call_key)==LOW) // Check if the call key is being pressed
{
mySerial.println("ATD+91"+number+";"); //Specify the number to call
while(digitalRead(call_key)==LOW);
delay(50);

}
//Hang the call
else if (digitalRead(end_key)==LOW) // Check if the hang up key is being pressed
{
mySerial.println("ATH");
while(digitalRead(end_key)==LOW);
delay(50);
}
}

Senzori de parcare Arduino


http://robotthenextspeciesonearth.blogspot.ro/p/how-many-of-you-wanted-to-create-your.html
Componente:
1.LCD 16x2 display
2.Arduino microcontroller
3.Sonar Sensor-HC-SR04 module
4.Buzzer and LED
5.Breadboard
6.Connection wires
7. Potentiometer

Program:// --------------------------------------------------------------------------// Example NewPing library sketch that does a ping about 20 times per second.
// ---------------------------------------------------------------------------

#include <NewPing.h>
#include <LiquidCrystal.h>
// Pin 13 has an LED connected on most Arduino boards.
int led = 13;
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#define TRIGGER_PIN 8 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN 9 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor
distance is rated at 400-500cm.
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum
distance.
void setup() {
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
lcd.print("Car is in Rev");
lcd.setCursor(0,1);
lcd.print("**mode**");
delay(2000);
lcd.clear();
lcd.print("Calculating ");
lcd.setCursor(0,1);
lcd.print("**distance**");
delay(2000);
lcd.clear();
}
void loop() {
lcd.home();
delay(50); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between
pings.
unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS).
int val;
val=uS / US_ROUNDTRIP_CM;
lcd.print(val); // Convert ping time to distance in cm and print result (0 = outside set distance range)
lcd.print("cm");
if(val<15)
{
lcd.clear();

digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)


lcd.print("PLz stop car");
delay(100);
}
else
{lcd.clear();
digitalWrite(led, LOW); // turn the LED on (HIGH is the voltage level)
lcd.print(val);
lcd.print("cm");
}
}

S-ar putea să vă placă și