Skip to content

Tiny Alpaca Server

An Arduino Library providing a ASCOM Alpaca UDP and HTTP server, with examples for AAVSO AstroMakers devices.

Sunny_

Published April 02, 2026

Original author: James SyngeOriginal source (new tab)

Tiny Alpaca Server

Project description

๐Ÿงฉ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

TinyAlpacaServer๋Š”
Arduino์™€ WIZnet Ethernet ์นฉ์„ ์ด์šฉํ•ด Alpaca ํ‘œ์ค€ ์žฅ์น˜๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์ด๋‹ค.

๊ธฐ์กด์—๋Š” PC๋‚˜ Raspberry Pi์—์„œ๋งŒ ๋™์ž‘ํ•˜๋˜
ASCOM Alpaca ์„œ๋ฒ„๋ฅผ

๐Ÿ‘‰ ์†Œํ˜• MCU ํ™˜๊ฒฝ์—์„œ๋„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ™•์žฅํ•œ ๊ฒƒ์ด ํ•ต์‹ฌ์ด๋‹ค.


๐Ÿšฉ ํ”„๋กœ์ ํŠธ ๋ฐฐ๊ฒฝ

์ฒœ์ฒด๊ด€์ธก ์‹œ์Šคํ…œ์—์„œ๋Š” ์—ฌ๋Ÿฌ ์žฅ๋น„๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค:

  • ๋ง์›๊ฒฝ
  • ๋‚ ์”จ ์„ผ์„œ
  • ๋ณด์กฐ ์žฅ์น˜ (์กฐ๋ช…, ์บ˜๋ฆฌ๋ธŒ๋ ˆ์ดํ„ฐ ๋“ฑ)

์ด ์žฅ๋น„๋“ค์€ ๋ณดํ†ต ASCOM Alpaca ํ‘œ์ค€์„ ํ†ตํ•ด ์ œ์–ด๋˜๋Š”๋ฐ,

  • ๋Œ€๋ถ€๋ถ„ ๊ณ ์„ฑ๋Šฅ ์‹œ์Šคํ…œ(PC, SBC)์— ์˜์กด
  • ์†Œํ˜• MCU์—์„œ๋Š” ๊ตฌํ˜„์ด ์–ด๋ ค์›€

๐Ÿ‘‰ ์ฆ‰, ์ €๋น„์šฉ ์žฅ๋น„๋ฅผ ํ‘œ์ค€ ์‹œ์Šคํ…œ์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์–ด๋ ค์šด ๊ตฌ์กฐ


๐Ÿ’ก ํ•ต์‹ฌ ์•„์ด๋””์–ด

๐Ÿ’ก ํ•ต์‹ฌ ์•„์ด๋””์–ด

๐Ÿ‘‰ โ€œArduino๋ฅผ Alpaca ์žฅ๋น„์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๊ฒŒ ๋งŒ๋“ค์žโ€

TinyAlpacaServer๋Š” Arduino ์œ„์—์„œ
Alpaca ์„œ๋ฒ„๋ฅผ ์ง์ ‘ ์‹คํ–‰ํ•˜๊ณ ,

์™ธ๋ถ€์—์„œ๋Š” ์ด ์žฅ์น˜๋ฅผ
๐Ÿ‘‰ ์ •์‹ ๋„คํŠธ์›Œํฌ ์žฅ๋น„์ฒ˜๋Ÿผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.


โš™๏ธ ์‹œ์Šคํ…œ ๊ตฌ์กฐ

 
์„ผ์„œ/์žฅ์น˜ โ†’ Arduino โ†’ W5500 โ†’ ๋„คํŠธ์›Œํฌ โ†’ Alpaca Client
 

๐Ÿ”น ๋™์ž‘ ํ๋ฆ„

  1. Arduino๊ฐ€ ์„ผ์„œ/์žฅ์น˜ ์ƒํƒœ๋ฅผ ์ฒ˜๋ฆฌ
  2. TinyAlpacaServer๊ฐ€ Alpaca API ์š”์ฒญ์„ ์ฒ˜๋ฆฌ
  3. W5500์ด ๋„คํŠธ์›Œํฌ ํ†ต์‹  ์ˆ˜ํ–‰
  4. ํด๋ผ์ด์–ธํŠธ๊ฐ€ 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, ์›๊ฒฉ์ œ์–ด ๋“ฑ ํ™•์žฅ์„ฑ ํ™•๋ณด
  • ์‹ค์ „ํ˜• ์„ค๊ณ„ ์‚ฌ๋ก€ ์ œ๊ณต
    โ†’ ๊ต์œกยท์—ฐ๊ตฌยท์ œํ’ˆ ๊ฐœ๋ฐœ ํ™œ์šฉ ๊ฐ€๋Šฅ
  • ์‹ค์‚ฌ์šฉ ๊ฒ€์ฆ ์™„๋ฃŒ
    โ†’ ์‹ค์ œ ์žฅ๋น„์— ์ ์šฉ๋œ ๊ธฐ์ˆ 

Comments

Comments