Tiny Alpaca Server
An Arduino Library providing a ASCOM Alpaca UDP and HTTP server, with examples for AAVSO AstroMakers devices.
0
Project description
๐งฉ ํ๋ก์ ํธ ๊ฐ์
TinyAlpacaServer๋
Arduino์ WIZnet Ethernet ์นฉ์ ์ด์ฉํด Alpaca ํ์ค ์ฅ์น๋ฅผ ๊ตฌํํ๋ ํ๋ก์ ํธ์ด๋ค.
๊ธฐ์กด์๋ PC๋ Raspberry Pi์์๋ง ๋์ํ๋
ASCOM Alpaca ์๋ฒ๋ฅผ
๐ ์ํ MCU ํ๊ฒฝ์์๋ ์คํ ๊ฐ๋ฅํ๋๋ก ํ์ฅํ ๊ฒ์ด ํต์ฌ์ด๋ค.
๐ฉ ํ๋ก์ ํธ ๋ฐฐ๊ฒฝ
์ฒ์ฒด๊ด์ธก ์์คํ ์์๋ ์ฌ๋ฌ ์ฅ๋น๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ค:
- ๋ง์๊ฒฝ
- ๋ ์จ ์ผ์
- ๋ณด์กฐ ์ฅ์น (์กฐ๋ช , ์บ๋ฆฌ๋ธ๋ ์ดํฐ ๋ฑ)
์ด ์ฅ๋น๋ค์ ๋ณดํต ASCOM Alpaca ํ์ค์ ํตํด ์ ์ด๋๋๋ฐ,
- ๋๋ถ๋ถ ๊ณ ์ฑ๋ฅ ์์คํ (PC, SBC)์ ์์กด
- ์ํ MCU์์๋ ๊ตฌํ์ด ์ด๋ ค์
๐ ์ฆ, ์ ๋น์ฉ ์ฅ๋น๋ฅผ ํ์ค ์์คํ ์ ์ฐ๊ฒฐํ๊ธฐ ์ด๋ ค์ด ๊ตฌ์กฐ
๐ก ํต์ฌ ์์ด๋์ด

