2016년 11월 7일 월요일

자작 선풍기

예전에 고안했던 선풍기를 만들어 봤다.



자작 선풍기이다

기존 선풍기랑과는 방식이 다르다.

위에서 바람을 빠라들여 아래로 쏴

삼각뿔 곡면을 따라 360도 전방향에 바람이 가는 형태이다.


단점은 360도 방향으로 나가기 때문에 바람이 그리 강력하지는 않지만

360도 방향으로 바람이 나간다는건 단점이면서 장점인것 같다.

2016년 11월 5일 토요일

아두이노 릴리패드


저번에 소개하지 못했던 나의 또다른 아두이노 보드를 찾았다.



바로 릴리패드라는 웨어러블용 아두이노이다

특징은 위의처럼 아두이노 릴리패드뿐 아니라
다른 쉴드도 원형의 모양이다.

웨어러블에 맞게 전선대신 전도성 실을 사용하여 회로를 구성한다.





위의 사진은 XBee전용 쉴드로 위의서 설명했던 것처럼 원형으로 되어있다.



위의 사진은 LED인데 LED조차도 위의처럼 모듈 형식으로 나와있다.




위의 사진은 3색 LED이다

원형으로 만들기 위해 2개의 흰색 원형이 더 있는 것 같다.


심지어 버튼도 위의처럼 모듈로 나와있다.

릴리패드의 단점은 부품의 크기보다 보드의 크기가 필요 이상으로 커서

공간 낭비가 된다.








위의 사진은 가속도 센서로 추정된다.

위에서 릴리패드 부속품들의 단점을 말했지만
릴리패드의 장점이라하면

깔끔한 회로인것 같다.
MPU6050보다는 깔끔한것 같다.






릴리패드와 몇가지 부속품들을 알아봤는데

난 릴리패드가 있지만 뭐가 문제가 있는지는 모르겠지만

시리얼 변환기를 꽂자마자 사망했다.


뭐가 문제인지는 아직도 모르겠지만
지금 생각으로는 내가 가지고있는 변환기의 핀 배열이랑
릴리패드의 핀 배열이랑 다른것 같다(확인 못함)

일단 원인을 찾고 수리좀 해야겠다.







2016년 11월 4일 금요일

아두이노 LCD와 온습도센서로 불쾌지수 표현하기


이번에는 LCD(16*2)와 저번에 소개했던 DHT11 온습도 센서로 불쾌지수를 측정 해보기로 했다.



위의 사이트에 온도와 상대습도로 불쾌지수를 산출해주는 공식이 나와있다.



위의 공식에 온도와 습도(%)를 대입하면 불쾌지수가 나온다.



이번에는 아두이노 나노를 사용하겠다.




위의 i2c변화기를 lcd에 납땝하여 사용한다.

GND는 GND
VCC는 5v
SDA는 A4
SCL는 A5

왼쪽은 i2c 오른쪽은 아두이노로

위와 같이 연결하면된다.


온습도센서의 Vcc는 아두이노 5V
GND는 아두이노 GND
DATA핀은 아두이노2번핀에 연결한다.

DHT11 라이브러리와
LCD i2c 라이브러리를 구글링하면 나오니깐
다운 받은후 라이브러리를 추가하자





추가후 아래의 코드를 복사 & 붙이기 해서 업로드해보자

/////////////////////////////////////////////////////////////////////
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT11.h>
DHT11 dht11(2);
LiquidCrystal_I2C lcd(0x27, 16, 2); // set the LCD address to 0x20 for a 16 chars and 2 line display
int calculate(int, int);
void setup()
{
  lcd.init();                      // initialize the lcd
  // Print a message to the LCD.
  lcd.backlight();
}
char d[] = {"Discomfort index"};
char state[4][5] = {
  {"Great"},
  {"Good "},
  {"Soso "},
  {"Bad  "}
};
int s;
void loop()
{
  lcd.clear();
  lcd.setCursor(0, 0);
  for (int i = 0; i < 16; i++)
    lcd.print(d[i]);
  int err;
  float temp, humi;
  lcd.setCursor(0, 1);
  if ((err = dht11.read(humi, temp)) == 0) {
    lcd.print(':');
    lcd.print(calculate(temp, humi / 100));
    lcd.print(calculate(temp, humi / 100) % 10);
    if (calculate(temp, humi / 100) < 68) s = 0;
    else if (calculate(temp, humi / 100) < 75) s = 1;
    else if (calculate(temp, humi / 100) < 80) s = 2;
    else s = 3;
  }
  lcd.setCursor(6, 1);
  for (int i = 0; i < 5; i++)
    lcd.print(state[s][i]);
  delay(DHT11_RETRY_DELAY);
}
int calculate(int t, int rh) {
  int i = (9 / 5) * t - 0.55 * (1 - rh) * ((9 / 5) * t - 26) + 32;
  return i;
}
//////////////////////////////////////////////////////////////



원래 lcd.print를 하면 문자열도 가능하지만
이상하게 문자열의 첫글자만 나와서 코드가 복잡해진 것이니 어쩔수없다.




업로드후 아두이노를 살펴보면

Discomfort index
:지수    상태

의 형태로 나와야 정상이다.

지수는 말그대로 불쾌지수이고
상태는 본문 처음에 나와있던 사이트의 상태를 적용해본 것이다.




지금은 불쾌지수가 54이므로 쾌적한 상태이다.