프로젝트

나도 메이커! 메이커스 여러분들의 작품/프로젝트를 공유하는 공간입니다.

Weather Lamp 만들기

2016-07-06 10:25:55

개요

 

 

 

 

다음 컨텐츠에 대한 아이디어가 떠오르지 않아 고민하던 끝에 기존에 올라와 있던 프로젝트를 리메이크 해보기로 했습니다. 

이번 프로젝트는 Klant님의 두 개 작품에 영감을 받아 리메이크한 프로젝트입니다.

일명 구름조명 + 아크릴램프 = Weather Lamp 만들기 랄까요! 하하하하하하

구름조명의 기능과 아크릴 램프의 제작 방식을 합체!!!!했다고 보시면 됩니다.

 

 

 

이번 프로젝트는 손재주가 없는 분들도 사포로 문질문질해주시면 쉽게 따라하실 수 있습니다.

사진처럼 레이어만 시키는거라 생각보다 쉽습니다.

 

 

 

 

 

 

관련 튜토리얼

 

 

 

 

'DIY 아크릴 램프 만들기'http://kocoafab.cc/make/view/649

 

'날씨 정보를 알려주는 무드 램프 만들기' - http://kocoafab.cc/make/view/564

 

'아두이노에서 WiFi와 기상청의 RSS를 이용하여 날씨정보 읽어오기' - http://kocoafab.cc/tutorial/view/595

 

 

 

 

 

 

부품 설명

 

 

NO 부품명 수량 상세 설명
1 오렌지 보드 1  
2 와이파이 쉴드 1  
3 점퍼케이블 23 M/M JUMPER 케이블
4 Neopixel Strip LED 32  
5 브레드 보드 1  
6 아크릴 4 반으로 잘라서 8장
7 사포 1 스폰지 / 천 사포

 

 

 

 

 

 

하드웨어 Making​

 

브레드보드 레이아웃

 

 

 

회로도(스케메틱)

 

 

 

소프트웨어 coding​

#include <SPI.h>
#include <WiFi.h>
#include <Adafruit_NeoPixel.h>

char ssid[] = "ssid";       //와이파이 SSID
char pass[] = "password";   //와이파이 password

//인스턴스 변수 초기화
WiFiServer server(80);
WiFiClient client;

IPAddress hostIp;
uint8_t ret;

//initialize LED strip
Adafruit_NeoPixel strip = Adafruit_NeoPixel(20, 3, NEO_GRB + NEO_KHZ800);     //백그라운드 LED
Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(4, 5, NEO_GRB + NEO_KHZ800);     //날씨 LED_비
Adafruit_NeoPixel strip2 = Adafruit_NeoPixel(4, 6, NEO_GRB + NEO_KHZ800);     //날씨 LED_번개
Adafruit_NeoPixel strip3 = Adafruit_NeoPixel(4, 9, NEO_GRB + NEO_KHZ800);     //날씨 LED_눈


int temp = 0;

String weather_str = "";
String wt_temp = "";
String wt_wfKor = "";
String wt_wfEn = "";
String wt_reh = "";

boolean SuccessCall = false;

unsigned long lastConnectionTime = 0;
const unsigned long postingInterval = 20L * 1000L; //interval 시간

void setup() {
  //각 변수에 정해진 공간 할당
  Serial.begin(115200);

  //LED strip
  strip.begin();
  strip1.begin();
  strip2.begin();
  strip3.begin();
  colorWipe(strip.Color(255, 255, 255), 50); //배경 LED on
  strip1.show();

  delay(10);
  //WiFi연결 시도
  Serial.println("Connecting to WiFi....");
  WiFi.begin(ssid, pass);  //WiFi가 패스워드를 사용한다면 매개변수에 password도 작성

  server.begin();
  Serial.println("Connect success!");
  Serial.println("Waiting for DHCP address");
  //DHCP주소를 기다린다
  while (WiFi.localIP() == INADDR_NONE) {
    Serial.print(".");
    delay(300);
  }

  Serial.println("\n");
  printWifiData();
  connectToServer();
}

