Bluetooth RGB 7 segmentové hodiny

Vytisknout
ELEKTRONIKA
Zobrazení: 13490

Hodiny jsou složeny z RGB LED pásku s moduly WS2812B a umožňují pomocí mobilního telefonu, nebo tabletu (pomocí aplikace)...

Rozměry hodin jsou: 40.5cm x 15cm x 4.5cm

Donate

Free

Pojistky pro procesor Atmega 328: lock:0x3F, efuse:0xFD, hfuse:0xDE, lfuse:0xFF

FW

Foto hodin

Video - ukázka z aplikace a chod hodin

Schéma zapojení

 

Deska spojů

Pohled TOP, osazovací plán, celkový pohled

Pohled na modul RF radio přijímače SRX885 a Bluetooth modul HC-05

Přiřazení pinů přijímače SRX885


Dle obrázků níže postupně osadíme všechny komponenty na desku spojů

Pohled na desku spojů (prototyp TOP - výsledná verze se může nepatrně lišit od prototypu.)

Pohled na desku spojů (prototyp BOT - výsledná verze se může nepatrně lišit od prototypu.)

Dále osazujeme na desku součástky dle foto níže.

V tuto chvíli máme osazeno:

3x 4k7, 2x 10k, 2x 22pF, 2x 100nF, 1x krystal 16MHz, 1x dioda 1N5817.

Dále: 1x krystal 32,768 KHz, 1x USB-B, 2x tlačítko 6x6mm, 2x 3-pin konektor, 1x 5-pin konektor, 2x 1000uF, 1x ICSP konektor, patice pro CPU 28 pinů.

Dále: 1x DS18B20, 1x piezo, 1x DS1307, 1x patice 8-pin (pro DS1307 v DIL verzi - pokud nepoužíjeme SMD SO8), 1x držák baterie CR2032.

Připojíme kablíkem cca 20cm dlouhým fotorezistor k desce (bude koukat z krabičky ven a dle okolního osvětlení upravovat jas LED displeje...)

Následuje patice pro Bluetooth modul...

Na foto je použita vyšší patice pro BT modul (prototyp), rev1 deska je již pro BT modul vyříznutá a je použita patice nižší.

Osadíme tranzistor Q3 (BS250) - pozor na orientaci pouzdra (v podstatě je to trojuhelník).

Pomocí šroubováku narazíme vodiče od LED displeje (+, D, -) do konektoru.

V základní verzi HW tímto krokem končíme a namontujeme desku do krabičky...

Tavnou hmotou uchytíme fotorezistor do díry (ostatní díry mají špunty jako krytky), která je v krabičce.

Provedeme nastavení BT modulu:

1) držíme tlačítko "test" a "reset".

2) uvolníme tlačítko "reset", "test" stále držíme.

3) ihned jak se na displeji zobrazí hláška "bt 9" stiskneme a držíme tlačítko na BT modulu. Tlačítko "test" uvolníme. Jakmile začnou blikat tečky na displeji tlačítko BT uvolníme.

4) poznamenáme si pin pro přístup k BT modulu (zobrazí se na displeji a slouží pro použití spárování s mobilním telefonem, nebo tabletem).

5) po restartu zařízení spárujeme s mobilním telefonem (tabletem). Jméno zařézení bude "BT hodiny" a heslo z kroku 4.

6) po spárování spustíme aplikaci "BT hodiny" a zvolíme v seznamu zařízení "BT hodiny".

7) Při vybité baterii, nebo prvním zapnutí je potřeba nastavit čas (tlačítko "nastavení" a následně "nastavit čas")

Tímto je vše hotovo -> zacvakneme víčko a jdeme si hrát.

Verze s RF přijímačem (externí teplota)

Komplet osazená deska (verze RF radio - prototyp)

Otestování desky

Do desky připojíme ICSP programátor (platí pouze pokud již nemáme v sáčku procesor ATMEGA 328 naprogramovaný). Použijeme například tento programátor: Programátor Atmel ISP USBasp

Spustíme prostředí programátoru (avrdudes) a nastavíme: typ MCU Atmega328, Port usb a typ programátoru USBasp fischl.de.

