๋ชฉ๋ก๐Ÿ‘ฉ‍๐Ÿ’ป IoT (Embedded)/Arduino (64)

๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[์•„๋‘์ด๋…ธ] ๋ธ”๋ฃจํˆฌ์Šค ์™„์„ฑํ•˜๊ธฐ - ์กฐ๋ช… ์žฅ์น˜ ์ œ์–ด & ์„ผ์„œ ๋ฐ์ดํ„ฐ ์กฐํšŒ

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ ๋ธ”๋ฃจํˆฌ์Šค ์กฐ๋ช… ์žฅ์น˜ ์ œ์–ดํ•˜๊ธฐ : ๋ธ”๋ฃจํˆฌ์Šค ํ†ต์‹ ์œผ๋กœ ์•„๋‘์ด๋…ธ๋กœ ๋ช…๋ นํ•˜๋ฉด ์•„๋‘์ด๋…ธ๋Š” LED ์ œ์–ดํ•จ์œผ๋กœ์จ ์กฐ๋ช… ์žฅ์น˜ ์™„์„ฑ 1) ๋ธ”๋ฃจํˆฌ์Šค ์ œ์–ด ์•ฑ์€ ๋ธ”๋ฃจํˆฌ์Šค ๋ชจ๋“ˆ๋กœ ๋ช…๋ น ๋ฌธ์ž ์ „์†ก 2) ๋ธ”๋ฃจํˆฌ์Šค ๋ชจ๋“ˆ์€ ์•„๋‘์ด๋…ธ๋กœ ๋ช…๋ น ๋ฌธ์ž ์ „๋‹ฌ 3) ์•„๋‘์ด๋…ธ๋Š” ๋ธ”๋ฃจํˆฌ์Šค ๋ชจ๋“ˆ๋กœ๋ถ€ํ„ฐ ์‹œ๋ฆฌ์–ผ ํ†ต์‹ ์œผ๋กœ ๋ช…๋ น ๋ฌธ์ž ์ „๋‹ฌ๋ฐ›์Œ 4) ์•„๋‘์ด๋…ผ๋Š” ์ˆ˜์‹ ๋œ ๋ช…๋ น ๋ฌธ์ž์— ๋”ฐ๋ผ ์—ฐ๊ฒฐ๋œ LED ์ œ์–ด ๐Ÿ” ๋„ค์˜ค ํ”ฝ์…€ LED : ์นฉ์ด ๋‚ด์žฅ๋œ LED : ์Šคํฌ๋ฆฝ, ๋ฐ”, ์›ํ˜• ๋“ฑ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ : 5V, GND, DATA 3๊ฐœ์˜ ํ•€ ์ด๋ค„์ง : Adafruit Neopixel ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ํ•„์š” ๐Ÿฅ‘ ๋ธ”๋ฃจํˆฌ์Šค ํ†ต์‹ ์œผ๋กœ ์„ผ์„œ ๋ฐ์ดํ„ฐ ์กฐํšŒํ•˜๊ธฐ : ์•„๋‘์ด๋…ธ์—์„œ ์ธก์ •ํ•œ ์„ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ธ”๋ฃจํˆฌ์Šค ํ†ต์‹ ์„ ํ†ตํ•ด ์ „์†ก 1) ๋ธ”๋ฃจํˆฌ์Šค ์ œ์–ด ์•ฑ..