void loop() {
  if (client.connected()) {
    while (client.available() && !SuccessCall) {
      //라인을 기준으로 문자열을 저장한다.
      String line = client.readStringUntil('\n');
      //Serial.println(line);

      //시간
      int temp11 = line.indexOf("</hour>");
      if (temp11 > 0) {
        String tmp_str = "<hour>";
        String wt_hour = line.substring(line.indexOf(tmp_str) + tmp_str.length(), temp11);
        Serial.print("hour is ");
        Serial.println(wt_hour);
      }

      //온도
      int temp = line.indexOf("</temp>");
      if (temp > 0) {
        String tmp_str = "<temp>";
        String wt_temp = line.substring(line.indexOf(tmp_str) + tmp_str.length(), temp);
        Serial.print("temperature is ");
        Serial.println(wt_temp);
      }

      //날씨 정보
      int wfEn = line.indexOf("</wfEn>");
      if (wfEn > 0) {
        String tmp_str = "<wfEn>";
        String wt_twfEn = line.substring(line.indexOf(tmp_str) + tmp_str.length(), wfEn);
        Serial.print("weather is ");
        Serial.println(wt_twfEn);

        if (wt_twfEn == "Rain") {
          colorWipe(strip.Color(0, 0, 255), 50);
          colorWipe1(strip1.Color(0, 0, 255), 50);
          colorWipe2(strip2.Color(0, 0, 0), 50);
          colorWipe3(strip3.Color(0, 0, 0), 50);
        }

        else if (wt_twfEn == "Lightning") {
          colorWipe(strip.Color(255, 255, 255), 50);
          colorWipe1(strip1.Color(0, 0, 0), 50);
          theaterChase2(strip2.Color(255, 150, 0), 50);
          //colorWipe2(strip2.Color(255, 150, 0), 50);
          colorWipe3(strip3.Color(0, 0, 0), 50);
        }

        else if (wt_twfEn == "snow") {
          colorWipe(strip.Color(100, 155, 255), 50);
          colorWipe1(strip1.Color(0, 0, 0), 50);
          colorWipe2(strip2.Color(0, 0, 0), 50);
          colorWipe3(strip3.Color(100, 155, 255), 50);
        }
        else {
          colorWipe(strip.Color(255, 255, 255), 50);
          colorWipe1(strip1.Color(0, 0, 0), 50);
          colorWipe2(strip2.Color(0, 0, 0), 50);
          colorWipe3(strip3.Color(0, 0, 0), 50);
        }
      }

      //습도
      int reh = line.indexOf("</reh>");
      if (reh > 0) {
        String tmp_str = "<reh>";
        String wt_reh = line.substring(line.indexOf(tmp_str) + tmp_str.length(), reh);
        Serial.print("Humidity is ");
        Serial.println(wt_reh);
        SuccessCall = true;
      }
    }
  }
  if (millis() - lastConnectionTime > postingInterval) { //interval 시간이 충족되었다면
    connectToServer(); //데이터 호출
  }

}

//서버와 연결
void connectToServer() {
  Serial.println("connecting to server...");
  SuccessCall = false;
  String content = "";
  if (client.connect(hostIp, 80)) {
    Serial.println("Connected! Making HTTP request to www.kma.go.kr");
    //Serial.println("GET /data/2.5/weather?q="+location+"&mode=xml");
    client.println("GET /wid/queryDFSRSS.jsp?zone=1165053000 HTTP/1.1");
    //위에 지정된 주소와 연결한다.
    client.print("HOST: www.kma.go.kr\n");
    client.println("User-Agent: launchpad-wifi");
    client.println("Connection: close");

    client.println();
    Serial.println("Weather information for ");
    lastConnectionTime = millis();
  }
  //마지막으로 연결에 성공한 시간을 기록
}


void printHex(int num, int precision) {
  char tmp[16];
  char format[128];

  sprintf(format, "%%.%dX", precision);

  sprintf(tmp, format, num);
  Serial.print(tmp);
}

void printWifiData() {
  // Wifi쉴드의 IP주소를 출력
  Serial.println();
  Serial.println("IP Address Information:");
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  //MAC address출력
  byte mac[6];
  WiFi.macAddress(mac);
  Serial.print("MAC address: ");
  printHex(mac[5], 2);
  Serial.print(":");
  printHex(mac[4], 2);
  Serial.print(":");
  printHex(mac[3], 2);
  Serial.print(":");
  printHex(mac[2], 2);
  Serial.print(":");
  printHex(mac[1], 2);
  Serial.print(":");
  printHex(mac[0], 2);
  Serial.println();
  //서브넷 마스크 출력
  IPAddress subnet = WiFi.subnetMask();
  Serial.print("NetMask: ");
  Serial.println(subnet);

  //게이트웨이 주소 출력
  IPAddress gateway = WiFi.gatewayIP();
  Serial.print("Gateway: ");
  Serial.println(gateway);

  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  ret = WiFi.hostByName("www.kma.go.kr", hostIp);

  Serial.print("ret: ");
  Serial.println(ret);

  Serial.print("Host IP: ");
  Serial.println(hostIp);
  Serial.println("");
}

int getInt(String input) {
  int i = 2;

  while (input[i] != '"') {
    i++;
  }
  input = input.substring(2, i);
  char carray[20];
  //Serial.println(input);
  input.toCharArray(carray, sizeof(carray));
  //Serial.println(carray);
  temp = atoi(carray);
  //Serial.println(temp);
  return temp;
}

///////////////////////////function LED strip/////////////////////////////////

void colorWipe(uint32_t c, uint8_t wait) {
  for (uint16_t i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, c);
    strip.show();
    delay(wait);
  }
}

void colorWipe1(uint32_t c, uint8_t wait) {
  for (uint16_t i = 0; i < strip1.numPixels(); i++) {
    strip1.setPixelColor(i, c);
    strip1.show();
    delay(wait);
  }
}

void colorWipe2(uint32_t c, uint8_t wait) {
  for (uint16_t i = 0; i < strip2.numPixels(); i++) {
    strip2.setPixelColor(i, c);
    strip2.show();
    delay(wait);
  }
}

void theaterChase2(uint32_t c, uint8_t wait) {
  for (int j=0; j<10; j++) {  //do 10 cycles of chasing
    for (int q=0; q < 3; q++) {
      for (int i=0; i < strip2.numPixels(); i=i+3) {
        strip2.setPixelColor(i+q, c);    //turn every third pixel on
      }
      strip.show();
     
      delay(wait);
     
      for (int i=0; i < strip2.numPixels(); i=i+3) {
        strip2.setPixelColor(i+q, 0);        //turn every third pixel off
      }
    }
  }
}

void colorWipe3(uint32_t c, uint8_t wait) {
  for (uint16_t i = 0; i < strip3.numPixels(); i++) {
    strip3.setPixelColor(i, c);
    strip3.show();
    delay(wait);
  }
}

 

 
 
 
 
 
 
 
 
 

 

