'알리익스프레스'에 해당되는 글 141건

  1. 2017.07.29 Hardware | DS18B20 온도센서 17
  2. 2017.07.23 Hardware | Arduino Micro 구입기
  3. 2017.07.12 Hardware | AM2322 Temperature & Humidity Sensor
  4. 2017.07.09 Hardware | Arduino 의 Sensor Shield 사용해 보기
  5. 2017.07.03 Hardware | 금속탐지기를 조립해 보자
  6. 2017.06.28 Hardware | YF-S201 water flow sensor 가지고 놀기 4
  7. 2017.06.21 Life | Xiaomi Mi Band 2 고무밴드 교환기
  8. 2017.06.20 Hardware | MeeGoPad 히트싱크 업그레이드 하기 - 2
  9. 2017.06.16 Life | 고장난 지퍼를 고쳐보자
  10. 2017.03.05 Hardware | Arduino 비접촉 온도센서 GY-906 MLX90614

Hardware | DS18B20 온도센서

|

1. 온도 센서

지금까지 온도센서를 4개 구동시켜 봤습니다.


* Hardware | AM2322 Temperature & Humidity Sensor

http://chocoball.tistory.com/entry/Hardware-AM2322-Temperature-Humidity-Sensor


* Hardware | Arduino 비접촉 온도센서 GY-906 MLX90614

http://chocoball.tistory.com/entry/HardwareArduinoMLX90614


* Hardware | Arduino BMP280 고도/온도/기압 센서

- http://chocoball.tistory.com/entry/HardwareArduinoBMP280


* Hardware | BME280 sensor

- http://chocoball.tistory.com/entry/HardwareBME280


온도라는 것은 생물이 살아가는 지구 환경의 특성을 나타내주는 중요한 바로메터 이기 때문에

시장에는 사용 용도에 따라서 여러 센서가 존재하는 듯 합니다.


이제 5번째 센서를 구동시켜보기로 합니다.




2. 수온 측정용 온도센서

물의 온도를 측정하기 위해서는 방수가 되어야 합니다.

알루미늄 방수캡으로 커버된 온도센서가 "DS18B20" 입니다.


원래는 아래 그림처럼 Dallas사에서 만든 세발달린 칩으로 되어 있습니다.



그것을 알루미늄 캡과 고무로 실링을 한 제품입니다.



데이터쉬트는 다음과 같습니다.


DS18B20.pdf


사양을 보면, 중간에 저항을 넣어줘야 하는 군요.

센서가 타버리지 않게 꼭 저항을 챙기도록 합니다.





3. 주문

오늘도 AliExpress 에서 구매합니다.


https://ko.aliexpress.com/item/1pcs-DS18B20-Stainless-steel-package-1-meters-waterproof-DS18b20-temperature-probe-temperature-sensor/32467815969.html





4. Layout

데이터쉬트에 표기되어 있듯이 "저항"을 꼭 챙기도록 합니다.



Datasheet 를 보면 3~5V 에서 구동한다고 되어 있으므로, Arduino Nano 에서는 3.3V 단자에 연결했습니다.


  DS18B20 | Arduino Nano
------------------------------
   Black  |     GND
    Red   |     3.3V (4.7k Ohms)
   White  |     D2 (4.7k Ohms)
------------------------------


빵판 모습은 다음과 같습니다.



Pullup 저항도 달아 줍니다. 이 pullup 저항이 왜 중요한지는 이 글의 마지막에 적어 놨습니다.

AliExpress 에서 구매한것 치고 4.7k Ohms 는 꽤나 정확하네요.



미지근한 물, 냉장고의 물, 급탕기로 뎁힌 뜨거운 물을 준비합니다.

자, 이제 준비 완료 입니다.







5. IDE Sketch

유명한 센서라서 여러 사이트에서 소개되고 있습니다.


가장 간단한 스케치는 다음과 같습니다.

https://create.arduino.cc/projecthub/TheGadgetBoy/ds18b20-digital-temperature-sensor-and-arduino-9cc806


- OneWire Library : https://github.com/PaulStoffregen/OneWire

- DallasTemperature Library : https://github.com/milesburton/Arduino-Temperature-Control-Library


/********************************************************************/
// First we include the libraries
#include <OneWire.h>
#include <DallasTemperature.h>
/********************************************************************/
// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2
/********************************************************************/
// Setup a oneWire instance to communicate with any OneWire devices 
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
/********************************************************************/
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
/********************************************************************/
void setup(void)
{
 // start serial port
 Serial.begin(9600);
 Serial.println("Dallas Temperature IC Control Library Demo");
 // Start up the library
 sensors.begin();
}
void loop(void)
{
 // call sensors.requestTemperatures() to issue a global temperature
 // request to all devices on the bus
/********************************************************************/
 Serial.print(" Requesting temperatures...");
 sensors.requestTemperatures(); // Send the command to get temperature readings
 Serial.println("DONE");
/********************************************************************/
 Serial.print("Temperature is: ");
 Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"? 
   // You can have more than one DS18B20 on the same bus. 
   // 0 refers to the first IC on the wire
   delay(1000);
}



cactus.io 에서 제품 자체의 시리얼 넘버까지 친절하게 보여주는 소스는 다음과 같습니다.

http://cactus.io/hookups/sensors/temperature-humidity/ds18b20/hookup-arduino-to-ds18b20-temperature-sensor


"cactus_io_DS18B20.h" 라이브러리는 다음 링크에서 다운받으면 됩니다.

cactus_io_DS18B20.zip