๐ โArduino๋ฅผ Alpaca ์ฅ๋น์ฒ๋ผ ๋์ํ๊ฒ ๋ง๋ค์โ
TinyAlpacaServer๋ Arduino ์์์
Alpaca ์๋ฒ๋ฅผ ์ง์ ์คํํ๊ณ ,
์ธ๋ถ์์๋ ์ด ์ฅ์น๋ฅผ
๐ ์ ์ ๋คํธ์ํฌ ์ฅ๋น์ฒ๋ผ ์ธ์ํ ์ ์๊ฒ ํ๋ค.
โ๏ธ ์์คํ ๊ตฌ์กฐ
๐น ๋์ ํ๋ฆ
- Arduino๊ฐ ์ผ์/์ฅ์น ์ํ๋ฅผ ์ฒ๋ฆฌ
- TinyAlpacaServer๊ฐ Alpaca API ์์ฒญ์ ์ฒ๋ฆฌ
- W5500์ด ๋คํธ์ํฌ ํต์ ์ํ
- ํด๋ผ์ด์ธํธ๊ฐ HTTP/UDP๋ก ์ ๊ทผ
๐ ๊ฒฐ๊ณผ์ ์ผ๋ก
Arduino๊ฐ ํ๋์ Alpaca ์๋ฒ๋ก ๋์
๐ WIZnet(W5500)์ ์ญํ
์ด ํ๋ก์ ํธ์์ W5500์ ๋จ์ ํต์ ์นฉ์ด ์๋๋ผ
๐ ์ ์ฒด ์์คํ
์ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ํต์ฌ ์์
์ฃผ์ ๊ธฐ๋ฅ
- Ethernet ๊ธฐ๋ฐ ๋คํธ์ํฌ ์ฐ๊ฒฐ
- TCP/UDP ํต์ ์ฒ๋ฆฌ
- HTTP ์๋ฒ ํต์ ์ง์
- ๋คํธ์ํฌ ์คํ ์คํ๋ก๋
๐ MCU๊ฐ ์ง์ TCP/IP๋ฅผ ์ฒ๋ฆฌํ์ง ์์๋ ๋์ด
์ ์ฌ์ ํ๊ฒฝ์์๋ ์์ ์ ์ธ ์๋ฒ ๊ตฌํ ๊ฐ๋ฅ
๐ง TinyAlpacaServer ๋ด๋ถ ๊ตฌ์กฐ
TinyAlpacaServer๋ ๋จ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ผ
์์ฒญ ์ฒ๋ฆฌ ์์ง ์ญํ ์ ํ๋ค.
- Alpaca ์์ฒญ ์์ (HTTP/UDP)
- ์์ฒญ ํ์ฑ (RequestDecoder)
- ์ฅ์น ๋ก์ง์ผ๋ก ์ ๋ฌ
- JSON ์๋ต ์์ฑ
๐ ์ค์ ์ฅ์น ๋์์ Arduino ์ฝ๋๊ฐ ๋ด๋นํ๊ณ ,
๐ ์๋ฒ ์ฒ๋ฆฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ด๋น
๐ง ์ฃผ์ ๊ธฐ๋ฅ
โ Alpaca ์๋ฒ ๊ตฌํ
- Discovery Protocol ์ง์
- Management API ์ ๊ณต
- Device API ๊ตฌํ
โ ๋คํธ์ํฌ ๊ธฐ๋ฅ
- HTTP ๊ธฐ๋ฐ ์์ฒญ ์ฒ๋ฆฌ
- UDP ๊ธฐ๋ฐ ์ฅ์น ํ์
โ ์๋ฒ ๋๋ ์ต์ ํ
- ๋์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ์ต์ํ
- JSON 2-pass ์์ฑ ๋ฐฉ์
- PROGMEM ํ์ฉ
๐ ํ์ฉ ์ฌ๋ก
ํ์ฌ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ค์ ์ฅ๋น์ ์ฌ์ฉ๋๊ณ ์๋ค:
- Cover Calibrator (์กฐ๋ช ์ ์ด ์ฅ์น)
- Weather Station (๊ธฐ์ ๋ชจ๋ํฐ๋ง)
๐ ๋จ์ ํ
์คํธ๊ฐ ์๋๋ผ
์ค์ ๊ด์ธก ํ๊ฒฝ์์ ๋์ํ๋ ์์ค
๐ฏ ํ๋ก์ ํธ์ ์๋ฏธ
์ด ํ๋ก์ ํธ๋ ๋จ์ ๊ธฐ๋ฅ ๊ตฌํ์ด ์๋๋ผ:
๐ โ๊ณ ๊ฐ ์ฅ๋น ์ค์ฌ ๊ตฌ์กฐ โ ์ ๊ฐ ์๋ฒ ๋๋ ํ์ฅโ
์ฆ,
- ๊ธฐ์กด: PC ๊ธฐ๋ฐ Alpaca ์ฅ์น
- ๋ณํ: Arduino ๊ธฐ๋ฐ Alpaca ์ฅ์น
์ ๊ท์ฑ (Innovation)
- ์ ์ฌ์ MCU ๊ธฐ๋ฐ Alpaca ์๋ฒ ๊ตฌํ
โ PC ์์ด๋ ํ์ค ํ๋กํ ์ฝ ๋์ - ๊ฒฝ๋ ๋คํธ์ํฌ ๊ตฌ์กฐ
โ ์ ํ๋ ๋ฉ๋ชจ๋ฆฌ ํ๊ฒฝ์ ์ต์ ํ - WIZnet ๊ธฐ๋ฐ ๋คํธ์ํฌ ์คํ๋ก๋
โ MCU ๋ถ๋ด ์ต์ํ, ์์ ์ฑ ํ๋ณด - ์คํ ํ์ค ๊ธฐ๋ฐ ํ์ฅ์ฑ
โ ๋ค์ํ ์ฅ๋น์ ์ฆ์ ์ฐ๋ ๊ฐ๋ฅ
์ธ๋ถ ๊ฐ์น (External Value)
- ์ ๋น์ฉ ์์คํ
๊ตฌํ
โ Arduino ๊ธฐ๋ฐ์ผ๋ก ๋น์ฉ ์ ๊ฐ - ์คํ์์ค ์ํ๊ณ ํ์ฅ
โ Alpaca ํ์ค ํ์ฉ ๋ฒ์ ํ๋ - ๋ค์ํ ๋ถ์ผ ์ ์ฉ ๊ฐ๋ฅ
โ ์ฒ๋ฌธ, IoT, ์๊ฒฉ์ ์ด ๋ฑ ํ์ฅ์ฑ ํ๋ณด - ์ค์ ํ ์ค๊ณ ์ฌ๋ก ์ ๊ณต
โ ๊ต์กยท์ฐ๊ตฌยท์ ํ ๊ฐ๋ฐ ํ์ฉ ๊ฐ๋ฅ - ์ค์ฌ์ฉ ๊ฒ์ฆ ์๋ฃ
โ ์ค์ ์ฅ๋น์ ์ ์ฉ๋ ๊ธฐ์