구름조명 + 아크릴램프 = Weather Lamp 만들기

 

 

 

아크릴에 구름을 그려줄거에요~!

그리고 싶은 구름모양을 아크릴 뒤에 겹쳐주시고 비슷하게 따라 하시면 돼요.

구름에 사포작업을 하실 때에는 비닐을 작업 영역만 벗겨주세요 다 벗기지 마세요.

하실 때 이 프로젝트의 핵심!

      1. 구름 사진에서 진한 부분은 여러 번 겹치게 연한 부분은 많이 안 겹치게 한다.

 

      2. 위의 구름 사진처럼 형체가 명확하면서 주변에 흩어져 있는 작은 구름들을 연출해주면 더 진짜 구름처럼 됩니다.

 

      3. 뒤에 있는 구름은 뒤에 끼워주시고 앞에 있는 구름은 앞에 끼워주시면 자연스럽게 거리감이 생기니 거리감을 주고 싶은 구름들은 끼우는 방식을 바꿔보세요.

 

 

 

      4. 번개 날씨를 알려주는 부분은 위의 그림의 구름 밑(빛나는 부분)에 쪽만 스크래치를 내주세요. 

         조명을 비춰주면 밑 부분이 번쩍!!!하는 것처럼 연출이 됩니다.

 

 

 

 

이제 시작해 볼까요??

먼저 사포로 전체적인 구름모양을 잡아주시고 작은 구름먼저 그려보겠습니다.

 

 

 

 

 

아래 사진은 제가 구름모양 스크래치를 낸 아크릴 판을 제일 뒷 쪽부터 찍은 사진 입니다.

 

위의 그림은 맨 앞쪽의 아크릴 판입니다. 아크릴판 여러 개로 구름을 입체적으로 표현할 것이기 때문에 앞쪽의 아크릴 판에 구름을 그릴 때는 구름의 면적이 좁아진다고 생각하시면서 구름을 작게 그려주세요.

 

 

 

다 겹쳐놓으면 이런 느낌입니다. 실제로 보면 느낌이 더 좋은데 사진을 못 찍으니 이렇게 밖에 안보이네요ㅜㅜㅜㅜㅜㅜ

 

 

 

 

밑 부분은 이런식으로 아크릴 판을 끼우듯이 되어있습니다.

각각의 아크릴 간격은 띄워져 있어야 합니다! 그래야 더 구름 같이 보이니까요~~~!

 

 

 

 

 LED는 일반 구름 4*5    /     눈 4*1     /    번개 4*1    /    비 4*1   이렇게 작업했습니다.

 

 

이렇게 보니 입체적으로 보이게 만든 구름이 평평해보이네요ㅜㅜ 하하하하하.........

저도 앞쪽으로 올수록 구름을 점점 작게 그리는 것을 못해서 그런거 같네요

 

구름을 아크리판에 그리는 것이 처음 해보는 Maker한테는 어렵게 느껴지실 수도 있지만 사포질을 살살 돌돌돌돌돌 돌리면서 하시면 쉽게 할 수 있어요! 

그냥 사포질 하듯이 쭉쭉 긁어내면 안돼요!! 무조건 원을 그리듯이 사포로 살살 문질러야 합니다. 

 

비를 그릴 때는 아크릴 판에 미세한 스크래치를 내야하는 만큼 사포를 뾰족하게 말아서 일자로 쭉 긁어주시면 됩니다.

그래도 사포로 안될거 같다 싶으면 송곳!!!!! 저는 송곳으로 비를 그렸습니다. 송곳도 안되면 아크릴칼로 해도 되겠네요~^^

구름 그리는 작업을 하실 때에는 손을 무조건!! 조심하시고, 중간중간 물티슈로 아크릴 판을 닦아서 구름 형체를 확인하시면서 하면 좋습니다.

 

 

 

 

 동영상

 

 

 

 

 

 

 

 

 

 

 

 

 

 

모델링 파일

 

 

 

 

 

 

** 모델링 파일 및 컨텐츠에 대한 내용을 코코아팹 외부에 사용할시 출처를 정확히 밝혀주시기 바랍니다.

 

 

 

염소할배

profile

김성구 2016-07-08 09:37:14

좋은 프로젝트네요!
ip주소로 지역날씨를 받아오는거 같은데 정확한 소스 코드좀 알려주실 수 있으신가요??
부탁드려요~

profile

염소할배 2016-07-08 16:37:47

날씨는 기상청에서 GET요청을 보내서 지역 날씨를 받아옵니다^_^
코드를 보면 중간에 '/wid/queryDFSRSS.jsp?zone=1165053000 HTTP/1.1'이 부분이 보일거에요.
여기서 zone=뒷부분 10자리 코드가 지역코드입니다.

좀 더 자세한 내용은 아래링크를 참고하세요!
http://kocoafab.cc/tutorial/view/595 <- 여기 튜토리얼을 참고했으니 보시고 따라하시면 될거에요~!

profile

김성구 2016-07-09 14:34:34

그러면 지역코드를 입력을 해야한다는건데
지역 코드를 따로 입력하지 않고
wi-fi 쉴드에 연결된 ip주소로 그 지역 날씨를 표현할 수는 없을까요??
예를 들면 서울에 있으면 서울날씨만, 부산에 있으면 부산날씨만 표현할 수 있게요

profile

물공 2016-07-11 15:17:41