Nastavíme pojistky: E:0xFD, H:0xDE, L:0xFF a stiskneme tlačítko "Write" (tímto přepneme oscilátor v CPU na 16MHz).

Následně vybereme program pro procesor (sekce flash a náš *.hex) a stiskneme tlačítko "GO".

Pokud je vše správně osazeno a zapájeno (a připojen LED displej), tak se po připojení napájení 5V na USB konektor vše spustí (na LED se vypíše FW CPU).

Nastavení Bluetooth hesla a jména modulu

Ukázka programování, které neproběhlo v pořádku (nebylo stiknuto tlačítko na BT modulu) a bylo ukončeno.

 


Všechny díly jsou vytištěny na 3D tiskárně z PET-G materiálu (černá a čirá barva). Na foto níže je na prototypu použita bílá barva namísto čiré -> bílá vypadá lépe, ale bere spoustu světla -> nahrazeno čirou barvou pro segmenty (výsledek je o 200% lepší.)

plast černá barva

plast čirá barva

spojovací materiál

Všechny části displeje očistíme od zbytků z tisku ("chlupy a otřepy" PET-G plastu). Do krytů displejů a dvojtečky vložíme (zacvakneme) bílé segmenty. Pomocí šroubů M4 spojíme všechny displeje (digity) k sobě jako na obrázcích níže.


Z LED pásku (WS2812B) nastřiháme 30ks modulů (4x7 segment =28 + 2 tečky -> 30ks), které ze spodní části pocínujeme pro snazší pájení vodičů.

LED pásek můžeme samozřejmě použít jakýkoliv typ s obvodem WS2812B (já použil pásek, který je zalitý -> lepší je použít pásek bez krytí).

WORLDSEMI HC-F5V-30L-30LED-W IP65, Programovatelný LED pásek; RGB; SMD 5050; 5V; 10mm; 140° (30 LED na metr)

Na papír si omalujeme rozmístění segmentů pro snazší pájení vodičů. LED moduly si přichytíme papírovou páskou. Na propojení všech modulů budeme potřebovat

Můžeme také v některých místech použít odizolovaný měděný vodič (například rozholený UTP kabel) a propojit krátká spojení mezi LED segmenty (méňě práce).

Po propojení všech segmentů a otestování s deskou CPU!!! použijeme tavnou hmotu na trvalé přichycení v krabičce jako na obrázku.

Vždy propojujeme +5V a +5V, GND a GND, DO (výstup předešlého modulu) a DIn (vstup následujícího modulu). Označení segmentů na displeji je A-G a dvojtečka.

Celkové propojení všech 30 LED segmentů


Z obchodu Google Play stáhneme a nainstalujeme mobilní aplikaci "BT hodiny"

Video - ukázka ovládání z aplikace

Video - ukázka čas - teplota

Obrazovka "Skóre"

Pokud hrajeme nějakou hru a potřebujeme počítat "elegantně" skóre, můžeme k tomu použít uvedené hodiny. V režimu "skóre" ukazují hodiny na levém displeji body hráče 1 a na pravém displeji body hráče 2. Pomocí tlačítek + a - můžeme měnit body pro jednotlivé hráče. Nastavení bodů zůstává uchováno, i když vyskočíme pomocí tlačítka "Zpět" (pokud se například chceme podívat kolik je hodin, nebo jaká je teplota).

Obrazovka "Stopky"

V režimu stopek lze tlačítkem "Start" spustit odpočet časovače od 00m:00s do 99m:99s. Pomocí tlačítka "Stop" odpočet zastavíme.

Obrazovka "Barvy"

Pomocí 3 posuvníků můžeme nastavit libovolný odstín barvy (všech segmentů) hodin. Po stisknutí tlačítka "Uložit" se zvolená kombinace uloží do vnitřní paměti EEPROM v hodinách. Po vypnutí a zapnutí hodin se nastaví barevný odstín z paměti. V případě, že chceme změnit odstín "pro tuto chvilku" a nechceme ho natrvalo ukládat, tak stiskneme tlačítko "Zpět" -> barvy se mění, ale neuloží do paměti.

Obrazovka "Budík"

Na této obrazovce můžeme nastavit budík, který bude v nastavený čas aktivován na určitou dobu.

Aktivovat v čase -> volba hodiny a minuty (klepnutím na ikonu 13:31).

