반응형

https://youtube.com/live/QDYJjjmKmWU

[ATtiny85 #2] ATtiny85에 다양한 센서(DHT-11,MH-Z19,DS18B20)와 디스플레이(TM1637,2004LCD) 활용해보기!(녹칸다의 아두이노)

녹칸다의 ATtiny85 시리즈이다!
ATtiny85라는 핀이 총 8개 달려있는 아주 작은 IC가 있다!

기존 아두이노 IDE 개발환경에서 몇가지 설정을 해주면 손톱만큼 작은 IC에 아두이노 코드를 업로드 할 수 있다!
녹칸다가 보았을때는 아래와 같은 장점이 있다!
1.크기가 매우 작음!
2.가격이 매우 저렴함!
3.기존 아두이노 코딩하는 사용자 경험을 그대로 활용할 수 있음!

그러나 모든것은 장점만 있는 것은 아니다! 단점도 있다!
1.칩만 덩그러니 있다보니 컴퓨터와 연결해서 프로그램을 업로드 할 수 있는 인터페이스가 없다!
2.너무 작다보니 핀이 몇개 없다!
3.기존 아두이노 우노에서 작동되는 대부분의 라이브러리가 작동하지 않는다!

하지만 아두이노 우노를 가지고 노는데 실증이 났다면 충분히 흥미를 느낄만한 내용이라고 생각한다!

이번 내용은 튜토리얼편(시작하기)으로 ATtiny85 개발환경을 설정하는 방법에 대해 알아본다!
다음으로 USB로 연결할 수 없는 상황에서 어떻게 코드를 업로드 할지 알아보도록 하자!

ATtiny85에 코드를 업로드 할 수 있는 전용 소켓을 판매하기도 한다!(이건 관심대상이 아님)
녹칸다는 이번 시리즈에서 아두이노 우노를 활용해서 ATtiny85에 프로그램을 업로드 하려고 함!
(딱히 이유는 없음 개인 취향)

아두이노 우노에 기본 예제중 Arduino ISP 예제를 업로드 해주면 우노 보드가 다른보드에 프로그램을 업로드 할 수 있는 업로더로 동작하게 된다!

그럼 ATtiny85는 아두이노 우노를 통해서 컴퓨터와 간접적으로 연결되게 된다!
컴퓨터에서 컴파일된 코드가 아두이노 우노를 통해서 업로드 되는 것이다!

(2004LCD 라이브러리)
TinyLiquidCrystal_I2C
TinyWireM.h

(온습도센서 라이브러리)
DHTlib

(이산화탄소센서 라이브러리)
https://github.com/strange-v/MHZ19

(DS18B20 라이브러리)
DallasTemperature
OneWire

(대략적인 목차)
FND모듈(TM1637)에 1초 간격으로 카운터 출력하기!
버튼 2개를 연결해서 업/다운 카운트 해보기!
가변저항값 출력하기!
광센서값 출력하기!
온습도센서값 출력하기!
이산화탄소센서값 출력하기!
DS18B20 온도값 출력하기!
2004LCD를 활용해서 똑같이 해보기!

 

(깨알지식)
1.FND모듈인 Tm1637은 아두이노와 동일한 라이브러리로 작동이 가능했다!
2.온습도센서는 아두이노에서 사용하던 라이브러리로 동작이 안되었다!(별도의 라이브러리)
3.ATtiny85에서 사용하는 온습도센서 라이브러리는 소수점 출력이 안된다!
4.이산화탄소센서(MH-Z19)는 아두이노용으로 된거 그대로 쓸 수 있는데 약간의 문제가 있다!
5.온도센서(DS18B20)는 아두이노도 그렇고 ATtiny85도 그렇고 그냥 연결만 한다고 되는게 아니라 풀업저항(4.7k옴)을 연결해주어야한다!
6.온도센서(DS18B20은 아두이노와 동일한 라이브러리를 사용한다!
7.2004LCD는 I2C통신이 되는 LCD를 준비해야한다!
8.ATtiny85에 I2C통신핀이 있는데 거기에 연결해서 써야한다!
9.ATtiny85의 SCL핀은 D2이고 SDA핀은 D0이다!
10.2004LCD에 출력할 숫자의 자릿수가 줄어들 경우 문제가 생길 수 있다! 그럴때는 한줄을 그냥 빈칸으로 꽉 채워서 프린트 해버리면 OK!

 

(업로드할때)


(예제목차)
1.TM1637을 CLK를 D3, DIO를 D4에 연결해서 ATtiny85가 1초간격으로 1씩 증가하는 업카운트를 화면에 출력하시오!

attiny85-2-1.txt
0.00MB

 

2.가변저항을 D2에 연결해서 측정한 아날로그값을 FND화면에 출력하시오!

attiny85-2-2.txt
0.00MB

 

3.온습도센서(DHT-11)을 D2에 연결한다음 FND화면에 온도값을 출력하시오!

attiny85-2-3.txt
0.00MB

 

4.이산화탄소센서(MH-Z19)의 TX를 D1에 RX를 D2에 연결한다음 FND화면에 이산화탄소 농도값을 출력하시오!

attiny85-2-4.txt
0.00MB

 

5.온도센서(DS18B20)을 D2에 연결한다음 측정값을 FND화면에 출력하시오!

attiny85-2-5.txt
0.00MB

 

6.2004LCD를 I2C통신핀에 연결한다음 1초간격으로 1씩 증가하는 업카운트를 화면에 출력하시오!

attiny85-2-6.txt
0.00MB

 

7.가변저항을 D3에 연결해서 측정한값을 2004LCD에 출력하시오!

attiny85-2-7.txt
0.00MB

 

8.온습도센서를 D3에 연결해서 측정값을 2004LCD에 출력하시오!

attiny85-2-8.txt
0.00MB

 

9.이산화탄소센서(MH-Z19)를 TX를 D3에 RX를 D4에 연결해서 2004LCD에 이산화탄소 농도를 출력하시오!

attiny85-2-9.txt
0.00MB

 

10.DS18B20을 D3에 연결해서 측정한 온도값을 2004LCD에 출력하시오!

attiny85-2-10.txt
0.00MB

 

11.TM1637을 CLK를 D3, DIO를 D4에 연결하고 버튼2개를 D1과 D2에 연결한다음 D1에 연결된 버튼을 누르면 FND에 숫자가 1씩 증가하고 D2에 연결된 버튼을 누르면 1씩 감소하도록 하시오!

attiny85-2-11.txt
0.00MB

 

12.(11)번 예제에서 두개의 버튼을 동시에 누르면 카운터값이 초기화되도록 하시오!

attiny85-2-12.txt
0.00MB

반응형
Posted by 덕력킹
,