wi-fi 쉴드를 이용 안하고 esp8266으로도 가능할까요?

profile

이진규 2016-09-12 01:29:03

저 led 길이는 몇cm이고 어디서 살수있는지 알수있을까요?

profile

염소할배 2016-09-12 13:18:14

@이진규 / adafruit사의 ws2812b를 사용하였습니다
.
저는 1줄에 4개씩 총 8줄을 사용하였습니다.
led 한칸당 33mm정도입니다.
필요하신 칸에 따라 계산하여 사용하시면 될것 같네요^^

profile

이진규 2016-09-20 11:19:51

제가 이 작품을 한번 만들어보려고 하는데
http://www.mechasolution.com/shop/goods/goods_view.php?goodsno=12594&category=052002
이주소에 올라온 스트립 led제품 사서 필요한 길이만큼 자르고 납땜해서 만들어도 되는건가요?


LED는 일반 구름 4*5 / 눈 4*1 / 번개 4*1 / 비 4*1 이렇게 작업했습니다.
이 말은 무슨 뜻이고 led에 점퍼선 연결할때 브레드보드 레이아웃에선 한쫀만 연결되있는데 실제 제작된 사진 보면 양쪽 다 연결되있던에 어떻게 연결해야 되나요?

profile

염소할배 2016-09-20 16:19:26

올려주신 링크의 LED를 사용하셔도 되고, 말씀하신대로 필요한 만큼 잘라 납땜해서 사용하시면 됩니다.


" 일반 구름 4*5 / 눈 4*1 / 번개 4*1 / 비 4*1 " 에 관한 설명은 제가 한줄에 4개의 LED로 제작했다는 내용입니다.

일반 구름 5줄 (총 LED 20개)
눈 1줄 (총 LED 4개)
번개 1줄 (총 LED 4개)
비 1줄 (총 LED 4개)을 사용했다는 내용입니다.
이 내용은 참고만 하시면 됩니다. 코드를 그대로 사용하실것이라면 똑같이 하시면됩니다.
이렇지 않을 시에는 필요하신 길이만큼 사용하시고 소스를 변경하시면 됩니다.



브레드보드 레이아웃을 보시면 아시겠지만 +,-로 나뉘어져 있습니다.
제작 사진에서는 제가 미니 브레드보드를 사용하여 양쪽으로 나뉘어 있어보이지만 단순히 +,-를 구분한 것입니다.
(미니 브레드는 일반브레드보드처럼 +,_ 부분이 따로 없습니다.)

감사합니다.

profile

UYK 2016-09-21 00:01:04

아크릴 사이 빛의 간섭은 없을까요?
예를들어 눈 아크릴 앞에 번개 아크릴 판이 있다고했을 때, 눈 아크릴의 빛을 켰는데 이 불빛때문에 번개 아크릴릴판까지 켜진것 처럼 겹쳐 보이지 않을까해서요,

profile

염소할배 2016-09-21 15:42:30

UYK님 안녕하세요

저는 아크릴과 LED를 만나는 부분을 바짝 붙여서 빛이 온전히 아크릴 판으로 가도록해주시고, 빛이 아크릴을 타고 흐르는 길?부분을 1cm정도 높이로 분리 시켜줍니다.

아크릴이 스크래치를 타고 오르는 방식입니다.
아크릴의 단면 즉 옆면,윗면,아랫면에 조명을 비춰주면 빛이 선명히 보이나 넓은 앞면이나 뒷면에서 붙여서 비치거나 강한빛이 아니라면 빛의 영향은 거의 없어 보입니다.
각 아크릴간의 간격을 띄어주시는 것만으로도 충분할 것이라 보입니다.

프로젝트에 대한 관심 감사합니다^^

profile

인터누텔라 2016-09-26 02:25:05

한번 만들어 보겠습니다.

profile

염소할배 2016-10-04 13:33:31

댓글에는 사진 첨부가 안되어 펌웨어 설명이 되어 있는 링크알려드릴게요
http://justfantastic.tistory.com/41

profile

윤동빈 2016-10-19 21:29:31

멋있는 작품이네요ㅎ

profile

예니 2016-10-24 16:36:39

안녕하세요 ㅎㅎ 저희가 이번에 학교 과제물로 이 작품을 만들려고 하는데 왜 SD 쉴드를 사용하셨는지, SD 쉴드에 연결한 SD 카드가 무엇인지 알고 싶어요ㅜㅜㅜㅜㅜㅜ SD 카드 쉴드 없이 그냥 일반 아두이노 보드로 연결하면 안되는건가요?

profile

이진규 2016-10-24 23:17:16

매번 친절한 답변 감사합니다~!

profile

염소할배 2016-10-25 09:52:54

예니 / 안녕하세요
SD쉴드가 아니라 WIFI쉴드입니다.
WIFI 쉴드를 사용하는 이유는 기상청에서 날씨값을 받아오기 위함입니다.
'관련튜토리얼'들을 숙지하시고 진행하시기 바랍니다.

일반 우노만 사용하실거라면 색상을 바꾸는 정도만 가능하겠네요
더 궁근하신점이 있으시면 언제든지 답변 남겨주세요
프로젝트에 대한 많은 관심 감사합니다.~^^


이진규/ 감사합니다.
앞으로의 프로젝트에도 많은 관심 부탁드려요~^^

profile

기봉조 2016-11-03 01:25:06

감사합니다

profile

기봉조 2016-11-03 01:25:07

감사합니다

profile

이진규 2016-11-06 20:45:18