Trvání buzení -> doba trvání alarmu od 0 do 59 vteřin. Zvuk je střídavě zapínán a vypínán v rytmu 2,5 vteřiny.

Zapnout budík -> budík může být nastaven, ale nemusí být aktivován (když nechceme být rušeni).

Po stisknutí tlačítka "Uložit" se všechna nastavení budíku uloží do paměti EEPROM v hodinách.

Obrazovka "Nastavení"

Pokud je jas hodin nastaven na "Vyp" bude svit všech RGB LED nastaven na maximální hodnotu (100%) s ohledem na vlastní nastavení RGB složek. Při zapnutém spínači "Zap" bude uživatelský jas RGB složek regulován v závislosti na okolním osvětlení (snímá se fotorezistorem).

"Nastavení času z telefonu do hodin" znamená odeslání času (aktuální čas mobilního telefonu) z mobilního telefonu do BT hodin. Čas je uložen v obvodu reálného času DS1307, ze kterého se následně vypisuje na LED displeji.

"Test LED" spouští testovací režim LED panelu (při pájení a propojování modulů v hodinách). Postupně se posouvá červený bod od 1 LED až k poslední LED (LED čipy jsou osazeny v jednotlivých segmentech a zapojeny za sebou dle obrázku níže).

 

Propojení modulů směrem od CPU

Video - ukázka TEST LED (v aplikaci nastaven test)

Testovací režim můžeme vyvolat i bez aplikace. Před zapnutím napájecího napětí (zdroje 5V) držíme zmačknuté tlačítko "Test LED" na plošném spoji. Následně zapneme napájení hodin (5V). Test se během chvilky spustí (můžeme tlačítko pustit). Test běží neustále dokola, ukončit ho lze pouze restartem zařízení pomocí tlačítka "Restart" na plošném spoji, nebo vypnutím a zapnutím zařízení.


Problém je v pájení vodičů, nebo vadném LED čipu (nejčastěji se stane při pájení). Řešením je od následujícího čipu, který nesvítí odpojit vodič Din a ten zkusit připojit ke vstupu Din předchozího čipu, který svítí. Pokud začnou všechny ostatní body svítit je vadný výstup tohoto předchozího čipu -> výměna čipu v segmentu. Pokud ostatní čipy nesvítí ani po předchozím testu je vadný vstup následujícího čipu -> vyměnit čip.

Příklad: CPU->A->B->C->D->E

čip A a čip B svítí, ale C a další čipy dále nesvítí.

Vstup Din čipu C zkusím připojit na Dout čipu A. Pokud všechno začne fungovat je vadný čip B. Pokud nezačne pracovat C a dále je vadný čip C.

Tato situace může nastat:

a) je nízké napájecí napětí zdroje -> musí být 5V (+-0,2V). Problém je v napájecím přívodu

b) je vadný obvod reálného času RTC DS1307 -> vyměnit

c) problém ve spojení na desce signálů SDA a SCL mezi CPU a RTC -> kontrola (propískat multimetrem)

Zálohovací baterie CR2032 je vybitá -> vyměnit baterii za novou. Baterie má v hodinách životnost cca 5 let.

Snímač teploty DS18B20 na desce není v pořádku (vrací teplotu -127) -> osadit snímač, vyměnit snímač.

Bezdrátový snímač teploty (RF modul) není v pořádku. Vysílací část, nebo přijímací část (vrací teplotu -127) -> vyměnit baterie ve vysílací straně, vyměnit snímač DS18B20, vadné moduly RF TX (RX).

Pokud běží proces programování BT modulu (vyvoláno tlačítkem test na desce hodin -> viz text v článku programování hesla BT modulu) a uživatel nepotvrdil programování na BT modulu do určité doby, tak dojde k ukončení programování a restartu zařízení do běžného provozu. -> pokud vše děláme správně a proces programování nefunguje je možné, že je vadný BT modul. Bliká na modulu LED dioda? Při odpojeném mobilním zařízení bliká LED rychle (stejně jako při zapnutí napájení hodin).

 


Tabulka součástek

