Ovládanie elektrického zámku z mobilnej aplikácie: Rozdiel medzi revíziami
Zo stránky SensorWiki
Vytvorená stránka „Záverečný projekt predmetu MIPS / LS2025 - '''Meno Priezvisko''' == Zadanie == Sem príde text zadania, ak bolo len voľne formulované, rozpíšte ho podrobnejšie 400px|thumb|center|Vývojová doska ACROB. '''Literatúra:''' * [http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob_technical_description Dokumentácia k doske Acrob] * [http://www.humanbenchmark.com/tests/reactiontime/index.php Vyskúšajte si zmerať reakciu on-line]…“ |
Bez shrnutí editace |
||
(25 medziľahlých úprav od 2 ďalších používateľov nie je zobrazených) | |||
Riadok 1: | Riadok 1: | ||
Záverečný projekt predmetu MIPS / LS2025 - ''' | Záverečný projekt predmetu MIPS / LS2025 - '''Filip Pinďar''' | ||
https://www.engineersgarage.com/how-to-design-a-smartphone-operated-door-lock/ | |||
== Zadanie == | == Zadanie == | ||
Ovládanie elektrického relé z mobilnej aplikácie pomocou bluetooth modulu | |||
[[Obrázok: | [[Obrázok:Ardu.jpg|400px|thumb|center|Vývojová doska Arduino Uno.]] | ||
'''Literatúra:''' | '''Literatúra:''' | ||
* [ | * [https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf Dokumentacia k procesoru Atmel 328P] | ||
* [ | * [https://www.hadex.cz/spec/m432e.pdf Dokumentacia k Bluetooth 4.0] | ||
Riadok 17: | Riadok 18: | ||
== Analýza a opis riešenia == | == Analýza a opis riešenia == | ||
Pre bezdrôtovú komunikáciu medzi mobilom a arduinom som zvolil nízkoenergetický Bluetooth modul 4.0. Má napájanie 5V z arduina a pre komunikácou používa piny Rx a Tx | |||
[[Súbor:Bluetooth.webp|400px|thumb|center|Bluetooth 4.0 modul.]] | |||
Spúštací mechanizmus som zvolil 5V arduíno relé s 1 kanálom a zabudovanou ledkou. Napájaný je 5V z arduiná a má jeden kominikačný pin. | |||
[[Súbor:Rele.jpeg|400px|thumb|center|5V Rele modul.]] | |||
[[Súbor: | |||
Pre komunikáciu mobilu s Bluetooth modulom som použil už vytvorenú aplikácou Serial Bluetooth terminal ktorá je schopná sa pripojiť na Bluetooth modul a komunikovať s ním. Stačí ju zapnúť, vybrať daný modul a už môžete posielať cez terminál znaky. | |||
[[Súbor:SchemaFP.png|400px|thumb|center|Schema zapojenia.]] | |||
=== Algoritmus a program === | === Algoritmus a program === | ||
Algoritmus programu | Algoritmus programu číta znak z RX pinu. Keď príde '0' relé sa vypne a keď príde '1' sa zapne. Pripojenie som musel ošetritiť softverovo kedže som nepoužil piny 0 a 1. Program najskôr čaká, kým sa na RX pine objaví štart bit. Potom počká 1,5 bitového času, aby začala čítať presne v strede prvého dátového bitu. Následne postupne načítava všetkých 8 bitov znaku. | ||
<tabs> | <tabs> | ||
Riadok 37: | Riadok 35: | ||
#include <avr/io.h> | #include <avr/io.h> | ||
int main(void) | #define F_CPU 16000000UL | ||
#include <avr/io.h> | |||
#include <util/delay.h> | |||
#define RELE PB5 | |||
#define RX PD2 | |||
#define TX PD3 | |||
char get_char() { | |||
uint8_t i; | |||
char receivedChar = 0; | |||
while (PIND & (1 << RX)); //overuje či je logicka 0 | |||
_delay_us(104 + 52); | |||
for (i = 0; i < 8; i++) { //načitava 8 bitov znaku | |||
if (PIND & (1 << RX)) | |||
receivedChar |= (1 << i); | |||
_delay_us(104); | |||
} | |||
_delay_us(104); | |||
return receivedChar; | |||
} | |||
int main(void) { | |||
DDRB |= (1 << RELE); // Rele pin ako výstup | |||
DDRD |= (1 << TX); // TX pin ako výstup | |||
DDRD &= ~(1 << RX); // RX pin ako vstup | |||
PORTD |= (1 << RX); // pull-up na RX | |||
while (1) { | |||
char c = get_char(); | |||
if (c == '0') { | |||
PORTB &= ~(1 << RELE); // aktivuj relé | |||
} else if (c == '1') { | |||
PORTB |= (1 << RELE); // deaktivuj relé | |||
} | } | ||
} | |||
return(0); | |||
} | |||
</syntaxhighlight ></tab> | </syntaxhighlight ></tab> | ||
Riadok 61: | Riadok 99: | ||
Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x ''zdrojaky.zip'': | Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x ''zdrojaky.zip'': | ||
Zdrojový kód: [[Médiá: | Zdrojový kód: [[Médiá:ProjektFilipPindar.zip|projektFilipPindar.zip]] | ||
=== Overenie === | === Overenie === | ||
Zariadenie som overil tak že cez terminal som posielal 0 alebo 1 a podla toho sa relé vypínalo a zapínalo | |||
[[Súbor: | [[Súbor:ZapojenieFP.jpg|400px|thumb|center|Aplikácia.]] | ||
'''Video:''' | '''Video:''' | ||
<center><youtube> | <center><youtube>i8stUrv6B88</youtube></center> | ||
Aktuálna revízia z 07:54, 18. máj 2025
Záverečný projekt predmetu MIPS / LS2025 - Filip Pinďar
https://www.engineersgarage.com/how-to-design-a-smartphone-operated-door-lock/
Zadanie
Ovládanie elektrického relé z mobilnej aplikácie pomocou bluetooth modulu

Literatúra:
Analýza a opis riešenia
Pre bezdrôtovú komunikáciu medzi mobilom a arduinom som zvolil nízkoenergetický Bluetooth modul 4.0. Má napájanie 5V z arduina a pre komunikácou používa piny Rx a Tx

Spúštací mechanizmus som zvolil 5V arduíno relé s 1 kanálom a zabudovanou ledkou. Napájaný je 5V z arduiná a má jeden kominikačný pin.

Pre komunikáciu mobilu s Bluetooth modulom som použil už vytvorenú aplikácou Serial Bluetooth terminal ktorá je schopná sa pripojiť na Bluetooth modul a komunikovať s ním. Stačí ju zapnúť, vybrať daný modul a už môžete posielať cez terminál znaky.

Algoritmus a program
Algoritmus programu číta znak z RX pinu. Keď príde '0' relé sa vypne a keď príde '1' sa zapne. Pripojenie som musel ošetritiť softverovo kedže som nepoužil piny 0 a 1. Program najskôr čaká, kým sa na RX pine objaví štart bit. Potom počká 1,5 bitového času, aby začala čítať presne v strede prvého dátového bitu. Následne postupne načítava všetkých 8 bitov znaku.
#include <avr/io.h>
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#define RELE PB5
#define RX PD2
#define TX PD3
char get_char() {
uint8_t i;
char receivedChar = 0;
while (PIND & (1 << RX)); //overuje či je logicka 0
_delay_us(104 + 52);
for (i = 0; i < 8; i++) { //načitava 8 bitov znaku
if (PIND & (1 << RX))
receivedChar |= (1 << i);
_delay_us(104);
}
_delay_us(104);
return receivedChar;
}
int main(void) {
DDRB |= (1 << RELE); // Rele pin ako výstup
DDRD |= (1 << TX); // TX pin ako výstup
DDRD &= ~(1 << RX); // RX pin ako vstup
PORTD |= (1 << RX); // pull-up na RX
while (1) {
char c = get_char();
if (c == '0') {
PORTB &= ~(1 << RELE); // aktivuj relé
} else if (c == '1') {
PORTB |= (1 << RELE); // deaktivuj relé
}
}
return(0);
}
#include <avr/io.h>
void adc_init(void); // A/D converter initialization
unsigned int adc_read(char a_pin);
Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x zdrojaky.zip:
Zdrojový kód: projektFilipPindar.zip
Overenie
Zariadenie som overil tak že cez terminal som posielal 0 alebo 1 a podla toho sa relé vypínalo a zapínalo

Video:
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.