๋ชฉ๋ก๐Ÿ‘ฉ‍๐Ÿ’ป IoT (Embedded) (235)

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

[์•„๋‘์ด๋…ธ] ์•„๋‚ ๋กœ๊ทธ ์‹ ํ˜ธ - ์˜จ/์Šต๋„ ์„ผ์„œ

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ ์˜จ/์Šต๋„ ์„ผ์„œ : ์ฃผ๋ณ€ ํ™˜๊ฒฝ์˜ ์˜จ๋„์™€ ์Šต๋„์— ๋”ฐ๋ผ ์ €ํ•ญ๊ฐ’ ๋ณ€ํ•จ : ์˜จ๋„๋ฅผ ์ธก์ •ํ•˜๋Š” ์„œ๋ฏธ์Šคํ„ฐ + ์Šต๋„์„ผ์„œ ํ•จ๊ป˜ ๊ตฌ์„ฑ ์˜จ๋„ : 0~50๋„ (์˜ค์ฐจ๋ฒ”์œ„ +- 2๋„) ์Šต๋„ : 20~90% RH (์˜ค์ฐจ๋ฒ”์œ„ +- 5% RH) ์•„๋‘์ด๋…ธ์˜ ๊ธฐ๋ณธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : ์‹œ๋ฆฌ์–ผ ํ†ต์‹ , ๋ฌธ์ž์—ด, Servo, SoftwareSerial ํ™•์žฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : ์™ธ๋ถ€ ๋ชจ๋“ˆ ์ œ์–ด, LiquidCrystal, DHT11 ๐Ÿ” DHT ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ๐Ÿ” Adafruit Unified Sensor ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ๐Ÿ” DHT 11 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ DHT dht (์—ฐ๊ฒฐ๋œ ํ•€, DHT11 = ์†Œ์ž์ข…๋ฅ˜); bht.begin() : ์˜จ/์Šต๋„ ์„ผ์„œ ์—ฐ๊ฒฐ ์˜จ๋„ : bht.readHumidity(); ์Šต๋„ : bht.readTem..

