Operácie

Ovládanie elektrického zámku z mobilnej aplikácie: Rozdiel medzi revíziami

Zo stránky SensorWiki

StudentMIPS (diskusia | príspevky)
StudentMIPS (diskusia | príspevky)
 
(9 medziľahlých úprav od rovnakého používateľa nie je zobrazených.)
Riadok 1: Riadok 1:
Záverečný projekt predmetu MIPS / LS2025 - '''Meno Priezvisko'''
Záverečný projekt predmetu MIPS / LS2025 - '''Filip Pinďar'''


   https://www.engineersgarage.com/how-to-design-a-smartphone-operated-door-lock/
   https://www.engineersgarage.com/how-to-design-a-smartphone-operated-door-lock/
Riadok 7: Riadok 7:
Ovládanie elektrického relé z mobilnej aplikácie pomocou bluetooth modulu  
Ovládanie elektrického relé z mobilnej aplikácie pomocou bluetooth modulu  


[[Obrázok:ard.jpg|400px|thumb|center|Vývojová doska ACROB.]]
[[Obrázok:Ardu.jpg|400px|thumb|center|Vývojová doska Arduino Uno.]]


'''Literatúra:'''  
'''Literatúra:'''  
Riadok 18: 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
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.]]
[[Súbor:Bluetooth.webp|400px|thumb|center|Bluetooth 4.0 modul.]]


Aplikáciu v mobile som použil Serial Bluetooth terminal ktorá je schopná sa pripojiť na Bluetooth modul a komunikovať s ním.
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.]]


Spúštací mechanizmus som zvolil 5V arduíno relé s 1 kanálom a zabudovanou ledkou
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 programu číta znak z RX pinu. Keď príde '0' relé sa vypne a keď príde '1' sa zapne.
<tabs>
<tab name="AVR C-code"><syntaxhighlight  lang="c++" style="background: LightYellow;">
#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






=== Algoritmus a program ===
char get_char() {
    uint8_t i;
    char receivedChar = 0;
 
 
    while (PIND & (1 << RX));
    _delay_us(104 + 52);
 
    for (i = 0; i < 8; i++) {
        if (PIND & (1 << RX))
            receivedChar |= (1 << i);
        _delay_us(104);
    }


Algoritmus programu využíva toto a toto, základné funkcie sú takéto a voláma ich tuto...
 
Výpis kódu je nižšie...
    _delay_us(104);


    return receivedChar;
}


<tabs>
int main(void) {
<tab name="AVR C-code"><syntaxhighlight  lang="c++" style="background: LightYellow;">
#include <avr/io.h>


int main(void)
    DDRB |= (1 << RELE); // Rele pin ako výstup
{
    DDRD |= (1 << TX);  // TX pin ako výstup
  unsigned int measuredValue;
    DDRD &= ~(1 << RX); // RX pin ako vstup
    PORTD |= (1 << RX); // pull-up na RX


  while (1)
      
  {
     /*  relax  */ 
  }


  return(0);
    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 67: Riadok 103:
=== Overenie ===
=== Overenie ===


Ako ste overili funkciu, napríklad... Na používanie našej aplikácie stačia dve tlačítka a postup používania je opísaný v sekcii popis riešenia.
Zariadenie som overil tak že cez terminal som posielal 0 alebo 1 a podla toho sa relé vypínalo a zapínalo
Na konci uvádzame fotku hotového zariadenia.


[[Súbor:GeminiAI-image1.jpg|400px|thumb|center|Aplikácia.]]
[[Súbor:GeminiAI-image1.jpg|400px|thumb|center|Aplikácia.]]

Aktuálna revízia z 18:06, 13. 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

Vývojová doska Arduino Uno.

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

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.

5V Rele modul.

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.

Schema zapojenia.

Algoritmus a program

Algoritmus programu číta znak z RX pinu. Keď príde '0' relé sa vypne a keď príde '1' sa zapne.

#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));
    _delay_us(104 + 52); 

    for (i = 0; i < 8; i++) {
        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: zdrojaky.zip

Overenie

Zariadenie som overil tak že cez terminal som posielal 0 alebo 1 a podla toho sa relé vypínalo a zapínalo

Aplikácia.

Video:



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