Posted on

Termostat Online (ServerWeb Thermostat-Online) – pentru avansați

Termostat Online

Thermostat Online
www.roboromania.ro

Este un proiect Arduino care necesită cunoştinţe medii în domeniu.
Vom prezenta în continuare paşii de realizare.

Ce vrem să realizăm ?

Vrem să construim un termostat pentru acţionarea încălzirii (o centrală termică) prin reţeaua de acasă sau chiar prin internet. Deci vom controla când să înceapă încălzirea locuinţei ştiind ce temperatură ambiantă avem şi ce ne poate oferi centrala termică. Aşa că vom avea o pagină web în care găsim temperatura în centrală pe tur şi retur, temperatura ambiantă pe care o putem seta din această pagină web, cât şi posibilitatea de a opri şi porni încălzirea şi centrala termică online.

termostat-online-roboromania

Ce materiale avem nevoie ?

O placă compatibilă Arduino Uno sau Nano sau Mini.

Uno-roboromania-fatanano-roboromaniaMini-roboromania-fata

Trei senzori de temperatura (preferabil DS18b20).

DS18B20-waterproof-roboromania-fataDS18B20-roboromaniaa

Un Modul 2 relee și 2 canale la 5v.

modul-2-relee-2-canale-roboromania-avr-Bucuresti

Şi evident o placă de reţea Arduino W5100 sau ENC28J60.

Vom folosi placa de reţea Arduino W5100 pentru că este mult mai stabilă.

W5100-roboromaniaENC28J60-roboromania-produs

Un Alimentator Arduino dedicat 9V 1A

Alimentator-Arduino-dedicat-9V-1A-robo-romania

Ne mai trebuie o Placă prototip 3×7 cm unde o sa legam mai ușor senzorii de temperatură folosind pini şi Conectoare terminal cu şuruburi, câteva Cabluri Dupont şi eventual o cutie.

Placa-prototip-3x7-cm-roboromaniaterminal-connector-roboromaniaMufa-jack-mama-DC-2.5-mm-cablaj-roboromania-Bucurestidupont-robo-romania-4

În varianta făcută de noi şi cumpărate de la roboromania.ro

– O placă compatibilă Arduino Uno sau Nano sau Mini.
– Modul Ethernet W5100
– Senzori de temperatura DS18b20 (3 bucati)
– Alimentator Arduino dedicat 9V 1A
– Diverse (rezistenţe, placă prototip, cabluri, conectoare)

https://roboromania.ro/produs/termostat-online-uno-kit-construieste-singur/

roboromania.ro

Ce urmează ?

Să le conectam.
E simplu, trebuie doar să fim atenți la conectarea pinilor, corespunzător sketch-ului Arduino folosit.
Acesta conţine mai multe fişiere.

mini to ftdi

termostat mini

termostat UNO

Să uploadăm codul (sketch).
control_centrala_online_roboromania.ino
debug.h
memory.h
OneWire.cpp
OneWire.h
page.h
temperature.h
Pentru Mini vă mai trebuie un Modul interfață FTDI – USB (tip FT232R) cu reset, dacă nu-l aveţi îl luaţi tot de la roboromania.ro

FT232RL-FTDI-USB-roboromania

Ledurile de la placa de reţea încep să pulseze, semn ca aceasta încearcă să se conecteze. Trebuie să căutăm în setările de la router IP-ul pe care l-a primit dispozitivul nostru. Deschidem un browser cu IP-ul respectiv şi apare pagina web.

termostat-online-an-roboromaniatermostat-online-roboromania

Acum putem citi temperatura în centrală pe tur şi retur şi temperatura ambiantă din locuinţă .
Urmează setarea temperaturii ambiante minime la care să înceapă încălzirea.
Şi butoanele de comandă Power on/off şi Iarnă (încălzire) on/off.

termostat-online-set-amb-roboromania

Bineânţeles că dacă modificăm codul , putem să realizăm diverse modele de pagină web sau putem trimite pe internet diverse alte măsurători de la alţi senzori.
Colectivul magazinului roboromania.ro vă urăm succes !

Colectivul magazinului roboromania.ro vă urează succes !  După realizare va rugam sa trimiteți poze și sugestii.

Cod sursa pentru proiect : Control centrala online

Creative Commons License
Control Centrala Online de Popescu Viorel licențiat sub Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

Posted on

Folosirea senzorului de distanta cu ultrasunete HC-SR04 – pentru începători

Folosirea senzorului de distanta cu ultrasunete HC-SR04

HC-SR04-roboromania

Piese necesare :

1 x placă Arduino UNO R3
1 x Senzor de distanţă cu ultrasunete HC-SR04
3 x LED (plus 3 rezistenţe de 1 kΩ pentru aceste leduri)
cabluri de legătură necesare între piese şi placă

Uno-roboromania-fata

Algoritm :

Iniţial ledurile sunt oprite.
La distanţa cea mai mare (eu am specificat în cod peste valoarea 3000) toate ledurile sunt de asemenea oprite.

Dacă se detectează un obstacol între valorile 2001 şi 3000 se aprinde 1 led (aproximativ între 30-40 cm distanţă).
Dacă obiectul se apropie între valorile 1000 si 2000 am setat să se aprindă 2 leduri.
Dacă obiectul e foarte aproape de senzor (sub 1000 respectiv sub 10-15 cm) am setat să se aprindă toate 3 ledurile.

Montare :

Senzorul are 4 pini respectiv:

VCC de la senzor se cupleaza la +5V de pe placa arduino.
TRIG de la senzor se cuplează la unul din pinii digitali de pe placa arduino (în cod am setat pinul 2)
ECHO de la senzor se cuplează la un alt pin digital de pe placa arduino (în cod am setat pinul 3)
GND de la senzor se cuplează la unul din pinii GND de la arduino

LED-urile se cuplează şi ele (prin intermediul unei rezistenţe de 1 kΩ) la pinii 8,9 şi 10 iar negativul de la leduri la GND de la arduino.

Codul necesar (sketch) :

 

/*
* Ultrasound model: HC-SR04
* Senzor pins  | Arduino Board
* VCC la 5V
* TRIG la Digital pin 2
* ECHO la Digital pin 3
* GND la GND
* LED1 la Digital pin 8
* LED2 la Digital pin 9
* LED3 la Digital pin 10
*/

// initialize the necessary ports
int usTrigger = 2;
int usEcho = 3;
int led1 = 8;
int led2 = 9;
int led3 = 10;

void setup() {
// start ultrasound
pinMode(usTrigger, OUTPUT);
pinMode(usEcho, INPUT);
// start leds
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}

void loop() {
// Initiate ultrasonic speaker
digitalWrite(usTrigger, HIGH);
delayMicroseconds(10);
digitalWrite(usTrigger, LOW);

// Reading out the signal strength
long timecount = pulseIn(usEcho, HIGH);
// if more than 3000 all LEDs stop.
if ( timecount > 3000 ) {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
}
// If it’s between 2001 and 3000 start LED 1
if ( timecount > 2000 && timecount <= 3000 ) {
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
}
// If it’s between 1000 and 2000 start LED 1 and 2
if ( timecount >= 1000 && timecount <= 2000 ) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
}
// If it’s under 1000 turn all LEDs
if ( timecount < 1000 ) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
}
// Wait 0.1 seconds before the next reading.
delay(100);
}

 

Această aplicaţie se poate dezvolta de exemplu pentru un robot autonom care ocoleşte obstacolele.

Succes !

Colectivul Roboromania