/* Example sketch for Maxim Integrated DS18B20 temperature sensor Written by cactus.io, and requires the cactus_io_DS18B20 library. This sketch was tested using the Adafruit Prewired DS18B20 Sensor. For hookup details using this sensor then visit http://cactus.io/hookups/sensors/temperature-humidity/ds18b20/hookup-arduino-to-ds18b20-temperature-sensor */ #include <cactus_io_DS18B20.h> int DS18B20_Pin = 2; //DS18S20 Signal pin on digital 2 // Create DS18B20 object DS18B20 ds(DS18B20_Pin); void setup() { ds.readSensor(); Serial.begin(9600); Serial.println("Maxim Integrated DS18B20 Temperature Sensor | cactus.io"); Serial.println("DS18B20 Serial Number: "); // we pass the serial number byte array into the printSerialNumber function printSerialNumber(ds.getSerialNumber()); Serial.println(""); Serial.println(""); Serial.println("Temp (C)\tTemp (F)"); } void loop() { ds.readSensor(); Serial.print(ds.getTemperature_C()); Serial.print(" *C\t"); Serial.print(ds.getTemperature_F()); Serial.println(" *F"); // Add a 2 second delay. delay(2000); } // We call this function to display the DS18B20 serial number. // It takes an array of bytes for printing void printSerialNumber(byte *addr) { byte i; for( i = 0; i < 8; i++) { Serial.print("0x"); if (addr[i] < 16) { Serial.print('0'); } Serial.print(addr[i], HEX); if (i < 7) { Serial.print(", "); } } }




6. 결과

실제로 "실내 공기 > 미지근한 물 > 냉장고의 차가운 물 > 급탕기로 뎁힌 물" 을 차례로 측정한 온도 변화 입니다.



동영상으로도 찍어 봤습니다.



전체 과정은 아래 동영상 입니다.



잘 되네요!




7. 주의

처음에 GND 와 VCC를 서로 바꿔 연결했더니만, 온도센서쪽이 불덩이가 되었습니다.

잠깐 만지기만 해도 손이 데일 정도였으니, 100도이상 순식간에 올라갔던 것 같습니다.


다행이 식힌 다음 제대로 연결했더니 센서 동작에는 문제가 없었습니다.

다른 센서들은 핀 연결을 잘못해도 문제가 생길 여지가 없는데, 이 센서는 왜 pullup 저항을 달아 놓는지 조금 이해가 갈 것 같습니다.




FIN

5개째 온돈세서 구동기였습니다.

더이상 다른 온도 센서는 없겠지?


And

Hardware | Arduino Micro 구입기

|

1. CH340

Arduino Nano 를 두개 구입합니다.


* Hardware | Arduino 구입기

- http://chocoball.tistory.com/entry/Hardware-Arduino-%EA%B5%AC%EC%9E%85%EA%B8%B0


* Hardware | Arduino nano 조립기

- http://chocoball.tistory.com/entry/HardwareArduinonanoassamble


Arduino Nano 의 clone 제품을 AliExpress 에서 구입해서 잘 쓰고 있었습니다.

전혀 문제가 없었죠.


다만, CH340 이라는 interface 칩이 오리지널과 가장 다른 점이고,

여러 사이트에서 보면, 중국 클론 제품을 활용하려면 이 "CH340" 드라이버가 문제의 많은 부분이었습니다.


그러던 중, PC 의 BIOS 날려먹고 Arduino로 복구하고자 여러가지 시도를 합니다.


* Hardware | Flash ROM 복구기

http://chocoball.tistory.com/entry/Hardware-flashROM-fix


그러나, 어느 사이트에선가 이 "CH340" 칩이 문제의 원인이라고 나와 있더군요.

또한 중국 클론 제품을 이용하여 BIOS 복구 프로그램인 "flashrom" 프로그램을 제대로 돌린 케이스를 찾을 수가 없었습니다.


이쯤해서 결론은, BIOS 복구하는 flashrom 을 돌리려면 정품 Arduino 이 필요하다는 결론이 납니다.


이제 Arduino 정품을 구할 때가 되었습니다.




2. Micro

정품 Arduino Nano 를 구입하려고 시도합니다.

한국에서는 중국 클론 제품만 팔고 있고, 정식 사이트 가면 22 USD 입니다.



이럴꺼면 Flashrom 기계를 사겠어요.

혹시나 Taobao 에서 구매 가능한지 알아 봅니다.



2만 8천원.

배송비까지 포함하면 배보다 배꼽이 더 커집니다.


폭풍 검색 중, 오잉?!!!

AliExpress 에서 CH340 을 쓰지 않는 Arduino Micro 정품을 팔고 있네요?


그건 다름아닌 "Arduino Micro" !!!


https://ko.aliexpress.com/item/Hot-Sale-High-Quality-Micro-R3-ATmega32u4-Microcontroller-Board-With-USB-Cable-For-Arduino/32645790480.html


Arduino 계열 정품을 팔지 않는 AliExpress 에서 빙고 입니다.

(너무 잘만든 카피품 일 수도 있지만)


가격도 7 USD 정도. 1/3 가격 이하네요.

바로 주문합니다.





3. 도착

도착은 1주만에 왔습니다. 조금 가격이 있다보니 air mail 로 왔네요.

도착샷 입니다.



뽁뽁이에 잘 포장되어서 왔습니다.



정말 정품처럼 잘 포장되어 왔네요.

USB 연결은 안드로이드 연결하는데 많이 쓰이는 Micro-B 5 Pin 입니다.

참고로 Arduino Nano 클론 제품은 Mini-B 5 Pin 였습니다.



다행이 케이블이 동볼되어 있어서 바로 확인할 수가 있네요.



보드 위에 프린팅도 선명하게 잘 되어 있습니다.



뒷면도 인터넷에서 보이는 것과 완벽히 동일해 보입니다.


굿 shopping.




4. IDE 에 연결해 보기

Windows 에 연결하면 자동으로 driver 를 찾아 줍니다.



IDE 에서 "Tools > Board" 에서는 "Arduino/Genuino Micro" 를 선택합니다.



Port 는 아까 드라이버 인스톨시 보였던 "COM9 (Arduino/Genuino Micro)" 를 선택해 줍니다.



Tools > Get Board Info 를 보면 잘 인식하네요.



Windows 장치 관리자에서도 잘 인식합니다.



Linux 에서도 인식이 잘 되나 꼽아 봤습니다.



"Arduino LLC Arduino Micro" 로 검색되고,

USB device 로는 "/dev/ttyACM0" 로 연결 되었습니다.


참고로 Arduino Nano clone 제품은 "/dev/ttyUSB0" 로 인식하는 것이 다른 점 입니다.



특이한 점은 보드 밑부분에 전원 연결 확인용 푸른 LED 가 켜진다는 점입니다.


아래는 동작 동영상 입니다.

기본으로 fade 되는 LED 점등 sketch 가 upload 되어 있었습니다.