[์•„๋‘์ด๋…ธ] ๋ธ”๋ฃจํˆฌ์Šค ํ†ต์‹ ํ•˜๊ธฐ - ์†Œํ”„ํŠธ์›จ์–ด ์‹œ๋ฆฌ์–ผ & ๋ธ”๋ฃจํˆฌ์Šค ํ†ต์‹  ๋ชจ๋“ˆ

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ ์†Œํ”„ํŠธ์›จ์–ด ์‹œ๋ฆฌ์–ผ : ์‹œ๋ฆฌ์–ผ ํ†ต์‹  ์ง€์›ํ•˜๋Š” ํฌํŠธ(0, 1) : SoftwareSerial ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ†ตํ•ด ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๊ฐ€์ƒ์˜ ์‹œ๋ฆฌ์–ผ ํฌํŠธ ์ƒ์„ฑํ•˜์–ด ์‹œ๋ฆฌ์–ผ ํ†ต์‹  ๊ฐ€๋Šฅ ๐Ÿ” SoftwareSerial #influde // rxPin : ์ˆ˜์‹ ํ•  ํ•€, txPin : ์†ก์‹ ํ•  ํ•€ SoftwareSerial mySerial(rxPin, txPin); ๐Ÿฅ‘ ๋ธ”๋ฃจํˆฌ์Šค ํ†ต์‹  ๋ชจ๋“ˆ ๐Ÿ” ๋ธ”๋ฃจํˆฌ์Šค : ๊ทผ๊ฑฐ๋ฆฌ ๋ฌด์„  ํ†ต์‹ ์„ ์œ„ํ•œ ํ‘œ์ค€ : ์ €๊ฐ€๊ฒฉ, ์ €์ „๋ ฅ ํ†ต์‹  ๋ฐฉ๋ฒ• : 10m ์ด๋‚ด์— ์งง์€ ๊ฑฐ๋ฆฌ ํ†ต์‹  ์œ„ํ•œ ๊ธฐ์ˆ  ๐Ÿ” HC-06 : ์‹œ๋ฆฌ์–ผ ํ†ต์‹  ํ™œ์šฉ์œ„ํ•ด ์—ฐ๋™ํ•ด์•ผํ•จ : SoftwareSerial๋กœ ๋””์ง€ํ„ธ 2, 3๋ฒˆ ํ•€์„ ์‹œ๋ฆฌ์–ผ ํฌํŠธ๋กœ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉ : ๋ชจ๋“ˆ ์„ค์ •ํ•˜๋Š” ์ž‘์—… ํ•„์š” (๋ช…๋ น ๋ชจ๋“œ๋กœ ์ง„์ž…ํ•˜์—ฌ ๋ธ”..

[์•„๋‘์ด๋…ธ] ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น ํ•˜๊ธฐ - EEPROM & ์‹œ๋ฆฌ์–ผ ํ†ต์‹ 

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ EEPROM : ATmega328 ๋งˆ์ดํฌ๋กœ ์ปจํŠธ๋กค๋Ÿฌ์—๋Š” ์„ธ ์ข…๋ฅ˜์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํฌํ•จ ๐Ÿ” Flash Memory : 32K : ํ”„๋กœ๊ทธ๋žจ(์Šค์ผ€์น˜) ์ €์žฅ : ๋น„ํœ˜๋ฐœ์„ฑ : ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€ ๐Ÿ” SRAM : 2KB : ๋ฐ์ดํ„ฐ ์ €์žฅ : ํœ˜๋ฐœ์„ฑ : ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ : ๊ฐ€์žฅ ๋น ๋ฆ„ ๐Ÿ” EEPROM : 1KB : ๋ฐ์ดํ„ฐ ์ €์žฅ : ๋น„ํœ˜๋ฐœ์„ฑ (์ „์› ์ฐจ๋‹จ๋˜๊ฑฐ๋‚˜ ๋ฆฌ์…‹ ๋˜๋”๋ผ๋„ ๊ฐ’ ์œ ์ง€) : ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ : ๊ฐ€์žฅ ๋Š๋ฆผ #include // EEPROM ์˜ address ์œ„์น˜์— value ๊ธฐ๋ก EEPROM.write(address, value); EEPROM.put(address, value); // EEPROM ์˜ address ์œ„์น˜์—์„œ ๊ฐ’ ์ฝ์–ด์™€ ๋ฐ˜ํ™˜ ..