[์•„๋‘์ด๋…ธ] ์•„๋‚ ๋กœ๊ทธ ์‹ ํ˜ธ - ์กฐ๋„ ์„ผ์„œ

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ ์กฐ๋„ ์„ผ์„œ : ๋ฐ๊ธฐ๋ฅผ ์ธก์ • : ์กฐ๋„์— ๋”ฐ๋ผ ์ €ํ•ญ ๊ฐ’์ด ๋ณ€ํ•˜๋Š” ์†Œ์ž : PhotoResistor, CDS ๋“ฑ์œผ๋กœ ๋ถˆ๋ฆฌ์›€ : ๋ฐ์•„์ง€๋ฉด ์ €ํ•ญ๊ฐ’ ๋‚ฎ์•„์ง€๊ณ , ์–ด๋‘์›Œ์ง€๋ฉด ์ €ํ•ญ๊ฐ’์ด ์ปค์ง€์„œ ์ถœ๋ ฅ ์ „์•• ์ž‘์•„์ง (๊ทน์„ฑ ์—†์Œ) ๐Ÿฅ‘ ์ผ์กฐ๋Ÿ‰ ์ธก์ •๊ธฐ ์กฐ๋„ ์„ผ์„œ๋ฅผ ์ด์šฉํ•ด์„œ ์ผ์กฐ๋Ÿ‰์„ ์ธก์ • ์กฐ๋„๊ฐ€ ๋‚ฎ์„ ๊ฒฝ์šฐ์—๋Š” LED๋ฅผ ์ผœ์„œ ์ผ์ •๋Ÿ‰์˜ ์กฐ๋„๋ฅผ ์œ ์ง€ ๐Ÿฅ‘ ์กฐ๋„์— ๋”ฐ๋ผ ๋ฐ์•„์ง€๋Š” ์ „๋™ ์•„๋‚ ๋กœ๊ทธ ์ถœ๋ ฅ ํ•€์— LED๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์กฐ๋„๊ฐ€ ๋‚ฎ์Œ์— ๋”ฐ๋ผ ์ ์  ๋” ๋ฐ์•„์ง€๋Š” ์Šค๋งˆํŠธํ•œ ์ „๋“ฑ ๐Ÿ” map : ๊ฐ’์˜ ๋ฒ”์œ„๋ฅผ ๋น„์œจ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜ map ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•ด์„œ ์„ผ์„œ ๊ฐ’(0~1023)์— ๋”ฐ๋ผ 9๋ฒˆ LED์˜ ๋ฐ๊ธฐ(255~0)๋ฅผ ์กฐ์ ˆ ๋ฐ๊ธฐ = map(sensorValue, 0, 1023, 255, 0); ๐Ÿฅ‘ ์กฐ๋„์—..

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

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ ํ”ผ์—์กฐ ๋ถ€์ € : ์ „๊ธฐ์  ์‹ ํ˜ธ๋กœ ๋ฐœ์ƒํ•˜๋Š” ํ”ผ์—์กฐ ํšจ๊ณผ๋ฅผ ์ด์šฉํ•ด ์†Œ๋ฆฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์†Œ์ž : ์ „๊ธฐ์ ์ธ ํŽ„์Šค(Pulse) ์‹ ํ˜ธ -> ์ „์••์˜ on/off ๊ฐ€ ์ผ์ •ํ•œ ์ฃผ๊ธฐ๋กœ ๋ฐ˜๋ณต๋˜๋Š” ๊ฒƒ : ํŽ„์Šค์˜ ์ฃผํŒŒ์ˆ˜๋ฅผ ๋ฐ”๊พธ๋ฉด ์ฃผํŒŒ์ˆ˜์— ๋”ฐ๋ผ ์†Œ๋ฆฌ์˜ ๋†’๋‚ฎ์ด๋„ ๋ณ€ํ•จ ํ”ผ์—์กฐ ํšจ๊ณผ : ์ „๊ธฐ์ ์ธ ์‹ ํ˜ธ๋ฅผ ์ฃผ์—ˆ์„ ๋•Œ ์ˆ˜์ถ•ํ•˜๊ณ  ํ™•์žฅํ•˜๋Š” ์„ฑ์งˆ์„ ์ด์šฉํ•˜์—ฌ ๋ฐœ์ƒํ•˜๋Š” ๋–จ๋ฆผ์œผ๋กœ ์†Œ๋ฆฌ๋ฅผ ๋ฐœ์ƒ ๐Ÿ” ์†Œ๋ฆฌ ์ถœ๋ ฅ tone : ์—ฐ๊ฒฐ๋œ ํ•€์œผ๋กœ ์„ค์ •ํ•œ ์‹œ๊ฐ„ ๋™์•ˆ ์ฃผํŒŒ์ˆ˜์˜ ํŽ„์Šค๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ํ•จ์ˆ˜ tone(ํ•€๋ฒˆํ˜ธ, ์ฃผํŒŒ์ˆ˜, ์žฌ์ƒ์‹œ๊ฐ„); ๐Ÿ” ์†Œ๋ฆฌ ์ถœ๋ ฅ ์ •์ง€ noTone(ํ•€๋ฒˆํ˜ธ); ๐Ÿฅ‘ ํ”ผ์—๋…ธ ๋ถ€์ €๋กœ beep beep