Označení Hodnota Počet ks
Odkaz tme.eu Cena za ks bez DPH
Cena celkem bez DPH
R1 fotorezistor 90mW 2÷6kΩ 540nm  1

 https://www.tme.eu/cz/details/pgm5506/fotorezistory/token/

5.9,- 5.9,-
R2, R3 rezistor 10kΩ 0204  2

 https://www.tme.eu/cz/details/mf0204fte52-10k/metalizovane-rezistory-tht-0-4w/yageo/mf0204fte52-10kl/

0.3,- 0.6,-
R4, R5, R6 rezistor 4,7kΩ 0204  3

 https://www.tme.eu/cz/details/mf0204fte52-4k7/metalizovane-rezistory-tht-0-4w/yageo/mf0204fte52-4k7l/

0.3,- 0.6,-
R7, R8, R9, R10 rezistor 220Ω 0204  4

 https://www.tme.eu/cz/details/m0.4w-220r/metalizovane-rezistory-tht-0-4w/royal-ohm/mff04ff2200a5/

0.5,- 1,-
R11 rezistor 10MΩ 0204 1

 https://www.tme.eu/cz/details/1_4w10m/uhlikove-rezistory-tht-1-4w/royal-ohm/cfr0w4j0106a50/

0.2, 0.2,-
Rep1 LOUDITY LD-BZPG-2412 (5V) 15mm  1

 https://www.tme.eu/cz/details/ld-bzpg-2412/piezosireny-s-generatorem/loudity/

26,- 26,-
Rep2alt alternativní repro menší rozměr 7.6mm BESTAR BPT14X  1

https://www.tme.eu/cz/details/bpt-14x/piezosireny-s-generatorem/bestar/bpt14x/

42,- -
X1 USB-B konektor úhlový THT  1

https://www.tme.eu/cz/details/2411-02/konektory-usb-a-ieee1394/lumberg/2411-02/

8,- 18,-
C5, C4 Elyt 1000uF/10V THT  2

https://www.tme.eu/cz/details/km1000_10/elektrolyticke-kondenzatory-tht-105degc/samxon/km-1000u-10v/

2,- 4,-
C3, C6 100nF kerko RM5  2

https://www.tme.eu/cz/details/cck-100n/keramicke-kondenzatory-tht-100v/sr-passives/

2,- 4,-
C1, C2 22pF kerko RM5  2

https://www.tme.eu/cz/details/cck-22p/keramicke-kondenzatory-tht-100v/sr-passives/

0.6,- 1.2,-
D1 Schottky 1N5817 DO41  1

https://www.tme.eu/cz/details/1n5817-e3_73/diody-schottky-tht/vishay/

3.6,- 3.6,-
LED1-LED4 LED 5mm rudá THT  4

https://www.tme.eu/cz/details/fyl-5013hd1c/led-diody-tht-5mm/foryard/

1.5,- 6,-
SW1-SW3 Tlačítko tact  3

https://www.tme.eu/cz/details/tact-64n-f/mikrospinace-tact/ninigi/

1.8,- 5.4,-
ICSP ISP konektor 2x5 pin THT  1

https://www.tme.eu/cz/details/zl231-10pg/konektory-idc/connfly/ds1013-10ssib1/

2.2,- 2.2,-
Q3 FET BS250  1

https://www.tme.eu/cz/details/bs250p-dic/tranzistory-s-kanalem-p-tht/diodes-incorporated/bs250p/

18,- 18,-
HC05 Řadová lišta úhlová samice 6 pinů  1

https://www.tme.eu/cz/details/zl263-6sg/konektory-hrebinky/connfly/ds1024-1-6rf1/ 

3.5,- 3.5,-
BT HC05 Bluetooth modul HC-05  1

https://arduino-shop.cz/arduino/1005-arduino-bluetooth-modul-hc-05.html 

267,- 267,-
SRX885 RF modul SRX885 (sada vysílač + přijímač)  1

https://arduino-shop.cz/arduino/20952-nicerf-433mhz-vysilac-stx885-prijimac-srx885-2x-antena-set-4ks.html 

159,- 159,-
SRX885 pat Konektor řadový 7pin  2.54mm  1

 https://www.tme.eu/cz/details/77311-818-07lf/konektory-hrebinky/amphenol/

 9,- 9,-