[์•„๋‘์ด๋…ธ] ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น ํ•˜๊ธฐ - millis() & ์ธํ„ฐ๋ŸฝํŠธ & ํƒ€์ด๋จธ

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ delay ์—†์ด ์ž‘์—… ์ˆ˜ํ–‰ : ์›๋ž˜ ์ž‘์—… ๋‹ค์Œ์— delay ์ฃผ๊ณ  loop ๋‚ด์— ๊ตฌ์„ฑํ•˜๋ฉด ์ฃผ๊ธฐ์ ์œผ๋กœ ์ž‘์—… ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ ๐Ÿ” millis() ํ•จ์ˆ˜ unsigned long time = millis(); : ์•„๋‘์ด๋…ธ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•œ ๋’ค ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„์„ ms ๋‹จ์œ„๋กœ ๋ณ€ํ™˜ : delay ์—†์ด ์ฃผ๊ธฐ์ ์ธ ๋™์ž‘ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ : ์‹œ๊ฐ„ ๊ฒฝ๊ณผ ์กฐ๊ฑด ๋งŒ์กฑํ•  ๋•Œ๋งŒ ์ž‘์—… ์ˆ˜ํ–‰ํ•จ ๐Ÿฅ‘ ์•„๋‘์ด๋…ธ ๋ฉˆ์ถ”์ง€ ๋ง๊ธฐ : ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  LED๋ฅผ ๊นœ๋นก์ด๊ธฐ ์œ„ํ•ด millis ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ๐Ÿฅ‘ ์ธํ„ฐ๋ŸฝํŠธ : ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ฆ‰์‹œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ํ”„๋กœ๊ทธ๋žจ์ด ๋ฐœ์ƒ๋˜๋Š” ๊ฒƒ : ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์ค‘๋‹จํ•˜๊ณ  ์ฆ‰์‹œ ์‹คํ–‰ํ•ด์•ผ ํ•  ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰ // ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‹คํ–‰๋  callback ํ•จ์ˆ˜ attachInterr..

[์•„๋‘์ด๋…ธ] ์•ก์ถ”์—์ดํ„ฐ - LCD

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ LCD (Liquid Crystal Display) : ์•ก์ • ํ‘œ์‹œ ์žฅ์น˜ : ์•ก์ •์€ ์•ก์ฒด์ฒ˜๋Ÿผ ์œ ์ฒด์˜ ์„ฑ์งˆ์„ ๊ฐ€์ง€๋ฉด์„œ ๊ณ ์ฒด์ฒ˜๋Ÿผ ๊ด‘ํ•™์  ์„ฑ์งˆ์„ ๊ฐ€์ง€๋Š” ๋ฌผ์งˆ : ์ „๊ธฐ์  ์‹ ํ˜ธ๋ฅผ ๊ฐ€ํ•ด ์›ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐฐ์—ด ๊ฐ€๋Šฅ : ๊ฐ ํ”ฝ์…€์— ํˆฌ๊ณผํ•˜๋Š” ๋น›์˜ ์–‘์„ ์กฐ์ ˆํ•˜์—ฌ ์ •๋ณด ํ‘œํ˜„ : 1์ค„์— 16๋ฌธ์ž์”ฉ 2์ค„ ์ถœ๋ ฅ ๊ฐ€๋Šฅ : 5v ์ „์›์œผ๋กœ ๋ฐฑ๋ผ์ดํŠธ ๋™์ž‘ : ๊ฐ€๋ณ€ ์ €ํ•ญ์„ ํ†ตํ•ด ๋ฌธ์ž์˜ ๋ช…์•” ์กฐ์ ˆ : 16๊ฐœ ํ•€์„ ๊ฒฐ์„ ํ•˜์—ฌ ์ œ์–ด ๐Ÿ” Liquid Crystal I2C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ // lcd ์ด๋ฆ„์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ // ๋ชจ๋“ˆ์˜ ์ฃผ์†Œ๊ฐ’์€ 0x27, lcd ํฌ๊ธฐ๋Š” 16x2 LiquidCrystal_I2C lcd(0x27, 16, 2); // ๋ฉ”์‹œ์ง€๋ฅผ lcd์— ์ถœ๋ ฅ lcd.print("๋ฉ”์‹œ์ง€"); // ์ปค์„œ..

