10. Using The HTTP Send The Temperature Data To Node Red - EnglishNo/ESP32 GitHub Wiki
- ๋ช ๋ น ํ๋กฌํํธ(cmd)์ ๋ค์ด๊ฐ๋ค.
- ๋ช ๋ น ํ๋กฌํํธ์์ "ipconfig"์ด๋ผ๊ณ ์ ๋ ฅํ๋ค.
- ๊ทธ ํ ๋ฐ์ค ์น IP๋ฅผ ํ์ธํ๋ค.
- ์ด๋ ๊ฒ ์ฐพ์ IP์ ํ๋ node-red์ http๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋ ์ฌ์ฉํ๋ค.
(์ฐธ๊ณ ๋ก ์ด ์ฌ์ง์ ์ง์์ ์ปดํจํฐ๋ฅผ ์ฌ์ฉํ ๋ ์ฐ์ ๊ฑฐ๋ผ ํ๊ต์์ ์ฐพ์ IP์ ๋ค๋ฆ.)
- ์ปดํจํฐ ๋คํธ์ํฌ์์ ์ฅ์น๋ค์ด ์๋ก ์ธ์ํ๊ณ ํต์ ์ ํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ ๋ฒํธ์ด๋ค.
- ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ ์ฅ์น๊ฐ ๋ผ์ฐํฐ์ด๋ ์ผ๋ฐ ์๋ฒ์ด๋ , ๋ชจ๋ ๊ธฐ๊ณ๋ ์ด ํน์ํ ๋ฒํธ๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.
- ์ด ๋ฒํธ๋ฅผ ์ด์ฉํด ๋ฐ์ ์๋ฅผ ๋์ ํ์ฌ ๋ฉ์์ง๊ฐ ์ ์ก๋๊ณ ์์ ์๋ฅผ ํฅํ์ฌ ์์ ๋ ๋ชฉ์ ์ง๋ก ์ ๋ฌ๋๋ค.
- IP์ IP ์ฃผ์๋ ๋ค๋ฅธ ๊ฐ๋ ์ด๋ผ๊ณ ํ๋ค.
- ์ข ๋ฅ๋ก๋ IPv4, IPv6 ๋ฑ์ด ์์ผ๋ฉฐ, IPv4๋ ์ค๋๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ IP ์ฃผ์์ด๋ค. (๋ฒ์๋ 32๋นํธ) ์ด๋ฅผํ ๋ฉด 127.0.0.1์ ๋ก์ปฌ ํธ์คํธ๋ก ์๊ธฐ ์์ ์ ๊ฐ๋ฆฌํจ๋ค๊ณ ํ๋ค. IPv6๋ ๋ชจ๋ ๋จ๋ง์ ์ฃผ์๋ฅผ ๋ถ์ฌํ๊ธฐ์ 32๋นํธ๋ก๋ ๋ถ์กฑํด์ง์ ๋ฐ๋ผ ์ฃผ์ ๊ธธ์ด๋ฅผ 128๋นํธ๋ก ๋๋ฆฐ ์ฃผ์์ด๋ค. IPv6์ ๋ณดํต ๋ ์๋ฆฌ 16์ง์ ์ฌ๋ ๊ฐ๋ฅผ ์ฐ๊ณ ๊ฐ๊ฐ์ : ๊ธฐํธ๋ก ๊ตฌ๋ถํ๋ค.
(์์ธํ ๋ด์ฉ - https://ko.wikipedia.org/wiki/IP_์ฃผ์)
- ๋ถ์ฐ ํ์ดํผ๋ฏธ๋์ด ํ๊ฒฝ์์ ๋น ๋ฅด๊ณ ๊ฐํธํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ํ๋กํ ์ฝ์ด๋ค. ์ฆ, ํ์ดํผํ ์คํธ(Hypertext) ๋ฌธ์๋ฅผ ๊ตํํ๊ธฐ ์ํ์ฌ ์ฌ์ฉ๋๋ ํต์ ๊ท์ฝ์ด๋ค.
- HTTP๋ 80๋ฒ ํฌํธ๋ฅผ ์ฌ์ฉํ๋๋ก ์ ์๋์ด ์์ผ๋ฉฐ, ๋ฐ๋ผ์ HTTP ์๋ฒ๋ 80๋ฒ ํฌํธ์์ ๋๊ธฐํ๊ณ , ํด๋ผ์ด์ธํธ๋ TCP๋ฅผ ์ฌ์ฉํด ์ฐ๊ฒฐ์ ์ค์ ํ๋ค.
(์์ธํ ๋ด์ฉ - https://terms.naver.com/entry.naver?docId=2271985&cid=51207&categoryId=51207
https://terms.naver.com/entry.naver?docId=1180001&cid=40942&categoryId=32851)
-๊ด๋ จ ์ฉ์ด๋ค ์ ๋ฆฌ-
- ํ๋กํ ์ฝ: ํต์ ์์คํ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํต์ ๊ท์น.
- ํฌํธ: ๋ชจ๋๊ณผ ์ปดํจํฐ ์ฌ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ํต๋ก.
- ๋ชจ๋: ์๋ ๋ก๊ทธ ์ ํธ์ ํต์ ํ์ ์ธ ์ ํ์ ์ ์ด์ฉํ์ฌ ๋์งํธ ํต์ ์ฅ๋น์ ํต์ ํ ๋ ๋์งํธ ์ ํธ๋ฅผ ์๋ ๋ก๊ทธ ์ ํธ๋ก ๋ณํ์์ผ ์ฃผ๋ ๊ฒ.
- ํด๋ผ์ด์ธํธ: ํด๋ผ์ด์ธํธ/์๋ฒ(client/server) ๊ตฌ์ฑ์์ ์ฌ์ฉ์ ์ธก.
- TCP: IP ํ๋กํ ์ฝ ์์์ ์ฐ๊ฒฐํ ์๋น์ค๋ฅผ ์ง์ํ๋ ์ ์ก๊ณ์ธต ํ๋กํ ์ฝ
- Node-Red ํ์ด์ง์ ๋ค์ด๊ฐ๊ณ "http-in" ๋ณด๋๋ฅผ ํ๋ก์ฐ์ ๋๋ค.
- "http-in" ๋ณด๋ ์์ URL์์ Node-Red์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ HTTP ๋ธ๋ผ์ฐ์ ์ด๋ฆ์ ๋ค์๊ณผ ๊ฐ์ ์์์ผ๋ก ์์ฑํ๋ค.
- ํ๋ก์ฐ์์ ๋๋ฒ๊ทธ ์ฐฝ์์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ์ง "debug" ๋ณด๋๋ฅผ ๋๋ค.
- ์น ๋ธ๋ผ์ฐ์ ์ ๋ค์ด๊ฐ ์ฃผ์ ์ ๋ ฅ ์ฐฝ์์ "http://(cmb์ฐฝ์์ ์ฐพ์ IP ์ฃผ์):1880/("http-in" ๋ณด๋์ URL์์ ์ ๋ ฅํ ๋ฌธ์ฅ๊ณผ ๊ฐ์ ๋ฌธ์ฅ)?(๋๋ฒ๊ทธ ์ฐฝ์์ ์ถ๋ ฅํ๊ณ ์ถ์ ๋ด์ฉ)"์์ผ๋ก ์์ฑํ๋ค.
- ๋ค ์์ฑํ๊ณ Enterํค๋ฅผ ๋๋ฅด๋ฉด ๋๋ฒ๊ทธ์ฐฝ์ ๋ฌธ์ฅ์ด ์ถ๋ ฅ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
(dashboard ์ฌ์ฉ๋ฒ - https://github.com/EnglishNo/ESP32/wiki/8.-Node-Red-Start#-dashboard-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B2%95-)
- dashboard ์ฐฝ์์ "Layout" ์ฐฝ์ ๋ค์ด๊ฐ "+tab"๋ฒํผํ๊ณ ๋ง๋ค์ด์ง tap์ ๋ง์ฐ์ค๋ฅผ ๋ "+group"๋ฒํผ์ ํด๋ฆญํ๋ค.
- "function" ๋ณด๋๋ฅผ ํ๋ก์ฐ์ ๋ ๋ค์ "http-in" ๋ณด๋ํ๊ณ ์ฐ๊ฒฐํ๋ค.
- "function" ๋ณด๋๋ฅผ ๋๋ธ ํด๋ฆญํด ์ฝ๋๋ฅผ ์ด๋ฐ ์์ผ๋ก ์์ฑํ๋ค. (๋จ ์ ์ ์์ฑํ ๋ธ๋ผ์ฐ์ ์ฃผ์('?'๋ค์ ์๋ ๋ฌธ์ฅ(์ซ์ ์ ์ธ))์ ๋๊ฐ์ด ์์ฑํด์ผ ํ๋ค.)
- ์ฌ๊ธฐ๊น์ง ํ๋ฉด "function" ๋ณด๋ํ๊ณ "debug" ๋ณด๋๋ฅผ ์ฐ๊ฒฐํด ๋ค์ ์คํํด ๋ณด๋ฉด ๋๋ฒ๊ทธ ์ฐฝ์ ์ด๋ฐ ์์ผ๋ก ์ถ๋ ฅ๋๋ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
- ๊ทธ ๋ค์์ dashboard ๋ณด๋์ธ "text"ํ๊ณ "gauge" ๋ณด๋๋ฅผ ํ๋ก์ฐ์ ๋์ด "function" ๋ณด๋ํ๊ณ ์ฐ๊ฒฐํ๋ค.
- "text", "gauge" ๋ณด๋๋ฅผ ๋๋ธ ํด๋ฆญํด "Group"์์ ์์ํ ๋ ๋ง๋ ๊ทธ๋ฃน์ผ๋ก ์ค์ ํ๋ค. (์ฐธ๊ณ ๋ก "Label"์ ์ด๋ฆ์ ๋ฐ๊พธ๋ฉด dashboard ์๋์ ํ์ธํ ๋ ๋จ๋ ๋ฌธ์ฅ์ด ๋ฐ๋๋ค.)
- ๊ทธ๋ฆฌ๊ณ "dashboard" ์ฐฝ์ ๋ค์ด๊ฐ ๊ทธ๋ฃน ์์ ์ ๋จ๊ณ์์ ๋ฃ์๋ ๋ณด๋๋ค์ด ์ ์์ ์ผ๋ก ๋ฃ์ด์ง ๊ฒ์ ํ์ธํ์ผ๋ฉด ์ ์์ ๋ฒํผ์ ํด๋ฆญํ๋ฉด UI๊ฐ ๋จ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
- ๊ทธ๋ฌ๋ฉด ํ๋ฒ ๋ ์ ์ ์
๋ ฅํ๋ ์ฃผ์ ๋ธ๋ผ์ฐ์ ์ ๋ค์ด๊ฐ ์ฃผ์ ์
๋ ฅ์ฐฝ์ ํด๋ฆญํ๊ณ ์ํฐํค๋ฅผ ๋๋ฅด๋ฉด ๊ฐ์ด ๋ณํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ("gauge" ๋ณด๋์ ์ต๋๊ฐ, ์ต์๊ฐ์ "gauge" ๋ณด๋๋ฅผ ๋๋ธ ํด๋ฆญํ๊ณ "Range"์ "max", "mix"์ ๊ฐ์ ์์ ํด์ผ ๋ฐ๋๋ค.)
- ์ฌ๋ด์ผ๋ก "http response" ๋ณด๋๋ฅผ ํ๋ก์ฐ์ ๊บผ๋ด์ด "function" ๋ณด๋ํ๊ณ ์ฐ๊ฒฐํ๊ณ ์ํ์ฝ๋์ "200"๋ฅผ ์์ฑํ๊ณ Node-Red์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ ๋ ฅํ๋ฉด ์๋ฌ ์ฝ๋ ๋์ ์ ๋ ฅํ ๊ฐ์ด ์น ๋ธ๋ผ์ฐ์ ์ ์ถ๋ ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
- ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด Node-Red์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๋ฒ์ ์๊ฒ ๋์๋ค.
- ์ ์ค์ต์์ dashboard UI๋ฅผ ๋ณด๋ ๋ฒ์ ๋ชฐ๋๋๋ฐ, ์ด๋ฒ ์ค์ต์ ํตํด ์๊ฒ ๋์๋ค.
- "function" ๋ณด๋ ์์์ ์ฝ๋๋ฅผ ์ ๋ ฅํ๊ณ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋์์ผ๋ ๊ฐ์ด ์ถ๋ ฅ ์๋๊ณ "undefined"๊ฐ ์ถ๋ ฅ๋ ์ ์ด ์๋๋ฐ, ๊ทธ๊ฒ์ด ์ฝ๋๋ฅผ ์์ฑํ ๋ ์น ๋ธ๋ผ์ฐ์ ์ '=', '?' ์ฌ์ด์ ์๋ ์๋ ๋ฌธ์ฅํ๊ณ ๋๊ฐ์ง ์์ ๊ทธ๋ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒ์ผ๋ก ์๊ฒ ๋์๋ค. ๊ทธ๋ฆฌ๊ณ ๋๊ฐ์ด ์์ฑํ๋ "temperature"์ด ์์ด ๊ฐ๋ง ์ถ๋ ฅํ๋ ๊ฒ์ด ์ฑ๊ณตํ๋ค.
- dashboard์ UI๋ฅผ ๋ชป ๋ณธ ๊ฒฝ์ฐ๊ฐ ์์๋๋ฐ, dashboard ์ข ๋ฅ์ ๋ณด๋์ "Group"๋ฅผ ์ค์ ํ๋ UI๋ฅผ ๋ณผ ์ ์๊ฒ ๋์๋ค.