SRX885 pat Konektor řadový 7pin 2.54mm samice  1

 https://www.tme.eu/cz/details/zl262-7sg/konektory-hrebinky/connfly/ds1023-1-7s21/

 1.8,- 1.8,-
SERIAL Konektor se zámkem - vidlice - 5pin  1

https://www.tme.eu/cz/details/640454-5/konektory-mta-100-raster-2-54mm/te-connectivity/ 

6.5,- 6.5,-
DS_EXT, WS2812B Konektor se zámkem - vidlice - 3pin  2

https://www.tme.eu/cz/details/640456-3/konektory-mta-100-raster-2-54mm/te-connectivity/ 

3.5,- 7,-
DS_EXT, WS2812B sam Konektor protikus - zásuvka - 3pin  2

https://www.tme.eu/cz/details/3-643814-3/konektory-mta-100-raster-2-54mm/te-connectivity/ 

4.5,- 4.5,-
IC1 pat Patice precizní DIL28  1

https://www.tme.eu/cz/details/gold-28p-w/presne-patice/connfly/ds1001-01-28bt1nsf6s/

19,- 19,-
IC2 pat Patice precizní DIL8  1

https://www.tme.eu/cz/details/gold-8p/presne-patice/connfly/ds1001-01-08bt1nsf6s/

5.3,- 5.3,-
IC1 CPU ATMEGA328 DIL28  1

 https://www.tme.eu/cz/details/atmega328-pu/rodina-avr-8-bitu/microchip-atmel/

44,- 44,-
IC2 RTC DS1307 DIL8 (THT)  1

 https://www.tme.eu/cz/details/ds1307+/obvody-rtc/maxim-integrated/

89,-  -
IC2 alt RTC DS1307 SO08 (SMD)  1

https://www.tme.eu/cz/details/ds1307z+/obvody-rtc/maxim-integrated/

36,- 36,-
IC3 teploměr DS18B20   1

 https://www.tme.eu/cz/details/ds18b20+/prevodniky-teploty/maxim-integrated/

39,- 39,-
WSLED1-WSLED30 LED čip s IO WS2812B  30

https://www.tme.eu/cz/details/hcaaa60w/zdroje-svetla-pasy-led/worldsemi/hc-f5v-60l-60led-w-ip20/ 

363,- za metr 182,- (0,5m)
Q1 Krystal 16MHz HC-49U  1

 https://www.tme.eu/cz/details/hc49us-ff3f16.0000/krystalove-rezonatory-tht/ilsi/hc49us-ff3f18-16-0000/

9.8,- 9.8,-
Q2 Krystal 32,768kHz DT38  1

 https://www.tme.eu/cz/details/38-hx5f-32.768k/krystalove-rezonatory-tht/ilsi/38-hx5f12-5-32-768khz/

3.8,- 3.8,-
BAT1 Držák baterie CR2032  1

 https://www.tme.eu/cz/details/ch25-2032/baterie-pouzdra-i-drzaky/comf/ch25-2032lf/

8.8,- 8.8,-
BAT1 Baterie CR2032  1

 https://www.tme.eu/cz/details/bat-cr2032_v/baterie/varta-microbattery/6032501501/

5.2,- 5.2,-
šroub M4x10 (spojení plastů hodin)  8

https://www.tme.eu/cz/details/b4x10_bn1435/srouby/bossard/m4x10-bn1435-sn213306/ 

0.4,- 1.6,-
šroub M3x6 (přichycení spoje)  4

https://www.tme.eu/cz/details/b3x6_bn1435/srouby/bossard/m3x6-bn1435-sn213306/

0.25,- 1,-
matice M4 (spojení plastů hodin)  8

 https://www.tme.eu/cz/details/b4_bn118/matice/bossard/1089749/

0.16,- 0.64,-
PET-G černý cívka 1kg  1

 https://www.tme.eu/cz/details/dev-petg-1.75-bl/3d-tiskarny-a-prislusenstvi/devil-design/petg-1-75-black/

504,- nezapočítáno
PET-G čirý cívka 1kg (spotřeba je menší viz text)  1 https://www.tme.eu/cz/details/dev-petg-1.75-wh/3d-tiskarny-a-prislusenstvi/devil-design/petg-1-75-white/  495,- nezapočítáno
USB kabel A-B 1,8m kabel  1

 https://www.tme.eu/cz/details/ak-300102-018-s/kabely-a-adaptery-usb/assmann/

 26,- 26,-
