Korisnički alati

Site alati


2018:karlo_siladi:projektni_zadatak

Razlike

Slijede razlike između dviju inačica stranice

Poveznica na ovu usporedbu

Starije izmjene na obje strane Starija izmjena
Novija izmjena
Starija izmjena
2018:karlo_siladi:projektni_zadatak [2018/06/14 01:03]
ksiladi
2018:karlo_siladi:projektni_zadatak [2023/06/19 18:11] (trenutno)
Redak 54: Redak 54:
   * Bluetooth modul [[https://​www.olimex.com/​Products/​Components/​RF/​BLUETOOTH-SERIAL-HC-06/​resources/​hc06.pdf|HC-06]]   * Bluetooth modul [[https://​www.olimex.com/​Products/​Components/​RF/​BLUETOOTH-SERIAL-HC-06/​resources/​hc06.pdf|HC-06]]
  
-===== Arduino Uno - Centralna jedinica =====+===== Arduino Uno/​Duemilanove ​- Centralna jedinica =====
  
 Arduino Uno je razvojna platforma zasnovana na [[http://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf|ATmega328p]] mikrokontroleru. Ima 14 ulazno-izlaznih pinova (izvoda) od kojih 6 može biti iskorišteno za pulsno-širinsku modulaciju (engl. //​pulse-width modulation, PWM//), 6 analognih ulaza, kvarcni oscilator frekvencije 16MHz, USB konektor za spajanje s računalom, konektor za napajanje, ICSP ( In Circuit Serial Programming ) konektor te tipkalo za reset mikrokontrolera. Arduino Uno je razvojna platforma zasnovana na [[http://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf|ATmega328p]] mikrokontroleru. Ima 14 ulazno-izlaznih pinova (izvoda) od kojih 6 može biti iskorišteno za pulsno-širinsku modulaciju (engl. //​pulse-width modulation, PWM//), 6 analognih ulaza, kvarcni oscilator frekvencije 16MHz, USB konektor za spajanje s računalom, konektor za napajanje, ICSP ( In Circuit Serial Programming ) konektor te tipkalo za reset mikrokontrolera.
Redak 62: Redak 62:
 {{:​2018:​karlo_siladi:​uno_specifications.png?​nolink&​436x500|Arduino Uno specifications}} {{:​2018:​karlo_siladi:​uno_specifications.png?​nolink&​436x500|Arduino Uno specifications}}
  
-U našem sustavu Arduino Uno je centralna jedinica koja je zadužena za komunikaciju s ostalim podsustavima. Odabrana je zbog svoje pristupačnosti,​ cijene, kratkog vremena razvoja, jednostavnosti korištenja te cijene.+U našem sustavu Arduino Uno/​Duemilanove ​je centralna jedinica koja je zadužena za komunikaciju s ostalim podsustavima. Odabrana je zbog svoje pristupačnosti,​ cijene, kratkog vremena razvoja, jednostavnosti korištenja te cijene.
  
 ====== mp3 modul DFPlayer YX5200 ====== ====== mp3 modul DFPlayer YX5200 ======
Redak 88: Redak 88:
 ===== Shema spajanja sustava ===== ===== Shema spajanja sustava =====
  
-{{:​2018:​karlo_siladi:​shema_sustava2.png?​nolink&​400x285}}+{{:​2018:​karlo_siladi:​shema_sustava2.png?​nolink&​400x285}}{{  :​2018:​karlo_siladi:​sustav_ozicenje.png?​nolink&​400x284}} 
  
 ====== Prototipno kućište ====== ====== Prototipno kućište ======
Redak 105: Redak 106:
  
 ====== Android aplikacija ====== ====== Android aplikacija ======
 +
 +Kod je dostupan na sljedećoj poveznici: http://​pametne-kuce.zesoi.fer.hr/​lib/​exe/​fetch.php?​media=2018:​karlo_siladi:​spvp_apk.zip
  
 Struktura aplikacije je prikazana na slici: Struktura aplikacije je prikazana na slici:
  
-{{:​2018:​karlo_siladi:​struktura_apk.png?​nolink&​500x384}}+{{:​2018:​karlo_siladi:​struktura_apk.png?​direct&​500x384}} 
  
 ===== Android Studio ===== ===== Android Studio =====
  
-[[https://​developer.android.com/​studio/​|Za izradu Android aplikacije potrebno je instalirati razvojni alat Android Studio. Najnovija verzija trenutno je 3.1.3. a dostupna je za preuzimanje na sljedećoj poveznici: https://​developer.android.com/​studio/​]] .+Za izradu Android aplikacije potrebno je instalirati razvojni alat Android Studio. Najnovija verzija trenutno je 3.1.3. a dostupna je za preuzimanje na sljedećoj poveznici:[[https://​developer.android.com/​studio/​|https://​developer.android.com/​studio/​]] .
  
-<font 12pt/​inherit;;​blue;;​inherit>​Detaljne upute za instalaciju razvojnog alata Android Studio</​font>​+Detaljne upute za instalaciju razvojnog alata Android Studio
  
 [[https://​developer.android.com/​studio/​install|https://​developer.android.com/​studio/​install]] [[https://​developer.android.com/​studio/​install|https://​developer.android.com/​studio/​install]]
 +
  
 ==== Kreiranje projekta ==== ==== Kreiranje projekta ====
Redak 126: Redak 131:
 === AndroidManifest.xml === === AndroidManifest.xml ===
  
-Kako bi aplikacija ispravno radila potrebno je u datoteku ​CKGE_TMP_i ​AndroidManifest.xml dodati potrebne dozvole za korištenjem Bluetooth sučelja.+Kako bi aplikacija ispravno radila potrebno je u datoteku AndroidManifest.xml dodati potrebne dozvole za korištenjem Bluetooth sučelja.
  
-<font 9pt/​inherit;;​inherit;;​inherit><​uses-permission android:​name="​android.permission.BLUETOOTH"​ /></​font+<code> 
- +<​uses-permission android:​name="​android.permission.BLUETOOTH"​ /> 
-<font 9pt/​inherit;;​inherit;;​inherit>​<​uses-permission android:​name="​android.permission.BLUETOOTH_ADMIN"​ /></font>+<​uses-permission android:​name="​android.permission.BLUETOOTH_ADMIN"​ /> 
 +</code>
  
 Potrebno je i navesti sve Activity java razrede koji se koriste u aplikaciji. Korišteni su MainActivity , ProductInfoActivity i ProjectAboutActivity. Potrebno je i navesti sve Activity java razrede koji se koriste u aplikaciji. Korišteni su MainActivity , ProductInfoActivity i ProjectAboutActivity.
Redak 214: Redak 220:
 } }
 </​code>​ </​code>​
 +
 === Bluetooth handler i reprodukcija zapisa === === Bluetooth handler i reprodukcija zapisa ===
  
 <​code>​ <​code>​
-<font inherit/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​h = new Handler() { +        ​h = new Handler() { 
-public void handleMessage(android.os.Message msg) { +            public void handleMessage(android.os.Message msg) { 
-switch (msg.what) { +                switch (msg.what) { 
-case RECIEVE_MESSAGE:​ +                    case RECIEVE_MESSAGE:​ 
-byte[] readBuf = (byte[]) msg.obj; +                        byte[] readBuf = (byte[]) msg.obj; 
-String strIncom = new String(readBuf,​ 0, msg.arg1);​ +                        String strIncom = new String(readBuf,​ 0, msg.arg1);​ 
-sb.append(strIncom);​ +                        sb.append(strIncom);​ 
-int endOfLineIndex = sb.indexOf("​\r\n"​);​ +                        int endOfLineIndex = sb.indexOf("​\r\n"​);​ 
-if (endOfLineIndex>​ 0) { +                        if (endOfLineIndex>​ 0) { 
-String sbprint = sb.substring(0,​ endOfLineIndex);​ +                            String sbprint = sb.substring(0,​ endOfLineIndex);​ 
-sb.delete(0,​ sb.length());​ +                            sb.delete(0,​ sb.length());​ 
-//​Toast.makeText(MainActivity.this,​ "From Arduino: " + sbprint, Toast.LENGTH_SHORT).show();​</​font>​ +                            //​Toast.makeText(MainActivity.this,​ "From Arduino: " + sbprint, Toast.LENGTH_SHORT).show();​ 
-<font inherit/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​if(mPlayer != null) { + 
-mPlayer.stop();​ +                            ​if(mPlayer != null) { 
-+                                mPlayer.stop();​ 
-Products product = db.daoAccess().fetchProductByProductId(sbprint);​ +                            
-if(product == null){ +                            Products product = db.daoAccess().fetchProductByProductId(sbprint);​ 
-Toast.makeText(MainActivity.this,​ "Ne postoji proizvod s ID: "+ sbprint +" u bazi proizvoda!",​ Toast.LENGTH_SHORT).show();​ +                            if(product == null){ 
-// mPlayer = MediaPlayer.create(MainActivity.this,​ R.raw.error_sound);​ +                                Toast.makeText(MainActivity.this,​ "Ne postoji proizvod s ID: "+ sbprint +" u bazi proizvoda!",​ Toast.LENGTH_SHORT).show();​ 
-// mPlayer.start();​ +                               ​// mPlayer = MediaPlayer.create(MainActivity.this,​ R.raw.error_sound);​ 
-mPlayer = MediaPlayer.create(MainActivity.this,​ R.raw.nemaubazi);​ +                               ​// mPlayer.start();​ 
-mPlayer.start();​ +                                mPlayer = MediaPlayer.create(MainActivity.this,​ R.raw.nemaubazi);​ 
-productNameTextView.setText("​Skeniraj sljedeći proizvod..."​);​ +                                mPlayer.start();​ 
-productPriceTextView.setText(""​);​ +                                productNameTextView.setText("​Skeniraj sljedeći proizvod..."​);​ 
-} else { +                                productPriceTextView.setText(""​);​ 
-productNameTextView.setText(product.getProductName());​ +                            } else { 
-productPriceTextView.setText(product.getProductPrice());​ +                                productNameTextView.setText(product.getProductName());​ 
-String id = product.getProductId();​ +                                productPriceTextView.setText(product.getProductPrice());​ 
-int res = MainActivity.this.getResources().getIdentifier("​t"​+id,​ "​raw",​ MainActivity.this.getPackageName());​ +                                String id = product.getProductId();​ 
-if(res != 0) { +                                int res = MainActivity.this.getResources().getIdentifier("​t"​+id,​ "​raw",​ MainActivity.this.getPackageName());​ 
-mPlayer = MediaPlayer.create(MainActivity.this,​ res); +                                if(res != 0) { 
-mPlayer.start();​ +                                    mPlayer = MediaPlayer.create(MainActivity.this,​ res); 
-+                                    mPlayer.start();​ 
-+                                
-+                            
-break; +                        
-+                        break; 
-}; +                
-};</​font>​</​code>​+            }; 
 +        }; 
 +</​code>​
  
  
2018/karlo_siladi/projektni_zadatak.1528931021.txt.gz · Zadnja izmjena: 2023/06/19 18:10 (vanjsko uređivanje)