안녕하세요 이번에도 궁금한게 있어서 그러는데 와이파이도 잘 연결되고 데이터를 받아오는데 3번 연결된 후에는
No Socket available이라고 뜨고 connecting to server...뜨면서 무한루프에 빠지는거 같은데 코드를 수정해야될까요?

그리고 브레드보드 레이아웃에 보면 왼쪽 그라운드에 점퍼선이 2개 연결되있는데 그렇게 했더니 안되고 하나를 위쪽5V에 연결했더니 led에 불이 들어오는데 잘못나온건가요?

profile

염소할배 2016-11-07 16:02:33

No Socket available , connecting to server...이라고 뜨는 것은 기청상에서 일정 시간동안 데이터 요청 횟수를 정해놓고 있을 수 있습니다.
예를 들어 1분에 3번이상 요청을 금지시키게 되면 기상청쪽에서 데이터가 가지안도록 연결을 끊을 수 있습니다.

브레드 보드 레이아웃은 김진규님이 말하신대로 빨간선은 5V에 연결해 주시면 됩니다.
수정해야겠네요 감사합니다.~^^

profile

민지 2016-11-10 10:52:32

재밌게 잘 보았습니다 ㅎㅎ 작품 참고해서 다른작품 만들어보려고 하는데 아크릴을 지지하는 본체는 쓰리디프린터로 제작하신건가요?

profile

염소할배 2016-11-17 08:57:02

네 3D프린터 출력물로 제작하였슴니다.
대신 사용하실 재료로는 검은색 우드락을 사용하시면 될것 같습니다.
빛이 다른 방향으로 새어나오는 것을 막아주시면 됩니다.

profile

사과별 2016-11-22 13:03:40

안녕하세요 학교 동아리 시간에을 이용해 만들다가 궁금한게 생겨서 질문합니다!
1. usb케이블 옆에 있는 구멍에는 무엇을 넣기위해 만드신 건가요??
2. led와 미니브레드보드와 오렌지보드를 연결하는 점퍼케이블의 위치가 너무 애매해서 그런데 위치를 다시한번 설명해 주시거나 사진을 여러 각도로 찍어주시면 안될까요??:)

profile

사과별 2016-11-22 13:03:43

안녕하세요 학교 동아리 시간에을 이용해 만들다가 궁금한게 생겨서 질문합니다!
1. usb케이블 옆에 있는 구멍에는 무엇을 넣기위해 만드신 건가요??
2. led와 미니브레드보드와 오렌지보드를 연결하는 점퍼케이블의 위치가 너무 애매해서 그런데 위치를 다시한번 설명해 주시거나 사진을 여러 각도로 찍어주시면 안될까요??:)

profile

양수진 2016-11-23 11:46:40

No Socket available , connecting to server.. 라고위에분과 똑같이 뜨는데 어느부분을 수정해야되나요?? ㅠㅠ

profile

이세영 2016-11-23 16:51:06

Connecting to WiFi....
Connect success!
Waiting for DHCP address
여기서 진행이 안되고 있습니다..
와이파이 쉴드 업데이트도 했는데..
어떤게 문제일까요?

profile

염소할배 2016-11-24 11:54:56

사과별님/ 1. usb옆의 구멍은 외부전원을 끼워줬기때문에 외부전원 선을 빼는 구멍입니다.
2.브레드보드 레이아웃 보이시면 됩니다. 저는 미니를 써서 +와 -만 나워서 꽂아 놓은 형태입니다. 복잡하시면 일반 하프+브레드보드를 사용하시면 됩니다.

양수진님 / No Socket available , connecting to server...이라고 뜨는 것은 기청상에서 일정 시간동안 데이터 요청 횟수를 정해놓고 있을 수 있습니다.
예를 들어 1분에 3번이상 요청을 금지시키게 되면 기상청쪽에서 데이터가 가지안도록 연결을 끊을 수 있습니다.


이세영님 /커뮤니티에서 수박잼님이 답변해드렸네요 :: 빠른 답변드리도록 노력하겠습니다.^^


profile

예니 2016-11-30 18:01:59

죄송하지만 function LED strip 밑에 있는 부분의 기능들을 설명해 주실 수 있나요? ㅜㅜ

그리고 저희가 소스에서 wifi쉴드 부분만 빼고 날씨를 입력했을 때 led가 켜지게 만들고 있는데 sketch_nov30a:25: error: 'colorWipe' was not declared in this scope colorWipe(strip.Color(255, 255, 255), 50); 이러한 에러가 뜹니다 ㅜㅜ

profile

예니 2016-11-30 20:04:32

위에 질문한 내용은 해결했어요!!!!! 그런데 어뎁터 연결 부분이 헷갈려서 그러는데 그 부분만 따로 보여주실 수 있으세요? ㅜㅜ 브레드보드랑 네오픽셀, 어뎁터를 연결하려니까 헷갈리고 자꾸 불이 켜지지 않네요 ㅜㅜ 감사합니다

profile

염소할배 2016-12-01 09:25:16

아답터를 연결한 이유는 네오픽셀에 전원공급을 하기 위함으로 아답터의 +부분과 -부분을 브레드보드에 연결한 네오픽셀과 동일하게 연결해 주시면 됩니다. 하드웨어 브레드보드 메이킹부분의 이미지 수정해 드리겠습니다. 참고하세요
다른 애매한 부분이 있으시면 언제든지 질문하세요~^^

profile

예니 2016-12-01 15:18:39