참 멋지게 점등되었는데, 다른 sketch 실험하느라 지워져 버렸네요.


할수 없이 IDE 들어가 있는 기본 blink sketch 를 동작시키는 동영상 입니다.





FIN

중국 Arduino 정식 제품도 파네요 !!!

And

Hardware | AM2322 Temperature & Humidity Sensor

|

1. 온도 센서

온도를 측정할 수 있는 센서는 매우 다양하게 있습니다.

아래 링크들은 지금까지 실험해본 센서들 입니다.


* Hardware | Arduino BMP280 고도/온도/기압 센서

http://chocoball.tistory.com/entry/HardwareArduinoBMP280


* Hardware | BME280 sensor

http://chocoball.tistory.com/entry/HardwareBME280


* Hardware | Arduino 비접촉 온도센서 GY-906 MLX90614

http://chocoball.tistory.com/entry/HardwareArduinoMLX90614



생각보다 온도 센서들이 다양하게 있습니다.

그러던 중 SHT 계얄과 AM 계열이 또 있다는 것을 알게 되었죠.


그럼 어떤게 더 좋을까 찾아 봤습니다.

정확면에서는 AM 계열이 좋다는 글을 어디선가 보았습니다.


각 온도 센서들을 비교한 사이트도 있습니다만, AM 계열은 다루기가 까다롭다는 것을 알 수 있었습니다.

(측정을 위해 연속 측정하지 않고, reset 해야 하는 등)


http://3. - https://www.kandrsmith.org/RJS/Misc/Hygrometers/calib_many.html


그렇다면, 일단 AM2321 을 구입하기로 하고 AliExpress 를 뒤져 봅니다.


옷!!!

새로운 버전인 AM2322가 나와 있네요.


https://ko.aliexpress.com/item/1pcs-AM2321-digital-temperature-and-humidity-sensors-can-replace-SHT21-SHT10-SHT11/32324748233.html



센서 계열에서 3 USD 이상이면 고가에 속합니다.

하지만 구입합니다. 당연히 배송은 무료 입니다.




2. 도착

약 한달 반 정도 걸린것 같습니다.

오래 기다렸네요.


받고 바로 드는 생각은, "작다" 였습니다.




보통 빵판의 핀 사이의 거리가 "2.54 mm" 인데, 이 센서의 다리 간격이 "1.27 mm" 입니다.

연결을 어떻게 해야할지 고민됩니다.


결국 adapter 를 살까 하다가, 주문하고 기다리는 것을 참을 수가 없어 다리를 구부리기로 합니다.

까딱 잘못하다가는 다리가 날라갈 수가 있습니다.


참고로 1.27 to 2.54 어뎁터는 아래 사이트에서 판매합니다. (거의 안파는 듯)


http://www.proto-advantage.com/store/product_info.php?products_id=2700037



향후를 위해서는 꼭 구하고 십지만, 7 USD 입니다. 배보다 배꼽이 더 큰 현실.




3. Spec.

스펙은 아래 datasheet 를 참고하세요.


AM2322_datasheet.pdf


이번 계기로, 중국어 공부에 대해서 심각하게 고민하게 되었습니다.


다행히 AM2320 에 대한 자료나 소스는 많아서, 비슷하다고 생각하고 진행해 봅니다.




4. Layout

Pin 배열은 다음과 같습니다.

판매자 사이트에 설명이 나와 있습니다.


  AM2322 | Arduino Nano
-------------------------
   Pin 1 |     3.3V
   Pin 2 |      A4
   Pin 3 |     GND
   Pin 4 |      A5
-------------------------



보드 구성은 다음과 같아요.



리드선의 피치가 작아서 아래처럼 할수 없이 다리들을 엇갈리게 구부렸습니다.




다리를 서로 간섭이 안생기도록 벌리고, 클립으로 리드선과 연결해 주었습니다.



최종 연결한 모습 입니다.

불안하게 연결되어 있어서 센서와의 통신도 자주 끊겨버리네요.


일단 동작 확인이 우선이므로, 정식으로 프로젝트 한다면 어뎁터가 꼭 있어야겠습니다.







5. Source

소스 코드는 아래 사이트를 참고하였습니다.


http://www.instructables.com/id/Connecting-AM2320-With-Arduino/


#include 
#include 
AM2320 th;

void setup() {
  Serial.begin(9600);
}

void loop() {
  switch(th.Read()) {
    case 2:
      Serial.println("CRC failed");
      break;
    case 1:
      Serial.println("Sensor offline");
      break;
    case 0:
      Serial.print("humidity: ");
      Serial.print(th.h);
      Serial.print("%, temperature: ");
      Serial.print(th.t);
      Serial.println("*C");
      break;
  }

  delay(200);
}


위의 사이트 말고도 여러 사이트를 참고하실 수 있습니다.


https://github.com/hibikiledo/AM2320

https://github.com/Ten04031977/AM2320-master




6. 결과

IDE 의 Sensor Monitor 를 통해 본 결과 입니다.



결과가 잘 나옵니다.

습도가 점점 올라가는 것은, 예상 하셨듯 입김을 불어 넣어준 결과 입니다. 잘 반응하네요.






FIN

어? 또다른 온도 센서가 하나 더 있네 ?!!!



And

Hardware | Arduino 의 Sensor Shield 사용해 보기

|

1. 가위손

Arduino 를 하면서 빵판에 선을 꼽고 있으면 스파게티가 됩니다.


이를태면 이런거거죠.


- 출처 : http://anycpu.org/forum/viewtopic.php?t=143




2. Sensor Shield

하나의 Arduino nano 에 여러 센서들을 연결하게 되면, GND / 5V 를 여러 센서들이 공유해서 사용해야 해서

다음과 같은 문제가 발생할 수 있습니다.


- 선이 복잡해 진다

- 전원의 전압 강하될 가능성이 있다

- Arduino 의 전력부에 부하를 준다


등의 문제가 될 수 있겠습니다.


이를 해결하기 위한 쉴드가 다음 사진 입니다.



Arduino nano 전용 sheild 입니다.




3. 주문

Aliexpress 에서 주문합니다.


- URL : https://ko.aliexpress.com/item/For-Arduino-Nano-V3-0-Prototype-Shield-I-O-Extension-Board-Expansion-New-Module/32459623962.html




