๐ŸŽผ Project

    [Monitoring System] 1~4 ๊นŒ์ง€์˜ ๋‚ด์šฉ์œผ๋กœ ํ•™์ˆ ๋Œ€ํšŒ์— ๋…ผ๋ฌธ์„ ๋ƒˆ์Šต๋‹ˆ๋‹ค.

    ๋ณ„ ๊ฑด ์•„๋‹ˆ๊ณ  ๊ธฐํšŒ๊ฐ€ ๋˜์–ด์„œ ํ•œ๊ตญํ†ต์‹ ํ•™ํšŒ ํ•˜๊ณ„์ข…ํ•ฉํ•™์ˆ ๋Œ€ํšŒ์— ํ•ด๋‹น ๋‚ด์šฉ์œผ๋กœ ๋…ผ๋ฌธ์„ ์‹ค์„ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ›„์† ๋…ผ๋ฌธ์œผ๋กœ ์ด์ƒํƒ์ง€ ๊ด€๋ จ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋‘๊ณ  ์žˆ๋Š”๋ฐ ์“ธ ์ˆ˜ ์žˆ์„๋Ÿฐ์ง€๊นŒ์ง€๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ๋„ค์š”ใ…Žใ…Ž ์‹คํ—˜์žฅ์น˜์— ๊ด€ํ•œ ๋‚ด์šฉ์ด๋‚˜ ์ž์„ธํ•œ ์„ธํŒ… ๋“ฑ์˜ ๋‚ด์šฉ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•˜๋ฉด ์ฝ์–ด๋ณด์…”๋„ ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‘ ํŽ˜์ด์ง€ ์งœ๋ฆฌ๊ณ  ๋ฌด๋ ค ์ฒœ์›(!)์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :) ๊ณ ์† ๋ฌด์„  ํ†ต์‹  ๊ธฐ๋ฐ˜์˜ ์‹ค์‹œ๊ฐ„ ์ง„๋™ ์ธก์ • ๋ฐ ๋ถ„์„ ์‹œ์Šคํ…œ | DBpia ๊ฐ•๋‹ค์ธ, ์กฐ์ˆ˜ํ˜•, ๊น€๋Œ€ํ™˜ | ํ•œ๊ตญํ†ต์‹ ํ•™ํšŒ ํ•™์ˆ ๋Œ€ํšŒ๋…ผ๋ฌธ์ง‘ | 2023.06 www.dbpia.co.kr

    [Monitoring System] 7. Fast API ๋กœ ์ดํ‹€๋งŒ์— ๋ฐฑ์—”๋“œ ๊ตฌ์ถ•ํ•˜๊ธฐ(feat. Google Chart) (3) - ๋งˆ์นจ๋‚ด ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ ๅฎŒ

    [Monitoring System] 5. Fast API ๋กœ ์ดํ‹€๋งŒ์— ๋ฐฑ์—”๋“œ ๊ตฌ์ถ•ํ•˜๊ธฐ(feat. SQLAlchemy, PostgreSQL) (1) from sqlalchemy import Boolean, Column, ForeignKey, Integer, String, TIMESTAMP, Float from .base import Base ์ œ๋ชฉ์€ ๊ฑฐ์ฐฝํ•˜๊ฒŒ ์จ๋†จ์ง€๋งŒ ์•„์ฃผ ๊ฐ„๋‹จํ•œ ๋ฐฑ์—”๋“œ๋ฅผ ๊ตฌ์ถ•ํ•ด์„œ ๊ทธ๋ฆฌ ์˜ค๋ž˜๊ฑธ๋ฆฌ์ง€ ์•Š์•˜์„ ๋ฟ์ด๋‹ค^^. ์šฐ์„  ๋ฐฑ์—”๋“œ๋ฅผ dnai-deny.tistory.com [Monitoring System] 6. Fast API ๋กœ ์ดํ‹€๋งŒ์— ๋ฐฑ์—”๋“œ ๊ตฌ์ถ•ํ•˜๊ธฐ(feat. SQLAlchemy, PostgreSQL) (2) - MQTT ๋ฐ์ดํ„ฐ ์  2023.06.13 - [Project/Monitorin..

    [Monitoring System] 6. Fast API ๋กœ ์ดํ‹€๋งŒ์— ๋ฐฑ์—”๋“œ ๊ตฌ์ถ•ํ•˜๊ธฐ(feat. SQLAlchemy, PostgreSQL) (2) - MQTT ๋ฐ์ดํ„ฐ ์ ์žฌ / ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

    2023.06.13 - [Project/Monitoring System] - [Monitoring System] 5. Fast API ๋กœ ์ดํ‹€๋งŒ์— ๋ฐฑ์—”๋“œ ๊ตฌ์ถ•ํ•˜๊ธฐ(feat. SQLAlchemy, PostgreSQL) (1) [Monitoring System] 5. Fast API ๋กœ ์ดํ‹€๋งŒ์— ๋ฐฑ์—”๋“œ ๊ตฌ์ถ•ํ•˜๊ธฐ(feat. SQLAlchemy, PostgreSQL) (1) from sqlalchemy import Boolean, Column, ForeignKey, Integer, String, TIMESTAMP, Float from .base import Base ์ œ๋ชฉ์€ ๊ฑฐ์ฐฝํ•˜๊ฒŒ ์จ๋†จ์ง€๋งŒ ์•„์ฃผ ๊ฐ„๋‹จํ•œ ๋ฐฑ์—”๋“œ๋ฅผ ๊ตฌ์ถ•ํ•ด์„œ ๊ทธ๋ฆฌ ์˜ค๋ž˜๊ฑธ๋ฆฌ์ง€ ์•Š์•˜์„ ๋ฟ์ด๋‹ค^^. ์šฐ์„  ๋ฐฑ์—”๋“œ๋ฅผ dnai-deny.tistory.com ์ „..

    [Monitoring System] 5. Fast API ๋กœ ์ดํ‹€๋งŒ์— ๋ฐฑ์—”๋“œ ๊ตฌ์ถ•ํ•˜๊ธฐ(feat. SQLAlchemy, PostgreSQL) (1)

    from sqlalchemy import Boolean, Column, ForeignKey, Integer, String, TIMESTAMP, Float from .base import Base ์ œ๋ชฉ์€ ๊ฑฐ์ฐฝํ•˜๊ฒŒ ์จ๋†จ์ง€๋งŒ ์•„์ฃผ ๊ฐ„๋‹จํ•œ ๋ฐฑ์—”๋“œ๋ฅผ ๊ตฌ์ถ•ํ•ด์„œ ๊ทธ๋ฆฌ ์˜ค๋ž˜๊ฑธ๋ฆฌ์ง€ ์•Š์•˜์„ ๋ฟ์ด๋‹ค^^. ์šฐ์„  ๋ฐฑ์—”๋“œ๋ฅผ ํ•ด๋ณด๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ์ด๋ฒˆ์ด ์ฒ˜์Œ์ด๊ณ , ํ•„์š”์— ์˜ํ•ด์„œ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๊ณต๋ถ€ํ•ด์„œ ํ›„๋‹ฅ๋‹ฅ ๋งŒ๋“ค์–ด์„œ ๋‹ค์†Œ ์กฐ์žกํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ์–ด์จŒ๋“  ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ ์ž์ฒด๋Š” ์ž˜ ๋™์ž‘ํ•˜๊ณ  ์žˆ์œผ๋‹ˆ ํ˜ธ์ŠคํŒ…๋งŒ ๋”ฐ๋กœ ํ•ด์ฃผ๋ฉด ๋‹น์žฅ ์“ธ ์ˆ˜ ์žˆ๋‹ค. Python์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์–ด์„œ Python์˜ ๋…ธ์˜ˆ์ธ ๋‚˜์—๊ฒŒ๋Š” ์•„์ฃผ ํŽธํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด์—ˆ๋˜ ๊ฒƒ๋„ ํ•œ ๋ชซํ–ˆ๋‹ค. 0. Fast API ์ž์Šต์„œ Fast API ๊ณต์‹๋ฌธ์„œ๋กœ ๊ณต๋ถ€ํ•˜๋Š” ์‹œ๊ฐ„์„ ํ•˜๋ฃจ ๊ฐ€์ง€๊ณ  ์ดํ‹€๋™์•ˆ ๊ฐœ๋ฐœ์„ ..

    [Monitoring System] 4.1 ์„ธ์ƒ์— ๋” ๋น ๋ฅธ ๋ฐฉ๋ฒ•์ด - pyqtgraph

    [Monitoring System] 3. UDP ํ†ต์‹ ์œผ๋กœ ์‹ค์‹œ๊ฐ„ ์ง„๋™ ๋ฐ์ดํ„ฐ Plotting(feat. matplotlib) ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด์ „ mqtt์—์„œ ์‚ฌ์šฉํ•œ ์˜ˆ์ œ ๋ฐ์ดํ„ฐ๋ณด๋‹ค 2๋งŒ ๋ฐฐ ์ •๋„ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ DAQ์—์„œ ๋ฐ›์•„์˜ค๋Š” UDP ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค. ๊ตฌํ˜„ํ•˜๋ ค๋Š” ์›น ์„œ๋น„์Šค์— ์˜จ๋„ ๋ฐ์ดํ„ฐ ๋ง๊ณ  ์ง„๋™ ๋ฐ์ดํ„ฐ๋„ ๋„ฃ์–ด๋ณด dnai-deny.tistory.com [Monitoring System] 4. UDP ํ†ต์‹ ์œผ๋กœ ์‹ค์‹œ๊ฐ„ ์ง„๋™ ๋ฐ์ดํ„ฐ FFT / STFT์‹œ๊ฐํ™”(numpy, tensorflow, pytorch) ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜๋ฉด stft๋Š” ๋ถ€ํ•˜๊ฐ€ ๋„ˆ๋ฌด ์‹ฌํ•ด์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‹œ๊ฐํ™”ํ•˜๋Š” ๊ฒƒ์€ ๋ฌด๋ฆฌ๋ฌด๋ฆฌ๋ฌด๋ฆฌ์ด๋‹ค. ์ผ๋‹จ matplotlib ์ž์ฒด์—์„œ ๋‹จ์ˆœ ์‹œ๊ฐํ™”๋ฅผ ํ•˜๊ธฐ์—๋„ ๋ฐ์ดํ„ฐ ์–‘์ด ๋„ˆ๋ฌด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ผ์ข…์˜ ๋…นํ™”๊ธฐ๋Šฅ์„ ..

    [Monitoring System] 4. UDP ํ†ต์‹ ์œผ๋กœ ์‹ค์‹œ๊ฐ„ ์ง„๋™ ๋ฐ์ดํ„ฐ FFT / STFT์‹œ๊ฐํ™”(numpy, tensorflow, pytorch)

    ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜๋ฉด stft๋Š” ๋ถ€ํ•˜๊ฐ€ ๋„ˆ๋ฌด ์‹ฌํ•ด์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‹œ๊ฐํ™”ํ•˜๋Š” ๊ฒƒ์€ ๋ฌด๋ฆฌ๋ฌด๋ฆฌ๋ฌด๋ฆฌ์ด๋‹ค. ์ผ๋‹จ matplotlib ์ž์ฒด์—์„œ ๋‹จ์ˆœ ์‹œ๊ฐํ™”๋ฅผ ํ•˜๊ธฐ์—๋„ ๋ฐ์ดํ„ฐ ์–‘์ด ๋„ˆ๋ฌด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ผ์ข…์˜ ๋…นํ™”๊ธฐ๋Šฅ์„ ๋„ฃ์–ด์„œ ์›ํ•˜๋Š” ๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ fft / stft ์ฒ˜๋ฆฌํ•ด์„œ ๋”ฐ๋กœ ์‹œ๊ฐํ™”ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜์˜€๋‹ค. ๊ทธ๋ž˜๋„ FFT ์ •๋„๋Š” ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™์•„์„œ gpu accelerator๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ CUDA ํ™˜๊ฒฝ์ด ์•„๋‹Œ ๊ณณ์—์„œ๋„ ์“ธ ์ˆ˜ ์žˆ๋„๋ก numpy๋กœ๋„ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค. ์ด์ „๊นŒ์ง€ ์ฝ”๋“œ๋Š” ์š”๊ธฐ์— ์žˆ๋‹ค. https://dnai-deny.tistory.com/65 [Monitoring System] 3. UDP ํ†ต์‹ ์œผ๋กœ ์‹ค์‹œ๊ฐ„ ์ง„๋™ ๋ฐ์ดํ„ฐ Plotting(feat. matplotlib) ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด์ „ m..

    [Monitoring System] 3. UDP ํ†ต์‹ ์œผ๋กœ ์‹ค์‹œ๊ฐ„ ์ง„๋™ ๋ฐ์ดํ„ฐ Plotting(feat. matplotlib)

    ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด์ „ mqtt์—์„œ ์‚ฌ์šฉํ•œ ์˜ˆ์ œ ๋ฐ์ดํ„ฐ๋ณด๋‹ค 2๋งŒ ๋ฐฐ ์ •๋„ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ DAQ์—์„œ ๋ฐ›์•„์˜ค๋Š” UDP ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค. ๊ตฌํ˜„ํ•˜๋ ค๋Š” ์›น ์„œ๋น„์Šค์— ์˜จ๋„ ๋ฐ์ดํ„ฐ ๋ง๊ณ  ์ง„๋™ ๋ฐ์ดํ„ฐ๋„ ๋„ฃ์–ด๋ณด๊ณ  ์‹ถ์€๋ฐ, ๊ทธ๊ฒƒ์„ ์œ„ํ•ด์„œ ์šฐ์„  ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์žกํ•ด์ง€๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ์„œ๋ฒ„๋ฅผ ์ œ์™ธํ•˜๊ณ  ์†Œ์ผ“ ํ†ต์‹ ํ•œ ๊ฒฐ๊ณผ๋ฅผ matplotlib๋กœ ๋กœ์ปฌ์— ๊ฐ„๋‹จํ•˜๊ฒŒ ๋„์›Œ๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. 1. UDP ํ†ต์‹  UDP๋Š” ์†Œ์ผ“ ํ†ต์‹ ์˜ ์ผ์ข…์œผ๋กœ, ๋‹ค๋ฅธ ์†Œ์ผ“ ํ†ต์‹ ๋ฐฉ๋ฒ•์ธ TCP์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ์—ฐ๊ฒฐ์„ ๋ณด์žฅํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค. ๋‚˜์˜๊ฒŒ ๋“ค๋ฆด ์ˆ˜๋„ ์žˆ๊ฒ ์œผ๋‚˜ client์™€ server์˜ ์—ฐ๊ฒฐ์„ ์š”์ฒญํ•˜๊ณ , ์Šน์ธํ•˜๊ณ  ์—ฐ๊ฒฐํ•œ ํ›„ ํ†ต์‹ ์„ ์‹œ์ž‘ํ•˜๋Š” TCP์™€ ๋‹ฌ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋งค๋ฒˆ ๋ณด๋‚ผ ๋•Œ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ์˜ ๋ชฉ์ ์ง€(ip, port๋ฒˆํ˜ธ)๋ฅผ ํ•จ๊ป˜ ์‹ค์–ด์„œ ์ผ๋‹จ ๋ƒ…๋‹ค ๋ณด๋‚ด๋Š” ๋ฐฉ์‹..

    [Monitoring System] 2. MQTT ํ†ต์‹ 

    : Message Queuing Telemetry Transport ๊ฐ€์žฅ ๋จผ์ € ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์„ ์œ„ํ•ด MQTT ํ†ต์‹ ์ด ๋ฌด์—‡์ธ์ง€๋ถ€ํ„ฐ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. ์›๋ฆฌ Publish - Subscribe ๋ชจ๋ธ ๋ฉ”์„ธ์ง€ ๋ฐœ์‹ ์ž์™€ ์ˆ˜์‹ ์ž๋ฅผ ๊ตฌ๋ถ„ํ•จ ๋ธŒ๋กœ์ปค ๋ผ๋Š” ์ œ 3์˜ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ๋‘˜ ์‚ฌ์ด์˜ ํ†ต์‹  ์ฒ˜๋ฆฌ ๋ธŒ๋กœ์ปค์˜ publisher - subcriber ๋ถ„๋ฆฌ ๊ณต๊ฐ„ ๋ถ„๋ฆฌ ๋ฐœ์‹ ์ž / ์ˆ˜์‹ ์ž๊ฐ€ ์„œ๋กœ์˜ IP / ํฌํŠธ๋ฒˆํ˜ธ / ๋„คํŠธ์›Œํฌ ์œ„์น˜ ๋ชจ๋ฆ„ ์‹œ๊ฐ„ ๋ถ„๋ฆฌ ๋™์‹œ์— ์ผ์ƒ๋˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ ํ†ตํ•ด ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Œ ๋™๊ธฐํ™” ๋ถ„๋ฆฌ ์„œ๋กœ๋ฅผ ์ค‘๋‹จ์‹œํ‚ค์ง€ ์•Š๊ณ  ๋ฉ”์„ธ์ง€ ์†ก์ˆ˜์‹  ๊ฐ€๋Šฅ. ๊ตฌ๋…์ž๊ฐ€ ๋ฐ์ดํ„ฐ ์˜ฌ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ํ•„์š” ์—†๋‹ค. ์š”์•ฝํ•˜๋ฉด, ๋ฉ”์„ธ์ง€ ๋ฐœ์‹ ์ž๊ฐ€ ์ฃผ์ œ + ๋ฐ์ดํ„ฐ๋ฅผ ๋ธŒ๋กœ์ปค์—๊ฒŒ ๋ณด๋‚ด๋ฉด, ๋ธŒ๋กœ์ปค๋Š” ๊ทธ ์ฃผ์ œ๋ฅผ ๊ตฌ๋…ํ•˜๊ณ  ์žˆ๋Š” ์ˆ˜์‹ ์ž๋ฅผ ์ฐพ์•„์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ด์ค€๋‹ค...

    [Monitoring System] 1. ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ๋ฐ ๋ชฉํ‘œ

    ์•ž์œผ๋กœ ๋”ฅ๋Ÿฌ๋‹์„ ํ™œ์šฉํ•œ ๊ณผ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ, ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์„ผ์„œ๋‚˜ ์นด๋ฉ”๋ผ ๋“ฑ์„ ํ™œ์šฉํ•ด์„œ ์ˆ˜์ง‘ํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ธฐ๋Šฅ๊นŒ์ง€ ๊ตฌํ˜„ํ•  ์ผ์ด ๊ฝค ์žˆ์œผ๋ฆฌ๋ผ๋Š” ์ด์•ผ๊ธฐ์™€ ํ•จ๊ป˜ ๊ฐ„๋‹จํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ๋กœ์ปฌ์—์„œ ๊ตฌ์ถ•ํ•ด๋ณด๋Š” ์ˆ™์ œ(?)๋ฅผ ๋ฐ›์•˜๋‹ค. ์ด์ „์— ํ•œ ๋ฒˆ๋„ ๋ฐฑ์—”๋“œ๋ฅผ ํ•ด๋ณธ ์ ์ด ์—†์–ด์„œ ์กฐ๊ธˆ ๋ง‰๋ง‰ํ–ˆ์ง€๋งŒ, ์—ญ์‹œ ํŒŒ์ด์ฌ... FastAPI๋ฅผ ํ™œ์šฉํ•ด์„œ 5์ผ ์ •๋„๋งŒ์— ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ํ‹€์„ ์งœ๋Š”๋ฐ ์„ฑ๊ณตํ–ˆ๋‹ค. ์ด ์ฑ•ํ„ฐ์—์„œ ์ง€์†์ ์ธ ์‹œ์Šคํ…œ ์—…๋ฐ์ดํŠธ์™€ ๊ฐœ๋ฐœ ๊ณผ์ •์„ ๊ธฐ๋กํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๊ณต๊ฐœํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋Š” ์•„๋ž˜ ๊นƒํ—™ repository์— ์˜ฌ๋ ค๋‘์—ˆ๋‹ค. https://github.com/melli0505/monitoring_system [GitHub - melli0505/monitoring_system: FastAPI/PostgreSQL/MQT..