πŸ”’”인터넷은 λŠμ—ˆμ§€λ§Œ, μ‹œκ°„μ€ μ •ν™•ν•˜κ²Œ” : ESP32 λ³΄μ•ˆκ³Ό μ‹œκ°„ 동기화 두 마리 토끼 작기

μ•ˆλ…•ν•˜μ„Έμš”! μ˜€λŠ˜μ€ μ œκ°€ IoT ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ κ°€μž₯ μ‹ κ²½ μ“°λŠ” λΆ€λΆ„ 쀑 ν•˜λ‚˜μΈ **’λ³΄μ•ˆ’**κ³Ό, 그둜 인해 λ°œμƒν•˜λŠ” ‘μ‹œκ°„ 였차’ 문제λ₯Ό ν•΄κ²°ν•œ κ²½ν—˜μ„ κ³΅μœ ν•΄λ³΄λ € ν•©λ‹ˆλ‹€.

1. μ™œ ESP32의 인터넷을 λ§‰μ•˜μ„κΉŒ?

ESP32λŠ” 정말 κ°€μ„±λΉ„ 쒋은 μΉ©μ΄μ§€λ§Œ, μ™ΈλΆ€ 라이브러리λ₯Ό μ“°λ‹€ 보면 “이 칩이 λ‚΄κ°€ λͺ¨λ₯΄λŠ” 곳으둜 데이터λ₯Ό 보내면 μ–΄μ©Œμ§€?” ν•˜λŠ” 찝찝함이 생기기 λ§ˆλ ¨μž…λ‹ˆλ‹€. κ·Έλž˜μ„œ μ €λŠ” ipTIME 곡유기 섀정을 톡해 ESP32κ°€ 내뢀망(LAN)μ—μ„œλŠ” ν†΅μ‹ ν•˜λ˜, μ™ΈλΆ€ 인터넷(WAN)μœΌλ‘œλŠ” λ‚˜κ°€μ§€ λͺ»ν•˜κ²Œ 꽉 막아두고 μ‚¬μš©ν•©λ‹ˆλ‹€.

2. 인터넷을 λ§‰μœΌλ‹ˆ μƒκΈ°λŠ” ‘μ‹œκ°„’ 문제

인터넷을 μ°¨λ‹¨ν•˜λ©΄ κ°€μž₯ λ¨Όμ € ν„°μ§€λŠ” λ¬Έμ œκ°€ λ°”λ‘œ NTP μ‹œκ°„ λ™κΈ°ν™”μž…λ‹ˆλ‹€. 특히 μ œκ°€ μ‚¬μš©ν•œ ESP32-C3 λ―Έλ‹ˆ λͺ¨λ“ˆμ€ μ €κ°€ν˜•μ΄λΌ κ·ΈλŸ°μ§€ λ‚΄μž₯ 클럭 μ˜€μ°¨κ°€ μƒλ‹Ήν•˜λ”λΌκ³ μš”. ν•˜λ£¨λ§Œ μ§€λ‚˜λ„ λͺ‡ λΆ„μ”© 차이가 λ‚˜λ‹ˆ, μ •λ°€ν•œ μ œμ–΄κ°€ ν•„μš”ν•œ ν”„λ‘œμ νŠΈμ—μ„œλŠ” 치λͺ…μ μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

3. μ•ˆλ“œλ‘œμ΄λ“œ TV λ°•μŠ€μ˜ λ°°μ‹ (?)κ³Ό λ°˜μ „

μ§‘μ—μ„œ ν™ˆ μ„œλ²„λ‘œ ν™œμš© 쀑인 μ•ˆλ“œλ‘œμ΄λ“œ TV λ°•μŠ€λ₯Ό νƒ€μž„ μ„œλ²„λ‘œ μ“°λ €κ³  ν–ˆλ”λ‹ˆ, 이 녀석도 λ¬Έμ œμž…λ‹ˆλ‹€. μ•ˆλ“œλ‘œμ΄λ“œ OS νŠΉμ„±μƒ μ‹œμŠ€ν…œ μ‹œκ°„μ„ κ°•μ œλ‘œ λ™κΈ°ν™”ν•˜λŠ” 게 쉽지 μ•Šκ³ , μž¬λΆ€νŒ… ν›„μ—λŠ” μ‹œκ°„μ΄ ν‹€μ–΄μ Έ 있기 μΌμ‘€μ˜€μ£ .

κ·Έλž˜μ„œ μ €λŠ” **’였차 보정(Offset) μ•Œκ³ λ¦¬μ¦˜’**을 직접 κ΅¬ν˜„ν•˜κΈ°λ‘œ ν–ˆμŠ΅λ‹ˆλ‹€.