eBay 에서는 약 3~9 USD 정도 합니다.

그럼 Aliexpress 에서도 찾아 봅니다.


1.12 USD 에 무료 배송... 갓알리 입니다.




4. 도착

도착후 샷 입니다.

메뉴얼은 없고 단순히 보드 하나만 있습니다.



뒷면입니다.

Deek-Robot / DK-NANO-003 V3.0 이라고 적혀 있습니다.





5. 체결

결합전 샷 입니다.



합체 ~~!!!



전원 인가 모습.

잘 동작되는 것 같습니다.





6. 사양

Aliexpress 에서는 clone 제품을 많이 팔지만, 메뉴얼이나 자세한 설명은 없습니다.


어떤 전원을 꼽아야 하는지 알지 못하여 Googling 하였습니다.

완전히 같은 제품은 아니지만, 구성품이 거의 동일하여 동일한 사양일 듯 합니다.


Keyes - Funduino Uno and Nano Multi Purpose Shield V3.pdf




입력은 7~12V 사이가 적정하네요.




7. 연결해 보기

Servo 모터 두개를 달고 있는 Gimbal 미조립품이 있습니다.

이는 Kickstarter 에서 펀딩하고 받은 prototype 입니다.


- Servo 소개 글 : http://chocoball.tistory.com/entry/Hardware-Arduino-Servo


이 Gimbal 에는 두개의 Servo 모터가 들어갑니다.

각 Servo 모터는 5V / GND 와 digital pin 하나가 필요합니다.


이번에 구입한 Sensor Shield를 이용하여 간단하게 연결해 볼까요?



사진에서 보이듯, 각 signal pin 에 GND / 5V 핀이 바로 옆에 있어

배선이 깔끔해 집니다.


두개의 Servo 를 연결했을 때의 사진 입니다.

깔끔하죠?!!!



전원을 넣으면 각 pin 을 통해 5V 전원도 인가되고 GND 도 동작합니다.

그래서 각 센서에서 Arduino 의 5V / GND 에 따로 연결할 필요가 없습니다.


전원 인가하니 잘 동작 합니다.


동시에 두개의 Servo 를 구동시킨 동영상 입니다.



좋네요 !!!




FIN

OLDE / 여러 Sensor / Motor 등을 하나의 Arduino 로 제어하고 싶을 때, 배선이 깔끔해 지겠습니다.

다른것도 해봐야지.

And

Hardware | 금속탐지기를 조립해 보자

|

1. 해변

바다를 좋아하는 우리 가족은 일단 해변은 항상 가고싶은 장소이다.

금속 탐지기에 관한 Youtube 를 보면, 일단 해변이 나온다.


그렇다면, 나도 한번... 이라는 생각이 자연스럽게 들었다.


다만 여러가지 조사를 하는 과정에 만만치 않은 공부를 해야 하는 것을 알게 되었다.

또한 성능 좋은 금속 탐지기를 만들기 위해서는 그만큼 투자를 해야 하는 것도.


쉬운게 없습니다.

준비해야 할게 너무 많아 일단, 원리만 알고자 코일만 구입해 놓습니다.


https://ko.aliexpress.com/item/Newest-100m-Red-Magnet-Wire-Enameled-Copper-Wire-Roll-Magnetic-Round-Coil-0-2mm-Dia-Favorable/32716325725.html



도착은 했지만, 정작 시작을 못하고 있습니다.



생각보다 구리선이 가늡니다. 좀더 굵은게 더 성능이 좋을 듯 한데요.

고민에 빠집니다.




2. 엇?

기성품은 좋은 성능을 보여주는 대신 조금 많이 비쌉니다.

어떻게든 현실을 반영하여 DIY 쪽으로 마구마구 조사를 합니다.


마침 짱 성능 좋은 DIY 용품을 영국에서 판다고 하네요.

다만, 이것도 비쌉니다.


Arduino 를 이용하여 core coil 만 만들자고 계획을 세우던 와중에 아래 링크를 발견하게 됩니다.


https://ko.aliexpress.com/item/Metal-Detector-Scanner-Unassembled-Kit-Project-3-5V-DIY-Kit-Suite-Trousse-Boards-Module-Integrated-Circuits/32722475891.html



그 많은 고민들을 한방에 해결하는 DIY 제품이 있었네요.

고민하지 않고 바로 구입합니다. 항상 감사하는 무료 배송.




3. 도착

도착해서 구성품을 살펴 봅니다.

정말 간단합니다.



실패할 수도 있고, 백업용으로도 필요할 듯 하여 2개를 주문했습니다.

구성품은 정말 단촐합니다.



4. 조립

다른 전자 DIY 처럼 위치에 맞게 배치하고 납땜을 잘 하면 됩니다.

우선 알맞은 위치에 부품들을 끼워 주구요.



납땜하기 좋게 다리들을 벌려 줍니다.



전자 부품에 문제가 없는지 확인도 해 봅니다.

Tester 기도 좋지만, 저번에 만들어 놨던, Transister Tester 를 이용해 봅니다.

역시 여러 정보를 잡아 주네요.


Transister Tester 글은 다음을 참조하세요.

http://chocoball.tistory.com/entry/Hardware-Transistor-Tester


동봉된 캐페시터는 100㎌ 짜리가 92㎌ 정도 되니 그렇게 성능이 좋아 보이지는 않습니다.

그래도 싸고 간단한 맛에 하는 것이니 그냥 씁니다. 



실장을 모두 마쳤습니다.

부저와 콘덴서의 자리 간섭이 심하여 할수 없이 부저를 갸우뚱하게 납땜하였습니다.

그래도 문제는 없으니까요.



이쁘죠? 마음에 듭니다.



납땜이 끝난 뒷모습 입니다.



이제 + / - 리드선도 납땜해 줍니다.



전원 리드선은 밑으로 뽑는게 나을듯 하여 밑으로 뽑아 냈습니다.



동봉된 전원선이 너무 짧으니 연장선으로 쓸 마땅한 전선을 찾아 봅니다.

비행기 탔을 때 나누어 받았던 이어폰 줄을 사용해 보기로 합니다.


오늘의 희생양.