[์•„๋‘์ด๋…ธ] ์•ก์ถ”์—์ดํ„ฐ - 7segment

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ 7segment (FND:Flexible Numeric Display) : "๋ถ„ํ• ํ•˜๋‹ค" ๋Š” 7๊ฐœ์˜ ๋ถ„ํ• ๋œ ์„ ์œผ๋กœ ์ˆซ์ž๋ฅผ ํ‘œํ˜„ํ•ด์ฃผ๋Š” ๋ถ€ํ’ˆ : 7๊ฐœ์˜ LED๊ฐ€ ๋ชจ์—ฌ์žˆ์Œ : ๊ฐ ํš ๋ณ„๋กœ ํ•˜๋‚˜์˜ ํ•€์ด ๋ฐฐ๋‹น๋˜์–ด ๊ฐ ํš์„ ๋„๊ฑฐ๋‚˜ ์ผค ์ˆ˜ ์žˆ์Œ ๊ณตํ†ต ์–‘๊ทน(Common-anode) ๋ฐฉ์‹ : ๋ชจ๋“  LED์˜ ์–‘๊ทน์ด ๊ฒฐํ•ฉ๋œ ์ƒํƒœ ๊ณตํ†ต ์Œ๊ทน(Common-cathode) ๋ฐฉ์‹ : ๋ชจ๋“  LED์˜ ์Œ๊ทน์ด ๊ฒฐํ•ฉ๋œ ์ƒํƒœ ๐Ÿฅ‘ 7์„ธ๊ทธ๋จผํŠธ ํ™œ์šฉํ•˜๊ธฐ : 7๊ฐœ์˜ ์„ (์„ธ๊ทธ๋จผํŠธ)์œผ๋กœ ์ˆซ์ž/์•ŒํŒŒ๋ฒณ ๋“ฑ์„ ํ‘œํ˜„ํ•ด ์ฃผ๋Š” ์†Œ์ž : 7๊ฐœ์˜ ์„ ์€ ๊ฐ๊ฐ LED๋กœ ๊ตฌ์„ฑ : ์–ด๋–ค ์„ ์— ์‹ ํ˜ธ๋ฅผ ์ฃผ๋Š”์ง€์— ๋”ฐ๋ผ ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ ๐Ÿฅ‘ ์‹ ํ˜ธ๋“ฑ ๋งŒ๋“ค๊ธฐ : ์ดˆ๋ก์ƒ‰ ์‹ ํ˜ธ๊ฐ€ ๊นœ๋นก์ผ ๋•Œ 5์ดˆ ์นด์šดํŠธ ์ •๋ณด๋ฅผ 7 ์„ธ๊ทธ๋จผํŠธ์— ํ‘œํ˜„

[์•„๋‘์ด๋…ธ] ์•ก์ถ”์—์ดํ„ฐ - ๋ชจํ„ฐ ๋“œ๋ผ์ด๋ฒ„

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ ๋ชจํ„ฐ ๋“œ๋ผ์ด๋ฒ„ : ์‹ ํ˜ธ์™€ ์ „๋ ฅ์„ ์•Œ๋งž๊ฒŒ ๊ณต๊ธ‰ : ๋ชจํ„ฐ์˜ ์†๋„์™€ ํšŒ์ „ ๋ฐฉํ–ฅ ์ œ์–ด : 2.5~12V์˜ ๋ชจํ„ฐ DC 2๊ฐœ ์ œ์–ด ๊ฐ€๋Šฅ : ๋ชจํ„ฐ ๋‹น 200mA ์ „๋ฅ˜ ํ—ˆ์šฉ : ๋ชจํ„ฐ A๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  A-1A, A-1B์— ์ ์ ˆํ•œ ์‹ ํ˜ธ๋ฅผ ์ธ๊ฐ€ ๐Ÿฅ‘ ์˜จ๋„ ์กฐ์ ˆ ์žฅ์น˜ : ์‹๋ฌผ์ด ์ž๋ผ๋‚˜๊ธฐ ์œ„ํ•ด์„œ ์ ์ •ํ•œ ์˜จ๋„๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์˜จ๋„๊ฐ€ ์ผ์ • ๊ฐ’ ์ด์ƒ์œผ๋กœ ๋†’์•„์งˆ ๊ฒฝ์šฐ, ์ž๋™์œผ๋กœ ์„ ํ’๊ธฐ๋ฅผ ๊ฐ€๋™ ๐Ÿฅ‘ DC ๋ชจํ„ฐ ์†๋„ ์กฐ์ ˆํ•˜๊ธฐ : ์•„๋‘์ด๋…ธ๋Š” DC ๋ชจํ„ฐ๋Š” ๊ตฌ๋™/์ •์ง€ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ PWM ์‹ ํ˜ธ๋ฅผ ์ด์šฉํ•ด์„œ ๋ชจํ„ฐ์˜ ์†๋„๋„ ์ œ์–ด : ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋™์ž‘ํ•˜๋Š” ์„ ํ’๊ธฐ์ฒ˜๋Ÿผ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค ์•ฝํ’, ์ค‘ํ’, ๊ฐ•ํ’ ์„ธ ๋‹จ๊ณ„๋กœ ์†๋„๋ฅผ ์ œ์–ด