저희 아두이노 보드가 5v짜리라서 그러는데 아답터를 아두이노에 꽂아서 하면 안되는건가요?!

profile

염소할배 2016-12-01 15:25:05

아두이노 보드에 연결하시면 외부전력을 공급해주는 이유가 없어집니다.
네오 픽셀의 경우 전력을 많이 필요로하기때문에 네오픽셀에 직접적으로 연결해주셔야 원하시는 밝기를 보실 수 있으실 겁니다.
아두이노에 연결해도 네오픽셀이 받는 전력은 5V 입니다.

profile

예니 2016-12-01 15:49:34

제가 구매한 아두이노가 12v인데 그럼 이걸 돌리려면 따로 전압을 증폭시켜야 하는 거죠?ㅠㅜ

profile

염소할배 2016-12-02 08:43:18

제가 만든것과 동일하게 제작하신다면 12V는 사용하지않으셔도되고, 네오픽셀은 9V이상 사용하면 안되는 것으로 알고 있습니다. 제가 아답터를 연결하긴 했지만 작동시에는 사용하지않아도 잘 작동하였습니다.
네오픽셀 1m기준 3.5v ~ 5v면 충분합니다. 최적 5v 10A입니다.
제가 제작한것과 똑같이 LED만 사용하신다면 다른 외부전력은 필요하지않을것 같네요

profile

정정민 2016-12-29 11:41:54

안녕하세요. 재밌는 프로젝트 잘 봤습니다^^
저는 고등학교 학생 2명과 아두이노를 이용해서 다야한 프로젝트를 만들어보고 같이 배워가고있는 선생님입니다.
코코아팹에 있는 다양한 프로젝트를 참고하는 중에 아이들이 weather lamp에 큰 흥미를 느꼈습니다.
그래서 아이들의 경험과 실력 향상의 교육 목적으로
weather lamp의 컨셉을 이용한 시제품을 만들어 온라인 크라우드 펀딩에 10개~15개정도 올려볼까 합니다.
아두이노는 포스트하신 보드와는 다른 보드를 사용할 생각이며, 코드 역시 아이들이 직접 작성한 코드를 사용하려 합니다. 하드웨어 부분(바디와 아크릴판)은 3D프린터와 레이저 커팅기를 이용할 이용할 계획이고 각각의 디자인도 아이들이 직접(본인들 입맛에 맞추어) 할 예정입니다
이런 상황에서 혹시 참고할만한 사항이 있는지 알고싶습니다^^
혹시 댓글로 답변주시기 어려운 상황이시라면 메일로 부탁드립니다.
mmismin00@gmail.com
감사합니다 ^^

profile

정다혜 2017-01-03 16:27:36

좋은 프로젝트 잘 봤습니다. 저희도 이 글을 참고해서 만들어 보려고 하는데요 아크릴의 크기와 두께가 궁금합니다. 또 아크릴을 세워서 고정시키는 판은 어떻게 구하신건지도 궁금합니다.

profile

염소할배 2017-01-03 17:18:14

정다혜 / A5사이즈(A4사이즈 반으로 제단) 두께 : 1.3t 입니다.
외형은 직접 모델링한 파일입니다.
급하게 만든거라 엉성하지만 원하시면 게시글에 띄워드리겠습니다.
개인 사정상 빠른 시일에 공유드리지 못할 수 있습니다.

profile

정다혜 2017-01-04 10:12:46

알려주셔서 감사합니다~ 외형은 어떻게 모델링하신 것인지 궁금한데 게시글에 띄워주신다면 정말 감사하겠습니다.^^

profile

염소할배 2017-01-04 16:07:47

정정민 / 메일 확인 부탁드립니다 ^^

정다혜 / 급하게 모델링해서 바로 사용하실 수 있게 모델링 수정 후 올려드릴게요

profile

냥냥 2017-01-05 11:11:10

혹시 와이파이 쉴드 어떤 제품 사용하셨는지 모델명 알려주실 수 있나요?
저희는 더 작은 사이즈로 만들고 싶어서 아크릴 판 3개만 쓸 거라...
3t정도의 두께로 제작해도 스트립 LED가 밝혀줄 수 있을지 궁금하네요ㅠㅠ...

profile

냥냥 2017-01-05 15:44:10

추가 질문으로 http://www.devicemart.co.kr/1327531 <<<< 이 와이파이 쉴드 써도 괜찮을까요?

profile

정다혜 2017-01-05 16:30:06

안녕하세요 계속 제 질문에 답변해주셔서 감사합니다. 아크릴을 구입하려 보니 1.3t에 A4크기를 판매하는 곳이 없더라구요 혹시 아크릴은 어디서 구하셨나요??

profile

염소할배 2017-01-05 16:31:04

홍소연 / 우선 아크릴 두께는 스트립 LED를 보시면 동그란부분보다 크지만 않으면 됩니다.
와이파이는 아두이노 정품 사용하였습니다.
보내주신 와이파이는 호환이 되지만, 제가 올려드린 코드는 사용하시기 어렵습니다.
PHPoC WiFi Shield에 맞는 라이브러리와 코드로 작성하셔야 하며, 저는 사용해보지 않은 보드이므로 도움을 드리기가 어려울것 같네요.

profile

twice 2017-03-15 10:22:57

혹시 사용하신 와이파이 쉴드 구입하신주소나 제품명알려 주실수 있나요??

profile

잉여될놈 2017-03-23 10:46:17