싹뚝 !!!



뜨헉 !!!

선이 얇고, 거기에 두가닥밖에 들어있지 않습니다.

그냥 나눠줄 만 하네요. 그나마 R/L 구분하기 위해 색이 입혀진 선이 있어서 2가닥 입니다.



다른 곳에서 USB 연장선을 잘라서 사용하도록 합니다. (사진 생략)

수축 튜브도 준비하고.



이쁘게 이어줍니다.



이제 전원을 연결해 줘야겠죠?

3V ~ 5V 로 구동되니, 1.5V 직렬로 연결해 주기 위해 건전지 2개를 이용합니다.



저번에 사 놨던 조그마한 스위치도 이용해 봅니다.

구입 URL 은 아래 입니다.

https://ko.aliexpress.com/item/10Pcs-Slide-Type-Switch-Module-1-Bit-2-54mm-1-Position-Way-DIP-Red-Pitch/32452842198.html



실제 모양은 다음과 같습니다.



한가지 단점은, 기판 위에 실장용이라서 전원선이나 건전지에 직접 납땜하려고 하면 잘 붙지 않습니다.

우선 작동 시험을 위해서 조립하고 있으므로, 절연테이프의 힘으로 꽁꽁 싸매어 고정해 줍니다.





5. 합체

이 금속 탐지기 본체만 가지고는 돌아다니면서 스켄할 수 없으므로, 편리한 도구가 없을까 주위를 살펴 봅니다.


올커니! 쓰지 않는 셀카봉!



요렇코롬 들어 있네요.



합체 준비 입니다.



짜잔~!!!

완성했습니다~!!!



이제 테스트, 테스트~!




6. 테스트

실내에서 동전을 마루에 깔고 테스트한 동영상 입니다.



잘 동작 합니다. 신기하기도 하네요.

중간에 잘 인식이 안되는 것은 건전지쪽에 붙여놓은 스위치 접점이 확실하게 고정이 안되어서 그렇습니다.

고정이 잘 되면 인식이 잘 됩니다.


완성된 후, 저녁밥 먹기 전에 아파트 놀이터 모래에서 시험해 봤습니다.

한 30분 했으나 득탬은 하지 못했습니다.


알고보니 며칠 전, 모래 검수 후 다 교체했다 하네요...




7. 개선

여기서 끝날 수는 없습니다.

아래는 향후 개선할 사항들 입니다.


1. 전원선의 길이를 길게 한다.

2. 전원은 micro USB 를 이용하여 충전할 수 있게 한다.

3. core coil 을 보강하여, 더 넓고 깊은 곳까지 스켄할 수 있게 한다.


위의 세가지를 보강하는 계획을 짜 봅니다.




FIN

아 즐거웠다.

보강 내용을 가지고 upgrade 해봐야겠습니다.


And

Hardware | YF-S201 water flow sensor 가지고 놀기

|

1. 이런 센서도 있네?

향후 집도 짓고 배관 시설도 공사도 해야 해서 "Water Flow Sensor" 를 익힐 필요가 있습니다.


...라는건 뻥이구요 (집 짓는게 장래 희망은 사실), Arduino 로 할 수 있는 센서는 어떤게 있을까 찾아 봤습니다.

"Water Flow Sensor" 라는게 있네요.


쓰임새는 액체가 흐르는 파이프에 설치하여 흐르는 양을 검출할 수 있는 센서 입니다.

요런거죠.





2. 구입

역시 Aliexpress 에서 구입 했습니다.

없는게 없죠?


https://ko.aliexpress.com/item/Water-flow-sensor-flowmeter-Hall-flow-sensor-Water-control-1-30L-min-2-0MPa-YF-S201/32583680601.html



3천원 미만으로 무료 배송이면 괜찮츄?




3. 도착 및 분해

도착 기념 샷 입니다.

구성은 단순하네요.



뒷면을 보니 흐르는 방향이 표시되어 있습니다.



내부가 궁금해 졌습니다.

나사 4개가 너무 눈에 띄게 만들어 졌네요. 분리해 봅니다.



물이 들어갈까봐 고무 패킹에 잘 둘러쌓여 있습니다.



호스 부분은 프로펠러가 달려 있어서 회전하게 되어 있습니다.

회전축에 자석같은게 붙어 있어서, 이 부분이 상판 회로의 센서와 hall effect 를 검출하는 것 같습니다.



상판 회로는 잘 분리되어 있습니다.




4. Layout

Pin 연결은 다음과 같습니다.


  YF-S201 | Arduino Nano
-------------------------
  Red     |      5V
  Black   |      GND
  Yellow  |      D2
-------------------------



Hall effect 를 이용한 센서라고 하는데, 전자기를 이용한 방식인 듯 합니다.

그래서 그런지 digital 단자와 연결됩니다.


Hall effect 는 다음 Wikipedia 를 참고해 보세요.

https://en.wikipedia.org/wiki/Hall_effect




5. Source

Code 는 다음과 같습니다.


출처는 아래 link 입니다.

https://diyhacking.com/arduino-flow-rate-sensor/

Code 소스는 아래 link 입니다.

http://diyhacking.com/projects/FlowMeterDIY.ino


/*
Liquid flow rate sensor -DIYhacking.com Arvind Sanjeev

Measure the liquid/water flow rate using this code. 
Connect Vcc and Gnd of sensor to arduino, and the 
signal line to arduino digital pin 2.
 
 */

byte statusLed    = 13;

byte sensorInterrupt = 0;  // 0 = digital pin 2
byte sensorPin       = 2;

// The hall-effect flow sensor outputs approximately 4.5 pulses per second per
// litre/minute of flow.
float calibrationFactor = 4.5;

volatile byte pulseCount;  

float flowRate;
unsigned int flowMilliLitres;
unsigned long totalMilliLitres;

unsigned long oldTime;

void setup()
{
  
  // Initialize a serial connection for reporting values to the host
  Serial.begin(38400);
   
  // Set up the status LED line as an output
  pinMode(statusLed, OUTPUT);
  digitalWrite(statusLed, HIGH);  // We have an active-low LED attached
  
  pinMode(sensorPin, INPUT);
  digitalWrite(sensorPin, HIGH);

  pulseCount        = 0;
  flowRate          = 0.0;
  flowMilliLitres   = 0;
  totalMilliLitres  = 0;
  oldTime           = 0;

  // The Hall-effect sensor is connected to pin 2 which uses interrupt 0.
  // Configured to trigger on a FALLING state change (transition from HIGH
  // state to LOW state)
  attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
}