USB zdroj 5V Adaptér 230V/5V min 1A  1

 https://www.tme.eu/cz/details/zsi5_2.1a-usb/zasuvkove-napajeci-zdroje/espe/

119,- 119,-
Celkem bez DPH
 1054,-

Hodiny jsou ovládány z aplikace přes jednoduché komunikační API. Dostupné příkazy a odpovědi na příkazy jsou uvedeny níže.

Směr z APP do hodin Směr z hodin do APP Význam Příklad
RGB,x,y,z| ------------------------------  nastavení barev: xyz=RGB kanály 0-255 RGB,20,50,255|
ALM,w,x,y,z| ------------------------------  nastavení budíku: w=hod 0-23, x=min 0-59, y=trvání 0-59s, z=povolit budík 1 (zakázat 0) ALM,10,20,5,1|
RTC,a,b,c,d,e,f| ------------------------------  nastavení obvodu reálného času: a=rok, b=měs, c=den, d=hod, e=min, f=sec RTC,19,12,18,8,45,0|
CLOCK| ------------------------------  zobrazí čas na LED hodinách, uloží režim do paměti EEPROM (po vypnutí a zapnutí bude čas) CLOCK|
TEMPER| ------------------------------ zobrazí teplotu na LED hodinách, uloží režim do paměti EEPROM (po vypnutí a zapnutí bude čas) TEMPER|
SCORE,x,y|
------------------------------
zobrazí na LED hodinách skóre x=hráč 1 a y=hráč 2 jako 00:00 až 99:99 SCORE,23,2|
TIMERSTART|
------------------------------
spustí stopky pro odpočet minut a vteřin 00:00 až 99:59 TIMERSTART|
TIMERSTOP| ------------------------------ zastaví odpočet stopek TIMERSTOP|
TIMERRESET| ------------------------------ vynuluje odpočet stopek TIMERRESET|
FW| ------------------------------  zobrazí na LED hodinách verzi FW vloženého v CPU FW|
AUTO| ------------------------------  nastaví režim auto (na displeji se přepíná čás/teplota) AUTO|
RSAVE| ------------------------------  uloží nastavené barvy RGB do paměti EEPROM RSAVE|
ASAVE| ------------------------------  uloží nastavený budík do paměti EEPROM ASAVE|
READRGB| př: 255,100,0,69 vrací do BT barvy (red,green,blue,a magické číslo pro kontorlu přenosu do BT "poloha 69") READRGB|
READTEMP| př: -127C a 28C jako -127,28, vrací do BT teploty z DS18B20 a RF modulu (teplota 1, teplota 2, kontrola 69) READTEMP|
READCAS| př: 12:25:59 jako 12,25,59,69 vrací do BT aktuální čas (hodina, minuta, vteřina, kontrola 69) READCAS|
READALARM| př: 15:26 na 10 sec alarm povolen jako 15,26,10,1,69 vrací do BT nastavení alarmu (hodina, minuta, doba, zap/vyp alarm, kontrola 69) READALARM|
READSCORE| př: 12:34 jako 1,2,3,4,69 vrací do BT skóre (levý hráč jako Xx a pravý hráč jako Yy a kontrola 69) READSCORE|
READTIMER| př: 25:59 jako 2,5,5,9,69 vrací do BT čas stopek jako Xx a Yy a kontrola 69) READTIMER|
TEST| ------------------------------  spustí test všech LED diod TEST|
JAS,x| ------------------------------  nastavení jasu LED: x=0 svit 100%, x=1 svit dle okolního osvětlení JAS,0|

Vysílač pro RF verzi (bezdrátové měření venkovní teploty)

Na článku se pracuje....

Jako vysílací část je použit obvod STX885, který je ovládán CPU. K CPU je připojeno čidlo teploty DS18B20.

Schéma zapojení

Deska spojů

Foto

Seznam součástek

Video

Problémy - řešení

Attachments:
Download this file (cele hodiny propojeni.png)Propojení všech segmentů[ ]56 kB140 Downloads2019-12-20 12:46