4. ν•΄κ²°μ±…: “λ‚˜λ§Œμ˜ νƒ€μž„ ν”„λ‘μ‹œ(Time Proxy)” μ‹œμŠ€ν…œ

μ‹œμŠ€ν…œμ˜ μ›λ¦¬λŠ” 생각보닀 κ°„λ‹¨ν•˜μ§€λ§Œ κ°•λ ₯ν•©λ‹ˆλ‹€.

  • Step 1. μ„œλ²„μ˜ μ •μ§ν•œ κ³ λ°±: μ•ˆλ“œλ‘œμ΄λ“œ ν™ˆ μ„œλ²„(PHP)κ°€ μ™ΈλΆ€ νŽ˜μ΄μ§€μ—μ„œ ν‘œμ€€ μ‹œκ°„μ„ κ°€μ Έμ˜΅λ‹ˆλ‹€. 그리고 자기 μ‹œκ°„κ³Ό μ–Όλ§ˆλ‚˜ 차이가 λ‚˜λŠ”μ§€ **’μ˜€μ°¨κ°’(Offset)’**을 계산해 λ‘‘λ‹ˆλ‹€. (예: “λ‚΄ μ‹œκ°„μ€ 10μ‹œμ§€λ§Œ μ‹€μ œλ‘  10μ‹œ 5뢄이야. μ˜€μ°¨λŠ” +5λΆ„!”)
  • Step 2. ESP32의 μš”μ²­: 인터넷이 λ§‰νžŒ ESP32λŠ” 12μ‹œκ°„λ§ˆλ‹€ 둜컬 μ„œλ²„μ— 접속해 μ„œλ²„ μ‹œκ°„κ³Ό μ˜€μ°¨κ°’μ„ λ°›μ•„μ˜΅λ‹ˆλ‹€.
  • Step 3. μ΅œμ’… 합체: ESP32λŠ” μ„œλ²„ μ‹œκ°„μ— μ˜€μ°¨κ°’μ„ 더해 μ§„μ§œ ν‘œμ€€ μ‹œκ°„μ„ μ°Ύμ•„λƒ…λ‹ˆλ‹€.

5. κ²°κ³Ό: λ³΄μ•ˆκ³Ό μ •ν™•λ„μ˜ μ™„μ„±

μ΄λ ‡κ²Œ μ„ΈνŒ…ν•˜λ‹ˆ ESP32λŠ” 단 1λ°”μ΄νŠΈμ˜ 데이터도 μ™ΈλΆ€λ§μœΌλ‘œ ν˜λ¦¬μ§€ μ•ŠμœΌλ©΄μ„œ, μ‹œκ°„μ€ 항상 1초 λ‹¨μœ„κΉŒμ§€ μ •ν™•ν•˜κ²Œ μœ μ§€ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 저사양 TV λ°•μŠ€μ—μ„œ λŒμ•„κ°€λŠ” μ˜›λ‚  λ²„μ „μ˜ PHP/MySQL ν™˜κ²½μ—μ„œλ„ μ•„μ£Ό μŒ©μŒ©ν•˜κ²Œ 잘 λŒμ•„κ°€λ„€μš”!


마치며

남듀이 보기엔 “κ·Έλƒ₯ 인터넷 μ—°κ²°ν•˜λ©΄ νŽΈν•  κ±Έ μ™œ μ΄λ ‡κ²ŒκΉŒμ§€ ν•΄?”라고 ν•  μˆ˜λ„ μžˆμ§€λ§Œ, 메이컀라면 이런 λ‚˜λ§Œμ˜ λ³΄μ•ˆ ν™˜κ²½μ„ κ΅¬μΆ•ν•˜λŠ” λ°μ„œ μ˜€λŠ” 쾌감이 있죠.

ν˜Ήμ‹œ μ €μ²˜λŸΌ λ³΄μ•ˆμ„ μœ„ν•΄ κΈ°κΈ°λ₯Ό κ²©λ¦¬ν•˜κ³  μ‹Άκ±°λ‚˜, μ €κ°€ν˜• 칩의 μ‹œκ°„ 였차 λ•Œλ¬Έμ— 고민인 λΆ„λ“€μ—κ²Œ 이 방식이 μž‘μ€ 팁이 λ˜μ—ˆμœΌλ©΄ μ’‹κ² μŠ΅λ‹ˆλ‹€.

μ½”λ©˜νŠΈ

λ‹΅κΈ€ 남기기

이메일 μ£Όμ†ŒλŠ” κ³΅κ°œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν•„μˆ˜ ν•„λ“œλŠ” *둜 ν‘œμ‹œλ©λ‹ˆλ‹€