/**
 * Main program loop
 */
void loop()
{
   
   if((millis() - oldTime) > 1000)    // Only process counters once per second
  { 
    // Disable the interrupt while calculating flow rate and sending the value to
    // the host
    detachInterrupt(sensorInterrupt);
        
    // Because this loop may not complete in exactly 1 second intervals we calculate
    // the number of milliseconds that have passed since the last execution and use
    // that to scale the output. We also apply the calibrationFactor to scale the output
    // based on the number of pulses per second per units of measure (litres/minute in
    // this case) coming from the sensor.
    flowRate = ((1000.0 / (millis() - oldTime)) * pulseCount) / calibrationFactor;
    
    // Note the time this processing pass was executed. Note that because we've
    // disabled interrupts the millis() function won't actually be incrementing right
    // at this point, but it will still return the value it was set to just before
    // interrupts went away.
    oldTime = millis();
    
    // Divide the flow rate in litres/minute by 60 to determine how many litres have
    // passed through the sensor in this 1 second interval, then multiply by 1000 to
    // convert to millilitres.
    flowMilliLitres = (flowRate / 60) * 1000;
    
    // Add the millilitres passed in this second to the cumulative total
    totalMilliLitres += flowMilliLitres;
      
    unsigned int frac;
    
    // Print the flow rate for this second in litres / minute
    Serial.print("Flow rate: ");
    Serial.print(int(flowRate));  // Print the integer part of the variable
    Serial.print(".");             // Print the decimal point
    // Determine the fractional part. The 10 multiplier gives us 1 decimal place.
    frac = (flowRate - int(flowRate)) * 10;
    Serial.print(frac, DEC) ;      // Print the fractional part of the variable
    Serial.print("L/min");
    // Print the number of litres flowed in this second
    Serial.print("  Current Liquid Flowing: ");             // Output separator
    Serial.print(flowMilliLitres);
    Serial.print("mL/Sec");

    // Print the cumulative total of litres flowed since starting
    Serial.print("  Output Liquid Quantity: ");             // Output separator
    Serial.print(totalMilliLitres);
    Serial.println("mL"); 

    // Reset the pulse counter so we can start incrementing again
    pulseCount = 0;
    
    // Enable the interrupt again now that we've finished sending output
    attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
  }
}

/*
Insterrupt Service Routine
 */
void pulseCounter()
{
  // Increment the pulse counter
  pulseCount++;
}



6. 측정

당장 물 호스를 연결할 수가 없어, 입으로 바람을 불어 봅니다.

잘 되네요 !!!



Serial Monitor 로 결과를 보면 아래와 같습니다.

신기하게 잘 잡힙니다.



Flow rate / 흐르는 양 / 총량을 계산해 줍니다.

원작자가 소스코드를 잘 짜신것 같습니다.




FIN

이제 집만 지으면 될 것 같습니다.

And

Life | Xiaomi Mi Band 2 고무밴드 교환기

|

1. 고무밴드의 수명


Xiaomi Mi Band 시리즈는 저렴하면서 수면 및 운동관리가 어느정도 가능하여

가벼운 기분으로 구입하고 사용하기에는 딱 적당한것 같습니다.


Xiaomi Mi Band 1 을 잘 사용하고 있습니다.



어플도 적당합니다.



또한, Xiaomi Mi Band 2 도 가족이 잘 사용하고 있답니다.


다만, 손목에 차는 고무 밴드라서 어느정도 사용하면 해지게 됩니다.

가족이 차던 Mi Band 2 스트렙이 끊어졌네요. 기계는 좋은데 밴드라서 버릴 수도 없고...




2. 구입


설마 해서 AliExpress 를 뒤져 봅니다.

역시나 있네요. (도대체 없는게 뭐냐....)


https://ko.aliexpress.com/item/watchbands/32721756506.html



검은색 하나, 보라색 하나 해서 두개 구입합니다.

역시 배송은 무료 배송입니다.




3. 도착


약 2주정도 걸렸습니다.

다른 제품과 비교해 보면 빠른 배송입니다. 타이밍이 좋았던것 같아요.



딱딱한 물건이 아니라 특별한 문제 없이 잘 도착했습니다.





4. 비교


왼쪽이 기존에 쓰던 고장난 정품, 오른쪽 보라색이 이번에 새로 구입한 밴드 입니다.

기존 검정색은 겹겹이 덧대어진 이음새 부분이 해졌습니다.



외형 및 치수는 완벽히 똑같습니다.



똑같습니다.



고정하는 징 부분도 같네요.



아래 사진이 유일하게 정품가 다른 부분입니다.

정품에는 시리얼 번호가 보이네요.





FIN


이제 뭘 사지?




Update 20180303


사용하던 줄이 또 금방 해질것 같아 추가 구매해 놓았습니다.

또한, 저도 Mi Band 1S 에서 2로 넘어 왔거든요.



보호 필름은 특별할 것은 없이 무난 합니다.



스트렙은 세 가지 색을 구입 했습니다.



사이트에 올라 온, 제품 사진과는 많이 다르네요. 진한 갈색을 주문했지만, 똥색이 도착했습니다.



노란색도 색이 조금 바랜 얕은 색이라서 전혀 있어보이지 않습니다.



진한 청색은 군청색이 왔습니다. 그나마 이놈이 제일 낫네요.


And

Hardware | MeeGoPad 히트싱크 업그레이드 하기 - 2

|

1. 시작

MeeGoPad T07 을 구입하여 용돈벌이 용으로 잘 사용하고 있었습니다.

지금까지의 과정은 다음 링크들에 있습니다.


* MeeGoPad T07 4GB

http://chocoball.tistory.com/entry/Hardware-MeeGoPad-T07-4G-RAM


* MeeGoPad T07 히트싱크 붙이기

http://chocoball.tistory.com/entry/Hardware-MeeGoPad-T07-heatsink


* MeeGoPad 히트싱크 업그레이드 하기