안녕하세요 이번에 졸업작품으로 이작품을 도전할려고 하는데 네오픽셀은 어디서 구매하셨는지 알수 있을까요??

profile

최용혁 2017-05-28 20:51:54

감사합니다

profile

안뇽하잉 2017-12-01 17:56:12

안녕하세요~ 이번에 이 프로젝트를 응용한 기능추가형태로 졸업작품을 제작하고 있습니다
제작 중 발생한 문제점이 외부전력을 인가해도 LED는 작동되나 와이파이쉴드가 죽는현상이 발생하네요ㅠㅠ.... 다른 방법은 따로 없을까요??

profile

염소할배 2018-04-06 10:36:23

잉여될놈 /네오픽셀은 코코아팹 제품창에 링크되어있는 사이트들을 사용했습니다
twice/ 와이파이 쉴드는 아두이노 정품입니다.
안뇽하잉/ 어떻게 병형하여 응용하였는지 모르기에 정확한 답변이 어려울것같네요 제가 올려드린 하드웨어 및 코딩으로는 문제 없는 것으로 확인됩니다., 와이파이 접속문제는 리셋버튼으로 다시 연결시켜주시면 됩니다.

profile

좋은사람 2018-04-12 16:29:27

죄송한데 네오픽셀 led 제품에 관한 산곳 링크좀 얻을수 있을까요??ㅠㅠㅠ

profile

염소할배 2018-04-13 09:10:03

저도 그때 마다 다른곳에서 사서 어디에서 샀는지 정확하지 않네요
저는 구입시 제품_오렌지보드 시리즈_판매처 링크를 애용하고 있습니다.

profile

oppoa 2018-04-16 10:01:16

이와 비슷하게 날씨 관련 작품 판매 가능하신분 계신가요?..

profile

rldns2574 2018-05-10 20:28:35

아두이노 코딩을 해서 시리어 모니터를 통하여 결과를 확인하였으나 DHCP wating 이라는 문구만 계속되고 다음단계로 넘어가지 못하는데 무엇이 문제인가요??

profile

rldns2574 2018-05-10 20:29:32

아두이노 코딩을하여 시리얼 모니터를 통해서 DHCP wating 이라는 문구만 계속되고 다음단계로 넘어가지 못하는데 무엇이 잘못된건가요???

profile

염소할배 2018-06-01 14:10:01

코드 처음 부분 보시면 ssid, pass를 입력하는 부분이 있습니다 압력이 되어있는지 확인해주세요

profile

홍대한 2018-06-07 08:27:43

제가 학교 프로젝트로 이렇게 하고싶은데.. 문제가 있습니다. 여기서는 오렌지 보드를 사용하셨는데, 저희학교가 아두이노 레오나르도를 사용합니다. 이걸꼭 사용해야한데요 ㅠㅠ 오렌지보드 대신 레오나르도를 사용해도 문제없을까요?? 아니면 오렌지보드로만 꼭 써야할까요??

profile

염소할배 2018-06-19 11:53:24

오렌지 보드는 아두이노와 100퍼센트 호환제품입니다
제가 레오나르도는 사용을 안해보아서 정확한 답변을 해드리기 힘드네요

아두이노와 레오나르도 호환에 대해 서치하시면 될것같습니다.

profile

육류생성재단 2018-07-07 10:03:36

오렌지보드와 아두이노 wifi 쉴드 대체용으로 오렌지보드 wifi를 사용해도 될까요? 만약 오렌지보드 wifi로 하게되면 어떻게 하면 좋을까요? 혹여나 댓글로 답변이 힘드시면 mool848777@naver.com 으로 부탁드려요!

profile

오쌤 2018-07-09 09:37:08

안녕하세요. 저는 코딩에 입문한지 몇달되지 않은 40대 주부입니다. 몇달전 경력단절 대상 여성들을 위한 코딩교육에 참가하게 되어 과정중 아두이노를 배우고 작품을 하게 되었는데요.. 님의 좋은 작품을 보고 조원들과 상의해서 이 작품을 응용해서 한번 제작해보려고 합니다. 제작 과정에서 몇가지 부탁드릴것이 있어서 글 올립니다. 밑에 판은 3d프린터 도안 메일로 받아 볼수 있을까요? 혹시 구름도 레이저 컷팅 할 방법을 찾고 있는데 혹시 구름도안은 따로 없는지요... 혹시 또 다른 꿀팁이나 참고사항 있으시면 함께 주시면 너무너무 감사하겠습니다. 답변은 amjjin@naver.com 으로 주시면 감사하겠습니다.

profile

염소할배 2018-07-17 08:52:51

육류생성재단/ 오렌지보드 wifi는 와이파이 쉴드와 사용하는 칩이 달라 해당 라이브러리에 맞게 변경해주셔야합니다.
저는 오렌지 보드를 사용해보지 않아 바꾸시게 되면 도움을 드리기 어려울 것 같습니다.

오쌤/ 모델링은 tuch me 라는 캐릭터 사진으 누르시면 다운로드 가능하십니다.
구름 도안을 따로 제작해 놓은 것은 없습니다. 레이저커팅으로 작업할시 진짜 구름처럼 보이지 않을 수 있습니다.

아크릴 작업할때는 화이트보드 마카로 도안을 그려주고 많이 거친 사포로 돌돌 말아가며 작업하였습니다.

profile

qweasg 2018-11-17 22:59:03

프로젝트를 보고 흥미로워서 저도 제작을 해보려고 하는데요!
저는 ATmega 128과 ESP-01로 제작을 하려고 하는데 가능할까요?
가능하다면 코드를 어떤식으로 수정해야될까요?ㅠ