[์•„๋‘์ด๋…ธ] ์•ก์ถ”์—์ดํ„ฐ - DC ๋ชจํ„ฐ

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ DC ๋ชจํ„ฐ : ๋ชจํ„ฐ๋Š” ์ „๊ธฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ํšŒ์ „๋ ฅ์€ ์–ป์Œ : DC (Direct Current, ์ง๋ฅ˜ ์ „์›)์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๋ชจํ„ฐ : ์ „์›์ด ์—ฐ๊ฒฐ๋˜๋ฉด ํšŒ์ „ : ์ž…๋ ฅํ•˜๋Š” ์ „์›์˜ ๊ทน์„ฑ์— ๋”ฐ๋ผ ์ „๋ฅ˜์˜ ๋ฐฉํ–ฅ์ด ๋ฐ”๋€Œ๋ฉด ํšŒ์ „ ๋ฐฉํ–ฅ ๋ฐ”๋€œ : PWM์œผ๋กœ ์†๋„ ์ œ์–ด ๊ฐ€๋Šฅ ์™ธ๋ถ€์— ๊ณ ์ •๋œ ์ž์„์ด ๋ฐฐ์น˜๋˜๊ณ  ๋‚ด๋ถ€์˜ ํšŒ์ „์ฒด์— ์ฝ”์ผ๋กœ ๊ตฌ์„ฑ๋จ ํšŒ์ „์ฒด์— ์ „๋ฅ˜๊ฐ€ ํ๋ฅด๋ฉด ๋ฐฉํ–ฅ์ด ์ „ํ™˜๋จ์— ๋”ฐ๋ผ ์ž๊ธฐ์žฅ์ด ๋ฐœ์ƒ๋˜์–ด ํšŒ์ „๋ ฅ ์–ป์Œ ๐Ÿ” ํŠธ๋žœ์ง€์Šคํ„ฐ : ์ง„๋ฅ˜ ์ฆํญ๊ธฐ ์—ญํ•  : ํฐ ์ „๋ฅ˜ ์ œ์–ด ๊ฐ€๋Šฅ : Nํ˜• ๋ฐ˜๋„์ฒด์™€ Pํ˜• ๋ฐ˜๋„์ฒด์˜ ์ ‘ํ•ฉ ์ˆœ์„œ์— ๋”ฐ๋ผ PNP, NPN ํ˜•ํƒœ๋กœ ๋‚˜๋‰จ : ๊ทน์„ฑ์ด ๋ฐ˜๋Œ€, ํ•€์— ์ „์›์ด ์ธ๊ฐ€๋˜๋Š” ๋ฐฉ์‹์— ์ฐจ์ด๊ฐ€ ์žˆ์Œ Collector : ์ˆœ๋ฐฉํ–ฅ ์ „๋ฅ˜ ๊ณต๊ธ‰ (5V ์—ฐ๊ฒฐ) Base : Collector ์—์„œ E..