http://chocoball.tistory.com/entry/Hardware-MeeGoPad-heatsink-upgrade


쿨링의 마지막 버전이 무식한 서버 heat sink 를 10원짜리 동전으로 붙이는 것이였습니다만,

고정하는 고무줄이 결국 열과 장시간 사용으로 끊어집니다.

고정이 안되네요.


다른 방도가 필요합니다.


원래는 구리를 녹여서 casting 하여 케이스를 직접 제작하기로 결심하고 시작했습니다.

밑그림을 그리고 전제 과정을 세워 봅니다.




일단 틀을 짜야 해서 각 구성품의 칫수도 재고 크레이로 틀도 떠 봅니다.

틀을 뜨면 대용품을 만들어 거푸집 제작에 사용할 수 있으니까요.



사진에서 보이듯 너무 오래 놔뒀더니만, 크레이 수분이 받데리를 녹이는군요.



얼추 틀을 만들어 보려 했으나, 일이 점점 커저만 갑니다.

일단 아주 쎈 불을 지피고 작업할 수 있는 공간 (마당) 이 없습니다.


여기까지 인가...



2. 구리

케스팅을 이용한 구리 케이스 제작은 상황이 되면 진행하기로 합니다.

히트싱크 자체를 일단 바꾸는 것으로 선회.


열 전도에 있어서는 싼 가격의 금속중에서는 copper (구리) 가 단연 으뜸입니다.

접점이 잘 되지 않는 heat sink 를 붙이는 것 보단, 구리로 된 heat sink 를 잘 붙이는 것이 효율이 좋다고 생각합니다.


그래서 AliExpress 에서 적당한 크기의 heat sink 를 찾아봅니다.


CPU는 아래 사진의 제품이 맞는것 같습니다.

https://ko.aliexpress.com/item/Free-shipping-8pcs-lot-13x12x5mm-Copper-Heatsink-Ram-Memory-Heat-sinks-Cooling-Xbox-360VGA-DDR/32255697067.html



그 외에 컨트롤러로 보이는, CPU 가 장착된 다른 면에 있는 chip 열기도 뜨거워

이 부분도 식혀야 하는데, 크기가 작은 heat sink 만 가능할 것 같습니다.


아쉽게도 구리는 아니지만, 아래 제품이 적당한 듯 합니다.

https://ko.aliexpress.com/item/10-PCS-Newest-9mm-x-9mm-x-12mm-Extruded-Aluminum-Heatsink-Heat-Sink-Cooling-Radiator-Free/32376853169.html



이제 적당한 제품을 찾았으니 주문 합니다.

항상 그렇지만 정신을 차려보면 언제나 결제가 완료되어 있습니다.



3. 도착

약 3주정도 걸린것 같습니다.

예상했던 대로의 품질입니다.



구리 제품이라 뭉툭 하군요. 믿음이 갑니다.



한가지 아쉬운 점이라면, 접촉면이 써멀 테이프라는 것 정도.

구리스를 바르고 장착하면 효율이 좋겠지만, 어쩔 수 없습니다.


작은 heat sink 도 잘 도착했습니다.



이 친구는 알루미늄이군요.



마감은 나쁘지 않은것 같습니다.

이제 장착해봐야 겠죠?



4. 장착

우선 기존의 heat sink 와 써멀을 말끔히 제거합니다.



기존에 붙여 있던 써멀 패드도 제거해야겠죠?


CPU에 하나 붙여 봅니다.

꽤 있어 보이네요.

형상으로 봐선 Raspberry Pi 에도 잘 맞을 듯 합니다.



CPU 옆에 있는, 문제가 많은 eMMC 에도 붙여 줍니다.

그리고 메모리에서는 열이 많이 나지 않으므로, 아까운 copper 보다는 알루미늄 히트싱크를 붙여 줍니다.



이제 반대편도 붙여 줍니다.

반대편에도 메모리가 있고, 하나 떨어져 있는 chip 은 아마 컨트롤러 일 듯 합니다만,

이 친구가 CPU 다음으로 뜨겁습니다.



다만 아쉬운 것은 이 chip 은 크기가 작아 copper heat sink 가 맞지 않습니다.

아쉬운 대로 9mm 알루미늄 heat sink 를 붙여 줍니다.




5. 전체 샷

Full 장착된  전체 샷 입니다.



꽤 괜찮쥬?



무식한 heat sink 보다는 깔끔해 진것 같습니다.




6. 성능

아래가 AIDA64 결과 입니다.



변화가 전혀 없습니다!


망했네요

지금까지 가장 좋았던 성능은 server heat sink 를 직접 붙일 때 였던것 같습니다.


뭔가 근본적인 해결이 필요한 것 같습니다.



FIN

이제 뭐하지?

And

Life | 고장난 지퍼를 고쳐보자

|

1. 문제발생

겨울동안 발바닥을 따뜻하게 해줬던 카펫을 빨고 수납하기로 합니다.


카페트는 청소기로 꼼꼼히 밀고, 밖에 나가서 먼지 털고, 세제를 푼 물에 담궈서 이틀정도 놔두고, 욕조에서 발로 밟아서 때를 빼고,

마지막으로 햇볓 좋은 베란다에서 이틀정도 돌려가며 말려야지만 그 과정이 끝납니다.


이렇게 공을 들인 만큼 다음 겨울이 올때 까지 잘 보관되어야 겠죠.


다만, 수납하는 커버의 zipper 가 빠져버렸습니다 !!!



원인은 zip 라인 소재 자체가 연질이고, 끝단을 잡아주는 바느질 부분도 빠진 것이였습니다.

또한, zipper 금속이 견고하지 못해 뒷쪽이 벌어지기도 했네요.


이 부분을 눌러서 바로 잡은 들, 또다시 같은 현상이 날 듯 합니다. 지속적으로 눌러준다면 금속 피로도가 쌓여 부러질 수도 있고.





2. 주문

대체품을 찾아야겠습니다.

일단 대략적인 치수를 구해봅니다.



이제, 우리의 친구 AliExpress 에서 검색해 봅니다.


후훗, 역시 고장난 zipper 를 수리해주는 부품이 있군요!