[์•„๋‘์ด๋…ธ] ์‹œ๋ฆฌ์–ผ ํ†ต์‹ ์œผ๋กœ ๋ฉ”์‹œ์ง€ ์ˆ˜์‹  & ๋ฌธ์ž์—ด ํ•จ์ˆ˜

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ ์‹œ๋ฆฌ์–ผ ํ†ต์‹ ์œผ๋กœ ๋ฉ”์‹œ์ง€ ์ˆ˜์‹  : USB ์ผ€์ด๋ธ” ํ†ตํ•ด ์‹œ๋ฆฌ์–ผ ํ†ต์‹ ์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ฃผ๊ณ ๋ฐ›์Œ ๐Ÿ” Serial.begin (bps) : bps๋กœ ํ†ต์‹ ์†๋„ ์„ค์ • ๐Ÿ” Serial.print("๋ฉ”์‹œ์ง€") : pc๋กœ ๋ฉ”์‹œ์ง€ ์ „์†ก ๐Ÿ” Serial.read() : ์‹œ๋ฆฌ์–ผ ํ†ต์‹  ์ˆ˜์‹  ๋ฒ„ํผ์—์„œ ํ•œ ๋ฐ”์ดํŠธ์”ฉ ๋ฐ์ดํ„ฐ ์ฝ์–ด์˜ด ๐Ÿ” Serial.readString() : ์ˆ˜์‹ ๋œ ๋ฐ์ดํ„ฐ ๋ฌธ์ž์—ด๋กœ ์ฝ์–ด์˜ด ๐Ÿ‘€ String ํ•จ์ˆ˜ str1.equals(str2) : ๋‘ ๋ฌธ์ž์—ด์ด ๊ฐ™์€์ง€ ๋น„๊ต (true, false) str.length() : ๋ฌธ์ž์—ด์˜ ๊ธธ์ด ๋ฐ˜ํ™˜ replace(str1, str2) : str1์„ str2๋กœ ๋ณ€ํ™˜ str.toInt() : ๋ฌธ์ž์—ด์„ long ํ˜•ํƒœ์˜ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ str.tr..

[์•„๋‘์ด๋…ธ] ํ”Œ๋กœํŒ… ํ˜„์ƒ & ํ† ๊ธ€ ์Šค์œ„์น˜๋กœ LED ์ผœ๊ธฐ

(์ฝ”๋“œ๋Š” ์ €์ž‘๊ถŒ์ƒ ๊ณต์œ  ์•ˆ๋ฉ๋‹ˆ๋‹น!!) ๐Ÿฅ‘ ํ”Œ๋กœํŒ… ํ˜„์ƒ : ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์ง€ ์•Š์•˜์„ ๋•Œ LOW(0)์˜ ๊ฐ’์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋Š” ํ˜„์ƒ ๐Ÿ” ์ „๋ฅ˜ ์ œํ•œ : ํŠน์ • ๊ธฐ๊ธฐ์— ๊ณต๊ธ‰๋˜๋Š” ์ „๋ฅ˜ ์ œํ•œ ๐Ÿ” ์ „์•• ๋ถ„๋ฐฐ : ์ €ํ•ญ์„ ์ง๋ ฌ๋กœ ์—ฐ๊ฒฐํ•ด์„œ ์ „์•• ๋ถ„๋ฐฐ ๐Ÿ” ํ’€์—…/ํ’€๋‹ค์šด ํ’€๋‹ค์šด : ํ”Œ๋กœํŒ… ์ƒํƒœ์ผ ๋•Œ ๊ฐ’์„ GND๋กœ ๋Œ์–ด ๋‚ด๋ฆฐ๋‹ค ํ’€์—… ์ €ํ•ญ : ํ”Œ๋กœํŒ… ์ƒํƒœ์ผ ๋•Œ ๊ฐ’์„ 5V๋กœ ๋Œ์–ด ์˜ฌ๋ฆฐ๋‹ค ๐Ÿฅ‘ ๋ฒ„ํŠผ์œผ๋กœ ํ”Œ๋กœํŒ… ํ˜„์ƒ ํ•ด๊ฒฐ : ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ๋Š” 1์˜ ๊ฐ’์ด ์ถœ๋ ฅ : ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์ง€ ์•Š์•˜์„ ๋•Œ 0์˜ ๊ฐ’ ์ถœ๋ ฅ : ์ €ํ•ญ ์‚ฌ์šฉ ๐Ÿฅ‘ ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ๋งŒ LED๊ฐ€ ์ผœ์ง€๊ธฐ ๐Ÿฅ‘ ํ† ๊ธ€ ์Šค์œ„์น˜๋กœ LED ON/OFF ํ† ๊ธ€(Toggle) ์ด๋ž€ ํ•˜๋‚˜์˜ ์„ค์ •๊ฐ’์œผ๋กœ๋ถ€ํ„ฐ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