profile

김동영 2018-11-18 00:49:59

오렌지 보드 1
2 와이파이 쉴드 1
3 점퍼케이블 23 M/M JUMPER 케이블
4 Neopixel Strip LED 32
5 브레드 보드 1
6 아크릴 4 반으로 잘라서 8장
7 사포 1 스폰지 / 천 사포
혹시 제가 궁금해서 그러는데 저희가 weather lamp를 보고 나서 실습 작품으로 내면 어떨까 해서 고민하다가 결정했습니다 혹시 led는 무엇을 사용하면 되고, 아크릴은 크기가 다양하게 있는데 어떤걸 사용하면 되는지 알려 주십시오. 간곡히 부탁드립니다.

profile

염소할배 2018-11-21 14:24:51

qweasg/ 제가 전문가가 아닌 그냥...디자이너여서 ATmega 128과 ESP-01 모두 써본적이 없어 도움드리기 어려울것 같습니다ㅠ
한가지 알려드리자면 ESP-01는 제가 알기론 전력양이 낮아서 오작동이 많다고 합니다.

김동영/ LED는 네오픽셀_adafruit 쓰고있습니다 , 아크릴은 문구점에 파는 최소두께가 1.3T의 A4용지 크기일 겁니다. 반으로 잘라서 사용하였습니다.

profile

김동영 2018-11-21 22:29:27

저기 혹시 와이파이 쉴드는 어디서 구하셨나요???? 찾아봤는데 단종됐다고도 하길래 어디서 구하셨는지 궁금합니당

profile

염소할배 2018-11-23 08:59:59

김동영/ 제가 컨텐츠를 올린건 2년 전이고 쉴드 구입한 시기는 3~4년 전이라 단종이 아니였었습니다(사용한 제품: 아두이노 정품)

오렌지 보드 와이파이로도 대체 가능합니다.
아래 코드 변경 컨텐츠 링크 걸어드려요
https://kocoafab.cc/tutorial/view/654

제가 써본게 한정적이여서 호환 센서나 다른 보드 추천이 어렵네요...ㅠ
도움이 되었으면 합니다~

profile

김동영 2019-02-12 22:56:43

다름이 아니라 네오픽셀 led를 구매 할려는데 33개를 사용하셨던데 어떤제품을 구매하셨는지 링크를 알수 있을까요??

profile

염소할배 2019-03-06 09:19:58

김동영 / WS2812 칩을 사용하는 제품이면 모두 사용가능합니다.

profile

김동영 2019-05-30 20:34:48

아크릴판 작업하실때 사포 말고 부가적인거는 어떤걸 사용하셨는지 궁금합니다 알려주세용

profile

염소할배 2019-06-03 11:31:16

김동영/ 사포랑 송곳만 사용했습니다 사포는 거친것과 부드러운? 것 두가지 사용했습니다. 미니?드릴있으시면 속도 낮춰서 사용해도 괜찮을 것 같네요

profile

김동영 2019-06-03 16:29:13

혹시 네오픽셀 strip led 사용하셨을때 풀컬러 사용하셨는지랑 눈모양 나타나셨을때 이부분도 송곳하고 사포 로 사용하셨는지 여쭤봅니당 지금 led 사야하는데 뭘 사야할지 몰라서 사진을 첨부해서 확인시켜드리고 싶은뎁 어떻게 안되겠습니까??

profile

염소할배 2019-06-04 10:26:39

김동영/눈모양 작은거는 송곳 / 큰 결정체는 아크릴 칼을 사용했습니다 (삐끗하기 쉬움 작업시 조심해야함)
레이저커팅 사용하실 수 있으시면 천둥이나 눈, 비오는 것만 레이저커팅하고 구름은 사포로 작업하셔도 될 것 같네요

led색은 제가 선호하는 색으로 값변화시키면서 적용했습니다. 위에 코드 보시면 rgb값 보시면 알 수 있습니다.

led는 WS2812 칩을 사용하는 제품이면 모두 사용가능하다고 답변 드렸었는데, 찾기 힘드신가요.... WS2812를 네이버 검색하셔서 구매하시면 되구요 만약 다르다고 하더라도 LED간격에 따른 전력공급정도라고 생각합니다. 5V인지 rgb인지 확인하셔서 구매하시기 바랍니다.

profile

김동영 2019-06-04 14:57:54

그럼 여기서 사용하는 건 rgb인거죠??

profile

염소할배 2019-06-04 15:09:38

김동영/ 네 RGB LED 입니다.

profile

송다현 2021-10-12 17:14:18

그냥 오렌지 보드를 쓰신건가요?> 아니면 블루투스 오렌지보드를 쓰신건가요??

profile

염소할배 2021-10-13 09:29:23

오렌지 보드에 와이파이 쉴드를 사용했습니다. 날씨 정보를 불러와야되기때문에 wifi를 사용합니다.

profile

송다현 2021-10-16 17:42:51

오렌지보드 와이파이를 사용할 경우 와이파이 쉴드를 사용안하고 코딩은 다르게 하지만 그래도 사용은 가능한가요? 만드는데는 문제 없는건가용?

profile

염소할배 2021-10-29 16:49:40

네 코딩은 오렌지 와이파이에 맞게 해주셔야되지만 외관관련해서는 문제가 없어보입니다.
오히려 쉴드를 사용하지않아서 여유공간이 생기겠네요