주저하지 않고 주문합니다. 한화로는 1,000원정도 하네요. 배송비 무료가 고마울 따름입니다.


https://ko.aliexpress.com/item/6-PCS-Bag-Universal-Instant-Fix-Zipper-Repair-Kit-Replacement-Zip-Slider-Teeth-Rescue-New-Design/32792940157.html?isOrigTitle=true





3. 도착

한달도 안되어 도착했습니다. 이정도면 준수한 편이죠.



내용물은 그냥 비닐에 쌓여서 왔습니다.

복잡한 제품이 아니니.



크기는 대/중/소 로 두개씩 들어 있습니다.



이제 작업에 들어갑니다.




4. 고쳐보자

우선 zip 라인의 두깨에 맞는 것을 찾아 봅니다.

중 크기가 맞네요.



대용품은 기존 라인에 낄 수 있도록 벌어지게 할 수 있습니다.

아래처럼 벌이고 라인에 맞춘 후, 똑딱이 처럼 다시 다물게 눌러주면 되는것 같습니다...



문제가 발생합니다...

일단 잘 끼워지지 않습니다. 미묘하게 폭이 맞지 않는 듯 합니다.


그 아래 작은것으로 하면 너무 뻑뻑하고.

맞는 사이즈로 해도 벌린 부분을 닫을 수가 없습니다.


그리고, 정작 포기하게 됩니다.

그 이유는 재질이 플라스틱이라 몇번 벌였다 닫았다 하면 밑부분 걸리는 부분이 바로 마모가 되어 헐렁해져 버립니다.

아놔...



이게 금속 재질이였으면 딱 좋았을 것을 플라스틱... 그것도 연질 플라스틱으로 하는 바람에 망했습니다.

몇 번의 시도를 했지만, 포기하기로 합니다...




5. 해결

그냥 기존에 빠져 나왔던 금속 재질의 zipper 를 살살 구부리고,

zip 라인 끝단을 잡고 있는 느슨한 실을 튿어서 수리 합니다.



여전히 오리지널 zipper 가 다시 구부러지고 zip 라인이 벌어질 수 있지만,

일단 이번에는 여기까지 하기로 합니다.


끝단을 신경 써서, 두꺼운 실로 이쁘게 꿰매어 줍니다.

맘에 들게 잘 되었습니다. :-)



분석을 좀 해보면, 알리 대용품은 zip 라인이 굵은것에는 잘 맞을 듯 하나,

이번 zip 라인같이 연하고 야들야글한 zip 라인에는 적합하지 않은것 같습니다.


아래 사진처럼 금속이나 굵은 zip 라인에는 딱 맞을 듯 합니다.




이번에 깨달은 교훈은, "zipper 는 금속 재질이어야 한다".... ㅠㅠ




FIN

이상 눈에 보이지 않는 집안일 하나 해결기 입니다.

바쁘다 바빠.

And

Hardware | Arduino 비접촉 온도센서 GY-906 MLX90614

|

1. 시작하기

오늘은 비접촉 온도센서인 MLX90614 를 가지고 놀아봅니다.


미키마우스같이 생겼네요.


뒷부분에 여러 보조 부품이 같이 실장되어 있어, Arduino 연결 시, 따로 콤포넌트를 추가하지 않아도 됩니다.





2. Library 추가하기

구동하기 위해서는 관련 library 를 추가해야 합니다.


- https://learn.adafruit.com/using-melexis-mlx90614-non-contact-sensors/wiring-and-test




3. 레이아웃

핀 연결은 다음과 같습니다.


- VIN : +3.3V

- GND : GND

- SCL : A5

- SDA : A4






4. 소스

Library 를 설치했으면, File > Example > Adafruit MXL90614 Library > mlxtest 를 가지고 이용할 수 있습니다.



/*************************************************** 
  This is a library example for the MLX90614 Temp Sensor

  Designed specifically to work with the MLX90614 sensors in the
  adafruit shop
  ----> https://www.adafruit.com/products/1748
  ----> https://www.adafruit.com/products/1749

  These sensors use I2C to communicate, 2 pins are required to  
  interface
  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/

#include 
#include 

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

void setup() {
  Serial.begin(9600);

  Serial.println("Adafruit MLX90614 test");  

  mlx.begin();  
}

void loop() {
  Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempC()); 
  Serial.print("*C\tObject = "); Serial.print(mlx.readObjectTempC()); Serial.println("*C");
  Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempF()); 
  Serial.print("*F\tObject = "); Serial.print(mlx.readObjectTempF()); Serial.println("*F");

  Serial.println();
  delay(500);
}


5. 결과

성공입니다.



다만, 다른 component 와 비교하여 단순히 온도만 내 주는건 좀 아쉽습니다.

특히 BMP280은 온도 외에, 기압, 고도도 나타내 주거든요.



6. 확장

아래 사이트를 보니, OLED 를 이용해서 표시해주는 코드를 발견했습니다.

이제 좀 있어 보이네요.


- http://www.arduinoprojects.net/lcd-projects/mlx90614-and-oled-display-example.php#codesyntax_1


바로 따라해 봅니다.



#include 
#include 
#include 
#include 
#include 
#include 
 
#define OLED_RESET 4
 
Adafruit_SSD1306 display(OLED_RESET);
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
 
//if (SSD1306_LCDHEIGHT != 32)
//error("Height incorrect, please fix Adafruit_SSD1306.h!");
//endif
 
void setup()   
{                
  Serial.begin(57600);
  Serial.println("Adafruit MLX90614 test");  
  mlx.begin();  
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C (for the 128x32)
}
 
 
void loop() 
{
    // Clear the buffer.
  display.clearDisplay();
 
  // text display tests
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.print("Ambient: ");
  display.print(mlx.readAmbientTempC()); 
  display.print(" c");
  display.setCursor(0,10);
  display.print("Object: ");
  display.print(mlx.readObjectTempC()); 
  display.print(" c");
  display.display();
  delay(2000);
  
}

잘 나오네요.

부품 2개를 연결하여 작동시킨 처음 케이스 입니다.



온도 센서 근처에 손가락을 가져가면 온도변화를 화면에 표시해 줍니다.




FIN

이제 뭘하지?

And
prev | 1 | ··· | 11 | 12 | 13 | 14 | 15 | next