'aliexpress'에 해당되는 글 152건

  1. 2017.09.05 Hardware | FTDI Serial Adapter 를 사용해 보자
  2. 2017.09.05 Hardware | NEO-6M GPS 를 구동해 보자 2
  3. 2017.08.28 Hardware | Probe Clip 을 사용해 보자
  4. 2017.08.17 Hardware | Resistor Network 을 사용해보자
  5. 2017.08.02 Hardware | Soil Moisture Sensor 구동해 보기
  6. 2017.07.31 Hardware | MB102 Breadboard Power Supply Module 를 사용해 보자
  7. 2017.07.30 Hardware | Raindrops 모듈 구동해 보기
  8. 2017.07.29 Hardware | 저항을 구매해 보자
  9. 2017.07.29 Hardware | DS18B20 온도센서 17
  10. 2017.07.23 Hardware | Arduino Micro 구입기

Hardware | FTDI Serial Adapter 를 사용해 보자

|

1. Flash Programming


무선 WIFI 모듈인 ESP8266 을 사용하여 wireless speaker 를 제작하려고 준비하고 있습니다.




그러기 위해서는 ESP8266 의 펌웨어를 프로그래밍 해줘야 하는데,

이를 위해서는 Serial Converter / Adapter 가 필요합니다.


이 Serial Adapter 는, 펌웨어 관련된 모든것에 사용되는 것 같습니다.

미리 알았더라면, 예전에 Flashrom writer 시에 사용했을 터인데...


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


이런 다방면의 활용성을 가지고 있으므로, 한두개 구비해 놓은게 좋을것 같다고 생각되어

한꺼번에 2개를 구입합니다.


동일한 제품을 구매하면 재미가 없으므로, 각각 다른 chip 을 사용한 adapter 를 구매합니다.




2. Silicon Labs CP2102


FT232 대용으로 나온 chip 입니다.

동작은 완벽히 호환되었습니다.


Spec. Sheet 는 다음과 같습니다.


CP2102-9.pdf


기존의 FT232RL breakout board 와 비교하여 pinout 들이 간략화 되어 있어

보드 자체의 크기도 작고, chip 도 소형화 되어 있습니다.


구매는 아래 link 에서 진행했어요.


https://ko.aliexpress.com/item/CJMCU-CP2102-MICRO-USB-to-UART-TTL-Module-6Pin-Serial-Converter-UART-STC-Replace-FT232-NEW/32801557756.html


가격은 1.02 USD 로 부담이 없고 무료 배송입니다.



아래는 사이트에서 보여준 사진 입니다.

Chip 에 SILABS CP2102 라고 적혀 있는 것을 확인할 수 있습니다.



도착샷 들입니다.



보통은 USB 인터페이스 지만, 이 부품은 microUSB 입니다.



뒷면입니다.



Windows 에 USB를 통하여 연결하면, 알아서 드라이버를 잡아 줍니다.



장치 관리자에서 COM port 를 꼭 확인하여, 나중에 어플에서 잡아줄 때 참고하면 되겠습니다.






3. FTDI FT232RL


그 이름 그대로의 제품 입니다.

Chip 은 FT232RL 이네요.



가격은 1.65 USD 로 역시 저렴합니다.


Spec. Sheet 는 다음과 같습니다.


FT232RL.pdf


참고로 fake FT232RL chip 이 존재한다 합니다. Fake 제품이라고 해서 문제는 발생되지 않는다고 합니다.

다만, 원래 생산자의 시장을 잠식하면서, 막대한 손해를 끼치겠죠.


가장 단순한 판변법은, chip 상면에 세겨진 각인이 laser 로 쓰였는지, 프린팅 되었는지의 구분이라고 하네요.


https://zeptobars.com/en/read/FTDI-FT232RL-real-vs-fake-supereal


Chip 을 줌업 해봤습니다.

잘 모르겠지만 laser 로 쓰여진 듯 합니다. 그 사이에 fake chip 생산자의 기술이 올라갔을지 모르겠습니다.



구입은 아래 link 에서 진행했습니다.


https://ko.aliexpress.com/item/1pcs-FT232RL-FTDI-USB-3-3V-5-5V-to-TTL-Serial-Adapter-Module-forArduino-Mini-Port/32650148276.html


아래는 도착샷 입니다.


일반적인 포장으로 잘 왔습니다.

정전기 방지 포장도 되어 있습니다.



FTDI 용으로는 가장 많이 쓰이는 보드가 아닐까 합니다.



재미있는걸 하나 발견했습니다.
뒷면에 제품명이 프린팅 되어 있는데, 도착한 제품에는 "YP-05" 라고 되어 있고,
제품 소개 사이트에는 "FTD1232" 이라고 표기되어 있습니다.

일단 다른것도 그렇지만, FTDI 의 "I" 부분을 숫자 "1" 로 고쳐쓴 센스가 엿보입니다. 라이센스 문제를 피해가기 위함이겠죠?



아래는 제품 소개 사이트 뒷면 :-D



Windows driver 는 자동으로 잡힙니다.



처음에는 "FT232R USB UART" 로 인식한 후, driver 가 인스톨 완료 되면 아래와 같이, "USB Serial Converter / Port" 로 변경됩니다.



장치 관리자에서는 "USB Serial Port" 라고 표시됩니다.






4. 구동


NEO-6M GPS 와 연결해본 사진 입니다.

사진에는 FT232RL 만 보이지만, CP2102 로도 완벽히 동일하게 작동하였습니다.



NEO-6M 과의 자세한 동작 영상들은 아래 link 에서 확인해 보세요.


http://chocoball.tistory.com/entry/Software-ublox-GPS-application





FIN

정신을 차려 보니, 점점 많은 부품들이 제 주위에 쌓여가고 있습니다.

And

Hardware | NEO-6M GPS 를 구동해 보자

|

1. GPS


우리 생활에 이제는 필수가 된 GPS.

모바일 기기라면 이제 GPS 는 어디든 달려 있는 시대 입니다.



이게 Arduino 용의 breakout board 로 나와 줬네요.

센서에 목말라 있는 저로써는 꼭 구동해 보고싶은 센서 입니다.





2. 주문


AliExpress 에서 검색해 보면, 대략 3가지 제품으로 나뒵니다.

- Drone 용 소형 GPS : NEO-M8N

- 저가용 GPS : NEO-6M

- 그 외 안테나, 연장선 등의 부품


대략 저가용 GPS 인 NEO-6M 을 빼면, NEO-M8N 인데, 1만원이 넘어가는 나름 고가 센서가 됩니다.

우선 구동만을 확인해 볼 예정이므로, NEO-6M 을 구입합니다.


* NEO-6M 본체


https://ko.aliexpress.com/item/2pcs-lot-GY-NEO6MV2-new-GPS-module-with-Flight-Control-Flight-Control-EEPROM-MWC-APM2-5/1811853522.html



6천원 정도면, 밥 한끼 정도의 가격이므로, 취미의 즐거움을 위해 희생해 봅니다.


구입은 Arduino 취미를 시작한 작년 말에 구입했지만,

정작 사용해 보기까지는 시간이 걸렸습니다.


그 이유는 달려있는 안테나가 너무 짧아, 연장선을 구입하고, 다른 센서가지고 놀면서 늘어졌습니다.

GPS 는 좀 진득하게 사용해 봐야 할 것 같았거든요.



* 안테나 연장


https://ko.aliexpress.com/item/2016-New-GPS-Active-Remote-Antenna-Aerial-Connector-1575-42MHz-SMA-connector-For-3M/32616362445.html


PC 에 연결하여 확인하려면 외부로 가지고 나가야 하는데, laptop 이 필수 입니다.

구동 완료가 될 때까지 매번 밖에 나갈 수는 없으므로 연장 안테나를 구입합니다.



* 커넥터


https://ko.aliexpress.com/item/RF-pigtail-jumper-cable-6in-6-IPX-IPEX-I-PEX-U-FL-MHF-4-to-SMA/32357824395.html


연장 안테나의 끝 단자인 SMA Male connector 랑 breakout board 와의 연결을 위해,

SMA female connector 를 구입합니다.



다만 여기서 사고가 발생합니다.

바로 breakout board 에 있는 단자 크기를 몰라, 그냥 주문했더니, 맞지 않았습니다.


원래 breakout board 의 안테나 단자를 감싸야 하는데, 그 속으로 들어가버릴 정도로 작았습니다.

구매 사이트 사진에는 MHF-4 도 표시되어 있지만, 사실은 U. FL 규격을 구입해야 했었습니다.



결국 U. FL 규격의 SMA female 단자도 나중에 구입하지만,

또 기다려야 하니 좀이 쑤셔서 그냥 진행해 보기로 합니다.




3. 도착


도착은 3주정도 걸린 듯 합니다.



구성품은 NEO-6M breakout board 와 U. FL 커넥터가 달린 안테나 로 되어 있습니다.



여기에 문제의 "SMA female : MHF-4" 점퍼 입니다.



배송은 참 잘 왔습니다.



MHF-4 connector 는 WIFI 모듈에 자주 쓰이는 규격이라 아니, 나중에 또 쓸 일이 있겠죠?



판매자의 별 5개 요청 편지.

AliExpress 입점상들도 경쟁이 치열해지고 평가에 의해 매출이 달라지므로 신경을 많이 쓰는것 같습니다.

역시 글로벌로 장사를 하면, 사용자 피드백의 중요함이 사업에 있어서 크리티컬 하다는 것을 알 수 있습니다.


장사꾼들인 중국인들에게는 배울게 많습니다.



연장 안테나 모듀입니다.



배송은 잘 왔습니다.



이쪽 면이 자석으로 되어 있어서 차량이나 난간에 잘 고정이 됩니다.



난간에는 이렇게 설치 되었습니다.

왼쪽의 안테나는 FlightAware 용으로 세워진 안테나 입니다.

http://chocoball.tistory.com/entry/Hardware-PiAware-FlightAware





4. MHF-4


문제의 MHF-4 단자에 대해 살펴보기로 합니다.

구성품으로 달려있던 안테나 단자와 비교샷 입니다.


크기 자체의 차이로 따져 보면, 구성품의 connector 는 "U. FL" 규격으로 보입니다.

자세히 들여다 보면, 중심부에 꽂히는 심의 크기는 양쪽다 (MHF-4 / U. FL) 같아 보입니다.

여기서 착안하여 그냥 사용해 보기로 합니다.



원래는 이렇게 연결해서 사용됩니다.



U. FL 규격으로, breakout board 와 연결된 모습입니다.

외곽 금속을 커넥터가 잘 감싸 줘서 확실하게 고정이 되는 구조입니다.

이렇게 연결하면 손톱으로 튕기지 않는 한, 잘 붙어 있습니다.



SMA female : MHF-4 규격의 점퍼와 연결한 모습입니다.

Breakout 보드쪽 커넥터의 외경이 점퍼 외경을 반대로 감싸는 구조가 됩니다.

전기적 신호는 문제 없겠지만, 많이 헐겁습니다. 조금만 힘이 가해져도 금방 분리가 되어 버립니다. (진행하면서 가장 스트레스)



다시 주문한 "SMA-female : U. FL" 단자는 아직 도착하지 않았지만,

아래 구성처럼 연결하여 진행합니다.





5. Arduino 와 연결


Pin 들을 납땜해서 사용해도 되지만, 향후 어떤 보드에 실장하게 될 지 모르는지라,

납땜하지 않고 Probe Clip 을 이용하여 연결합니다.


Probe Clip 에 대해서는 다음 link 를 참조해 주세요.

http://chocoball.tistory.com/entry/Hardware-Probe-Clip



Arduino 와 연결된 모습입니다.





6. Layout


Pin 연결 정보 입니다.


    NEO-6M   | Arduino Nano
----------------------------
     VCC     |     3.3V
     RX      |     D9
     TX      |     D10
     GND     |     GND
----------------------------


보드 연결선은 다음과 같이 하면 됩니다.





7. Libaray 및 Sketch


여기서부터는 아래 사이트를 참고 하였습니다.


http://www.instructables.com/id/How-to-Communicate-Neo-6M-GPS-to-Arduino/


사전에 필요한 Library 는 다음 두가지 입니다.

미리 Arduino Library 폴더에 카피해 놓습니다.


* TinyGPS

http://arduiniana.org/libraries/tinygps/

https://github.com/mikalhart/TinyGPS


* SoftwareSerial

https://cdn.instructables.com/ORIG/F8C/OHR4/IVHQK4BI/F8COHR4IVHQK4BI.rar


위의 두 Library 가 준비되었다면, 아래 sketch 를 업로드해서 구동시킬 수 있습니다.


/*********************
 *10 to GPS Module TX*
 *09 to GPS Module RX*
 *********************/

#include "SoftwareSerial.h"
#include "TinyGPS.h"

SoftwareSerial mySerial(10, 9);
TinyGPS gps;

void gpsdump(TinyGPS &gps);
void printFloat(double f, int digits = 2);

void setup() {
	// Open serial communications and wait for port to open:
	Serial.begin(9600);
	// set the data rate for the SoftwareSerial port
	mySerial.begin(9600);
	delay(1000);
	Serial.println("uBlox Neo 6M");
	Serial.print("Testing TinyGPS library v. "); Serial.println(TinyGPS::library_version());
	Serial.println("by Mikal Hart");
	Serial.println();
	Serial.print("Sizeof(gpsobject) = "); 
	Serial.println(sizeof(TinyGPS));
	Serial.println(); 
}

void loop() // run over and over
{
	bool newdata = false;
	unsigned long start = millis();
	// Every 5 seconds we print an update
	while (millis() - start < 5000) {
		if (mySerial.available()) {
			char c = mySerial.read();
			//Serial.print(c); // uncomment to see raw GPS data
			if (gps.encode(c)) {
				newdata = true;
				break; // uncomment to print new data immediately!
			}
		}
	}
  
	if (newdata) {
		Serial.println("Acquired Data");
		Serial.println("-------------");
		gpsdump(gps);
		Serial.println("-------------");
		Serial.println();
	}
}

void gpsdump(TinyGPS &gps) {
  long lat, lon;
  float flat, flon;
  unsigned long age, date, time, chars;
  int year;
  byte month, day, hour, minute, second, hundredths;
  unsigned short sentences, failed;

  gps.get_position(&lat, &lon, &age);
  Serial.print("Lat/Long(10^-5 deg): "); Serial.print(lat); Serial.print(", "); Serial.print(lon); 
  Serial.print(" Fix age: "); Serial.print(age); Serial.println("ms.");
  
  // On Arduino, GPS characters may be lost during lengthy Serial.print()
  // On Teensy, Serial prints to USB, which has large output buffering and
  //   runs very fast, so it's not necessary to worry about missing 4800
  //   baud GPS characters.

  gps.f_get_position(&flat, &flon, &age);
  Serial.print("Lat/Long(float): "); printFloat(flat, 5); Serial.print(", "); printFloat(flon, 5);
    Serial.print(" Fix age: "); Serial.print(age); Serial.println("ms.");

  gps.get_datetime(&date, &time, &age);
  Serial.print("Date(ddmmyy): "); Serial.print(date); Serial.print(" Time(hhmmsscc): ");
    Serial.print(time);
  Serial.print(" Fix age: "); Serial.print(age); Serial.println("ms.");

  gps.crack_datetime(&year, &month, &day, &hour, &minute, &second, &hundredths, &age);
  Serial.print("Date: "); Serial.print(static_cast(month)); Serial.print("/"); 
    Serial.print(static_cast(day)); Serial.print("/"); Serial.print(year);
  Serial.print("  Time: "); Serial.print(static_cast(hour+8));  Serial.print(":"); //Serial.print("UTC +08:00 Malaysia");
    Serial.print(static_cast(minute)); Serial.print(":"); Serial.print(static_cast(second));
    Serial.print("."); Serial.print(static_cast(hundredths)); Serial.print(" UTC +08:00 Malaysia");
  Serial.print("  Fix age: ");  Serial.print(age); Serial.println("ms.");

  Serial.print("Alt(cm): "); Serial.print(gps.altitude()); Serial.print(" Course(10^-2 deg): ");
    Serial.print(gps.course()); Serial.print(" Speed(10^-2 knots): "); Serial.println(gps.speed());
  Serial.print("Alt(float): "); printFloat(gps.f_altitude()); Serial.print(" Course(float): ");
    printFloat(gps.f_course()); Serial.println();
  Serial.print("Speed(knots): "); printFloat(gps.f_speed_knots()); Serial.print(" (mph): ");
    printFloat(gps.f_speed_mph());
  Serial.print(" (mps): "); printFloat(gps.f_speed_mps()); Serial.print(" (kmph): ");
    printFloat(gps.f_speed_kmph()); Serial.println();

  gps.stats(&chars, &sentences, &failed);
  Serial.print("Stats: characters: "); Serial.print(chars); Serial.print(" sentences: ");
    Serial.print(sentences); Serial.print(" failed checksum: "); Serial.println(failed);
}

void printFloat(double number, int digits) {
	// Handle negative numbers
	if (number < 0.0) {
		Serial.print('-');
		number = -number;
	}

  // Round correctly so that print(1.999, 2) prints as "2.00"
  double rounding = 0.5;
  for (uint8_t i=0; i 0)
    Serial.print("."); 

  // Extract digits from the remainder one at a time
  while (digits-- > 0) 
  {
    remainder *= 10.0;
    int toPrint = int(remainder);
    Serial.print(toPrint);
    remainder -= toPrint;
  }
}





8. 구동


실제 구동 영상입니다.

신호를 받기 시작하면 GPS의 LED 도 깜빡이면서 구동되고 있다는 것을 알 수 있습니다.



Arduino IDE 의 Serial Monitor 에서 아래와 같은 정보가 스크롤 됩니다.



정보를 보면 제대로 GPS 위성과 통신을 하는 것 같습니다.

확실히 베란다 난간에 GPS 안테나를 붙이니 정보를 잘 받네요.





FIN

일상 생활에서 GPS는 필수 기기 입니다.

눈에 보이지 않았던 중간 단계를 확인할 수 있어서 좋았습니다.





Update

"SMA Female - U. FL" 어뎁터가 도착했습니다.


딱 봐도 굵기가 다릅니다.

역시 신호와 전류는 두꺼운게 좋습니다.



커넥터 부분을 비교해 봤어요.

제일 밑에가 부속으로 딸려 있던 안테나, 중간이 잘못 구입한 MHF-3 규격, 윗부분이 새로 구입한 U. FL 규격 사진입니다.



전체 비교샷 입니다.



NEO-6M 에 바로 결속해 봤습니다.

딱 맞습니다. 손톱으로 의도적으로 뜯지 않는 한, 튼튼하게 결속되어 있습니다.



And

Hardware | Probe Clip 을 사용해 보자

|

1. Probe Clip


여러가지 sensor 들을 구입하다 보면, male pin 들이 납땜되지 않은 상태로 배달이 됩니다.



이건 이것대로 좋은 것 같습니다.

빵판을 이용하여 동작 확인이 아닌, 실장을 할 때에는 male pin 이 걸리적 거릴 수도 있고,

구부러진 pin 을 사용하는게 좋을 때도 있는 등, 상황이 바뀌기 때문이지요.


이를 해결하기 위해, Probe Clip 을 구매해 보기로 합니다.




2. Big Size Round Single Hook Clip for Test Probe


이름이 긴건 AliExpress 에서 그렇게 팔기 때문입니다.

사이즈가 Big Size 라고는 하지만, 사진상으로 적당해 보입니다.




다른 부품들과 함께 잘 도착했습니다.



구성물이 10개가 들어 있어서 왠만한 jumper 사용시 갯수는 충분할 것 같습니다.



개별 줌샷 입니다. 모양은 아주 단순합니다.



밑부분은 jumper 선을 체결할 수 있는 금속과 그 선을 밖으로 뺄 수 있는 구멍이 뚫려 있습니다.



Jumper 선을 체결할 수 있도록 되어 있습니다.

다만, 조금 복잡한 구조로 되어 있는데, 궂이 이럴 필요가 있나 싶습니다.

아마 좀더 복잡한 구조가 있는데, 간단하게 만들어 팔고 있는게 아닌가 합니다.

생산할 때는 기존 판금을 사용하면 추가 비용은 안들 터이니까요.



밑부분을 누르면 이렇게 hook 이 튀어 나옵니다. 이부분을 원하는 부분에 걸면 전기적으로 연결되는 것입니다.





3. Big Size 의 문제


Big Size 인 만큼, sensor 들의 pin 체결 구멍에 조금 큰 것이 문제입니다.

Male pin 의 간격은 2.54mm 인데, 두개를 동시에 연결하려면 hook 부분의 금속 자체도 잘 안들어갈 뿐만 아니라

뒤에 누르는 둥근 부분도 커서 간섭이 큽니다.


매번 귀찮다 하더라도 참고 쓰다가 좀더 작은 사이즈가 없나 찾아보게 됩니다.




4. Mini Grabber SMD IC Hook Probe Jumber Test Clip


제품명이 긴것은 그렇게 느끼는 것 뿐입니다.

가격은 비슷하나 갯수가 6개로 파는 제품을 찾았습니다.



이 제품은 SMD IC 다리들에게 걸 수 있도록 만들었다 하니,

원하는 크기에 딱 맞을 듯 합니다.


이런 시행착오을 겪어야 하는게 좀 번거롭습니다만, 이게 인생이라고 생각하고 주문합니다.




5. 도착


요즘 AliExpress 는 대략 2주 전후로 도착합니다.

예전에는 한달은 기본이었는데 말이죠.



궁딩이 부분을 누르면 앞에 hook 모양이 아닌, 집게 모양처럼 튀어 나옵니다.

의외로 잡는 힘이 쎄서 잘 고정되게 만들었습니다.

물론 크기도 작습니다.



궁딩이 부분의 플라스틱을 분리하면, 전선을 결합할 수 있는 구멍이 나옵니다.

구조도 단순하네요.





6. 전선 연결


각각의 색에 맞추어 jumper 선을 골라 주었습니다.

원래 양쪽에 pin 이 달려있는 breadboard 전용 jumber 입니다만, pin 부분을 잘라내고 피복을 벗겨 구리선을 노출시킨 후,

probe clip 의 동그란 구멍이 있는 밑부분에 말아주고 납땜을 해주었습니다.


이쁘게 되었네요! 만족스럽습니다.





7. 활용해 보기


구조적으로 Transistor Tester 에 Resistor Network 같은 부품은 측정할 수 없었으나,

이제 쉽게 할 수 있어요!


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



이제 원하는 sensor 에 직접 연결해 봅니다.



Big Size Clip 으로 했을 때에는 접점이 틀어지거나, 간섭으로 체결이 빠졌었는데,

이 mini Grabber 는 잡는 부분이 작을 뿐만 아니라, 힘도 좋아서 좀더 잘 고정이 됩니다.



전선 반대쪽에 pin 이 연결되어 있어서, 이제 편하게 빵판 활용시 sensor 동작 확인을 할 수 있을것 같습니다.




FIN

자 다음 센서~

And

Hardware | Resistor Network 을 사용해보자

|

1. LED bargraph

LED bargraph 를 이용하여 progress bar 를 표현할 수 있습니다.

바로 Aliexpress 에서 구매해서 놀고 있었습니다.


http://chocoball.tistory.com/entry/Hardware-LED-bar-graph


LED bargraph 는 LED 들을 하나의 뭉치로 만든 제품이지만,

LED 의 특성상 전압/전류를 제한하기 위해 필수로 저항을 달게 되어 있습니다.


그래서 LED bargraph 에는 다리 하나하나에 저항을 달아줘야 합니다.

당연히 아래와 같이 붙여주거나 전선의 스파게티화를 볼 수 있습니다.



그러던 중, 응?!!!!!

아래와 같은 사진을 접하게 됩니다.

이리 깔끔해 질 수 있다니!!!



확인해보니, "Resistor Network" 이라는 부품이었습니다.

예전 90년대의 PC mainboard 에도 많이 보았던 부품이 이것이었구나... 라고 추억에 젖어 봅니다.



점이 있는 부분이 공통선이고, 각각의 다리가 하나의 저항 역할을 합니다.

머리를 잘 쓴 제품이네요.



Resistor network 을 일반 저항을 이용해서 만들면 다음과 같다고 하네요.





2. 주문

바로 AliExpress 에서 제품을 찾아 봅니다.

LED 에는 보통 220 Ohm 이나 330 Ohm 이 많이 쓰이는 것 같습니다.


220 / 330 짜리를 주문합니다.

330 짜리는 나중에 LED 8x8 matrix 에서도 사용해야 해서 미리 주문해 놓습니다.



위의 제품은 331J 라고 표시된 제품인데, 의미는 330 Ohm 에 5% 의 오차라는 뜻이라 합니다.





3. 스펙

잠깐 스펙에 대해서 알아보도로 하죠.

참고한 문서는 다음과 같습니다.


 L-373215.pdf


Resistor network 은 단순한 "-1 Circuit Based" 와 각각을 짝으로 맟준 "-3 Circuit Isolated" 가 있고,

"-5 Circuit Dual Terminator" 등이 있다고 합니다.



넘버링의 의미는 다음과 같습니다.

마지막 숫자는 맨 뒤에 "0" 이 몇개가 오는지와, "J" 는 5% 의 의미랍니다.



새로운 것을 또 공부하게 됩니다. 즐겁네요.




4. 도착

부품이 도착하여 여러가지 확인해 봤습니다.



50개 단위가 적당할 것 같아서 50개 묶음을 주문했더랬습니다.

낱개의 사진입니다. 쪼만쪼만한게 귀엽네요.



220 Ohm 사진도 올려 봅니다.



330 Ohm 의 실제 저항을 측정해 봤습니다.

일반 저항보다 정도가 더 좋습니다.

아마 허용 와트(W) 용량은 작겠지만, 정도는 정말 좋네요.





5. 연결해 보자

LED bargraph 에 연결해 봤습니다.



한번에 하나밖에 점등을 못시켰는데, 이제는 한꺼번에 LED 를 킬 수 있습니다!

역시 좋네요.


GND 연결선들도 복잡하여 모두 resistor network 으로 대체해 봅니다.

전류나 전압이 떨어지겠지만 LED 점등에는 문제 없을것 같아, +/- 모두 resistor network 를 연결해 봅니다.



완전 깔끔해 졌습니다. 맙소사.




FIN

74HC595 칩이 도착하면, 이제 대망의 arduino 와 연결하여 컨트롤 해볼 예정입니다.

아... 너무 즐겁습니다.

And

Hardware | Soil Moisture Sensor 구동해 보기

|

1. 농작물 automation

향후 나이를 먹으면, 농사를 지을 생각입니다.

다만, 전자 기기 경험과 IT 경력을 이용하여 가능한 전자동으로 하고싶습니다.


일조량, 물주기, 항온 항습, 통풍, 영양소 확인 등등...

그 목적을 위해 오늘도 Arduino 를 이용하여 열씸히 놀고 있습니다.


이 농사 automation 에서 토양의 수분 확인은 필수겠죠?

그래서 관련 센서들을 평소 찾아 다녔습니다.




2. Soil Moisture Sensor

네, 맞습니다. 한글로 번역하면 "토양 수분 감지기" 정도가 되겠습니다.

토양에 자동으로 물을 주려면 수분의 level 을 잘 감지해 내야겠죠?


AliExpress 에서 찾아 봅니다.



센서부에 금박이 칠해져 있고, 품질 좋은 것으로 호평받는 RobotDyn 사의 제품이 있습니다.

1.28 USD !!! 배송비 무료. 감사합니닷.




3. 도착

잊고 있었더니만 어느샌가 도착했습니다.



비닐 포장도 깔끔하게 되어 있고, 프린팅도 괜찮습니다.

간만에 괜찮은 품질의 제품을 만난것 같습니다.



개봉한 샷 입니다.



금빛 찬란하군요.





4. Layout

Pin 접속은 다음과 같습니다.


 Soil Moisture Sensor | Arduino Nano
-------------------------------------
          OUT         |     5V
          GND         |     GND
          VCC         |     D2
-------------------------------------


 128X64 OLED | Arduino Nano
----------------------------
     GND     |     GND
     VCC     |     3.3V
     SDA     |     A4
     SDL     |     A5
----------------------------

RobotDyn 제품의 원래 오리지날은 SparkFun 사의 "Soil Moisture Sensor" 일지도 모르겠습니다.


https://learn.sparkfun.com/tutorials/soil-moisture-sensor-hookup-guide


외관이 너무 비슷합니다.

그래서 고맙게도 IDE sketch 를 그대로 가져다 써도 잘 동작합니다.






5. Source

Sketch 는 다음과 같습니다.

OLED 를 붙여서 동작시키게 조금 수정하였습니다.


/*  Soil Mositure Basic Example
    This sketch was written by SparkFun Electronics
    Joel Bartlett 
    August 31, 2015

    Basic skecth to print out soil moisture values to the Serial Monitor 

    Released under the MIT License(http://opensource.org/licenses/MIT)
*/

#include "SPI.h"
#include "Wire.h"
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"
#include "stdint.h"
 
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);


int val = 0; // value for storing moisture value 
int soilPin = A0; // declare a variable for the soil moisture sensor 
int soilPower = 7; // variable for Soil moisture Power

// rather than powering the sensor through the 3.3V or 5V pins, 
// we'll use a digital pin to power the sensor. This will 
// prevent corrosion of the sensor as it sits in the soil. 

void setup() {
	Serial.begin(57600); // open serial over USB
	
	pinMode(soilPower, OUTPUT); // set D7 as an OUTPUT
	digitalWrite(soilPower, LOW); // set to LOW so no power is flowing through the sensor
	display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
}

void loop() {
	// get soil moisture value from the function below and print it
	int result = readSoil();
	Serial.print("Soil Moisture = ");    
	Serial.println(result);

	// clear the buffer
	display.clearDisplay();
	
	// text display tests
	display.setTextSize(2);
	display.setTextColor(WHITE);
	display.setCursor(0,0);
	display.print("Soil\n");
	display.print("Moisture\n");
	isplay.print("\n  == ");
	display.print(result);
	
	display.display();

	// this 1 second timefrme is used so you can test the sensor and see it change in real-time.
	// for in-plant applications, you will want to take readings much less frequently.
	delay(1000); // take a reading every second
}

// this is a function used to get the soil moisture content
int readSoil() {
	digitalWrite(soilPower, HIGH); // turn D7 "On"
	delay(10); // wait 10 milliseconds 
	val = analogRead(soilPin); // read the SIG value form sensor 
	digitalWrite(soilPower, LOW); // turn D7 "Off"
	return val; // send current moisture value
}


출처는 SparkFun 사의 위의 사이트 입니다.




6. 동작 확인

Pin 을 연결하고 sketch 를 업로드 한다음 제대로 동작하는지 확인해 봅니다.



화분에 물주고 확인해야 하는데, 일이 커지므로 손기운으로 측정으로 해봅니다.

잘 되네요!!!



실측값을 토대로 실제로 흙속에 넣고 해봐야겟지만, 동작확인이 되었으니 충분합니다.


아마 흙속에 계속 넣고 있으면, 금박 등이 다 삵아서 제대로 동작되지 않겠죠?

지속적인 사용은 못할 듯 합니다.

실제 농작물 automation 에 사용하려면 수분이 직접 닫지 않고도 측정되는 센서가 필요할 듯 합니다.


동영상도 한번 찍어봤습니다.


간단하게 잘 동작하네요.




FIN

아~ 나의 농작 automation~!!!

And

Hardware | MB102 Breadboard Power Supply Module 를 사용해 보자

|

1. 빵판

전자부품을 이용하여 놀려면 빵판이 필요합니다.

AliExpress 에서 빵판을 구매하기로 하고 돌아봅니다.



큰것도 있고 작은것도 있고...

큰거는 부담스럽고, 작은 것은 프로토타입 만드는 용도 정도라, 반쪽 사이즈를 찾아봅니다.


당연히 있네요.




2. 주문

AliExpress 에서 딱 적당한 크기의 빵판을 팔고 있습니다.


https://ko.aliexpress.com/item/Breadboard-830-Point-Solderless-PCB-Bread-Board-MB-102-MB102-Test-Develop-DIY/32339925888.html



특히 좋은 것은 몇 개의 lead 선들과 전원 모듈을 같이 동봉되어 있네요.



바로 주문합니다. 무료배송인지는 항상 확인합니다.




3. MB102 Power Supply Module

주문한 빵판에는 MB102 Power Supply Module 이라는, 전원 공급장치가 있습니다.

Arduino 에 필요한 5V/3.3V 는 물론이거니와 USB를 통한 전원도 공급하는 모양입니다.


원래는 YwRobot 이라는 회사에서 정식으로 제조되는 물건인데,

중국분들이 클론을 제조해 팔고 있는 듯 합니다.


요렇코롬 생겼습니다.

빵판의 +/- 에 딱 다리가 맞게 되어 있습니다.



한쪽에 다리가 두개씩 되어 있습니다.

다음과 같이 끼우면 됩니다.



뒷면입니다.

워낙 구조가 간단하다 보니 그렇게 특별하지 않아 보입니다.





4. 구동

전원을 인가해 봅니다.

단, 어느정도의 voltage 를 넣어도 되는지 아무런 설명서가 동봉되어 있지 않습니다.

뭐 늘상 그러려니 하고 인터넷을 뒤져 봅니다.


뭔가 복잡한 회로도가 나왔습니다.

각 단자들의 연결과 부품들이 나와 있습니다.

이렇게 잘 나와 있으니 카피 뜨는건 정말 쉬울 듯 합니다.



좀더 찾아보니 input voltage 를 명시한 그림이 있네요.

그렇습니다. "6V ~ 12V" 를 DC로 입력하라고 그러네요.



적당한 DC adapter 를 골라서 꼽아 줍니다.

집에는 9V / 1A 어뎁터가 있어, 이것을 이용합니다.





5. 전압 확인

전원을 인가했을 때, 전압이 제대로 나오는지 확인해 봅니다.

우선, 점퍼를 3.3V 으로 옮겨 놓고, 빵판의 전원 라인에 3.3V 가 되는지 확인해 봅니다.


3.273V... 뭐 적정한것 같습니다.



이번에는 5V 에 점퍼를 옮겨 놓고 측정해 봅니다.

4.94V... 나쁘지 않은 것 같습니다.



빵판의 전원선에 연결하는 것 외에

보드상에서 바로 3.3V / 5V / GND 핀으로만 되어 있는 부분에 연결해 봅니다.


3.3V / GND 를 확인해 보면, 3.273V 가 나옵니다.

어찌보면 당연하네요. 동일한 레귤레이터를 거쳐서 3.3V / 5V 를 만들어 내므로, 전원 리드선에서 나오는 값과 같을 수밖에 없습니다.



아쉬우니 5V / GND 핀도 측정해 봅니다.

동일하게 4.94V 가 측정됩니다.



USB 를 통한 전원 공급도 문제 없는지 봅니다.

Arduino Micro 가 잘 동작하네요.



5V / GND 와 USB를 동시에 사용했을때도 검사해 봅니다.

특별히 로드를 걸지 않아서 적절한 확인인지는 모르겠지만, 문제 없이 잘 나옵니다.



특별히 문제 없고 괜찮은 듯 합니다.

OLED 같이 항상 그 자리에 놓고 전원을 인가하는 module 일 경우는, 3.3V / GND 에 항상 연결해 놓고 사용해도 편할 것 같습니다.




6. 주의사항

아래 URL 에서 자세한 주의사항 및 spec. 정보가 있었습니다.


http://www.petervis.com/Raspberry_PI/Breadboard_Power_Supply/YwRobot_Breadboard_Power_Supply.html



이 사이트에서도 제품을 받고 사양을 믿고 바로 사용하지 말고, 꼭 디지털 미터기로 측정한 다음 사용해라고 나와 있습니다.

또한 어뎁터도 가능한 6.5V 근처의 것을 사용하라고 권장하고 있습니다.

이는, 어차피 5V / 3.3V 로 떨어트려 사용하므로, 레귤레이터에 무리가 없게 하려면, 낮으면 낮을 수록 좋을것 같습니다.


흠흠... 그렇군.





FIN

하나씩 알아가는 재미가 쏠쏠합니다.

And

Hardware | Raindrops 모듈 구동해 보기

|

1. 자동 와이퍼

요즘 차들은 비가 오기시작하면 자동으로 알아서 와이퍼가 움직여 줍니다.

또한 비의 양에 따라 와이퍼의 속도도 조절되죠.


어떤 센서가 있는지 찾다 보니, "Raindrop Senseor" 라는게 있네요.


안해볼 이유를 찾을 수 없습니다. 바로 구입해야죠.




2. 주문

역시 나의 친구 AliExpress. 역시 좋은게 있네요.



고마워요 무료배송.




3. 도착

도착샷 입니다.



잘(?) 포장해서 왔군요. 뭐 항상 이렇습니다.



검출부와 제어부로 되어 있네요.



센서가 양면으로 되어 있습니다.


컨트롤부의 자세한 사진입니다.

전원 LED가 있고, 비를 인식할때 켜지는 LED가 따로 있습니다.

감도 조절도 할 수 있네요.



뒷면은 MH-Sensor-Serise 라고 적혀 있습니다.

이게 Raindrop 전용이 아니라, +/- 를 통해서 입력받는 센서들 정보를 Arduino / Raspberry Pi 와 통신하기 위한 모듈로 보입니다.



다른 센서에서도 같이 쓰이는 사진을 발견했습니다. 완벽하게 똑같네요.



아래는 사양서 입니다.


rain_sensor_module.pdf





4. Layout

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


 MH-Sensor-Series | Arduino Nano
---------------------------------
        VCC       |     5V
        GND       |     GND
         D0       |     D2
         A0       |     A0
---------------------------------


 128X64 OLED | Arduino Nano
----------------------------
     GND     |     GND
     VCC     |     3.3V
     SDA     |     A4
     SDL     |     A5
----------------------------


빵판 구성입니다.



이번에는 OLED 도 같이 연결해 봤습니다.




5. Sketch

소스 스케치 입니다.


#include "SPI.h"
#include "Wire.h"
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"
#include "stdint.h"

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

int nRainIn = A1;
int nRainDigitalIn = 2;
int nRainVal;
boolean bIsRaining = false;
String strRaining;

void setup() {
	Serial.begin(57600);
	pinMode(2,INPUT);
	display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
}
void loop() {
	nRainVal = analogRead(nRainIn);
	bIsRaining = !(digitalRead(nRainDigitalIn));
	
	if(bIsRaining) {
		strRaining = "YES";
	} else {
		strRaining = "NO";
	}
	
	// clear the buffer
	display.clearDisplay();
	
	Serial.print("Raining: ");
	Serial.print(strRaining);  
	Serial.print("\t Moisture Level: ");
	Serial.println(nRainVal);
	
	// text display tests
	display.setTextSize(1);
	display.setTextColor(WHITE);
	display.setCursor(0,0);
	display.print("Raining: ");
	display.print(strRaining);
	display.setCursor(0,10);
	display.print("Moisture Level: ");
	display.print(nRainVal);
	display.display();
	
	delay(1000);
}


Serial Monitor 를 사용하지 않고 OLED 를 사용하니, PC 를 키지 않아도 좋네요.





6. 결과

1초 간격으로 비가 감지되었는지, 습도는 어느정도인지 표시해 줍니다.

이때는 LED가 전원쪽에만 켜집니다.



감지부에 물이 떨어지면, 꺼져있던 LED가 켜지고 비가 온다고 "YES" 로 표시가 변합니다.



OLED 와 LED 를 확대한 사진입니다.



물을 닦으면 바로 Raining 부분이 "NO" 로 변경됩니다.

감도는 좋네요.


아래는 과정을 보여주는 동영상 입니다.






FIN

이번 비오는 센서는 전기와 물이라는 서로 친화적인 특성인지 몰라도

반응이 아주 좋았습니다.

And

Hardware | 저항을 구매해 보자

|

1. 저항이 필요해

저항은 센서를 구동함에 있어 전압을 맞추기 위해 여러모로 필요합니다.

특히 LED 나 온도센서들은 민감해서 꼭 저항이 필수 입니다.


Arduino 취미에 있어서는 몇개쯤 구입해 놔야겠죠?

(콘덴서도 필요한데...)




2. 저항의 종류

AliExpress 에서 쉽게 찾아볼 수 있는 저항에는 두가지가 있습니다.

우리가 학교다닐 때 쉽게 접했던 누런색 바탕의 저항이 "탄소" 저항입니다.

요즘 전자기기를 분해해 보면 파란색 바탕의 저항이 "메탈" 저항입니다.


어떤것을 구매하는게 좋을까요? 찾아 봤습니다.


* 탄소 피막 저항

저렴하고 널리 쓰이는 유형으로 세라믹 기판에 탄소화합물 피막을 입힌 것.

열에 의한 값이 변하여, 정확도가 중요한 회로에서는 메탈 피막 저항기를 대체해서는 안된다고 합니다.


* 메탈 피막 저항

세라믹 봉에 금속 박을 얇게 증착시키고 홈을 파서 저항으로 만든 것.

1%의 정밀도도 쉽게 낼 수 있으며 온도에 따른 성능 변화도 적습니다.

하늘색 바탕에 색띠가 다섯 줄이면 1% 금속 피막 저항이라고 생각하셔도 좋습니다.


다만 와트 수를 높이기가 무척 어렵다는 것이 단점이라고 합니다.


시중에서도 1/8, 1/4, 1/2W까지는 비교적 쉽게 구할 수 있으나,

1W의 것은 찾기 어렵고, 2W이상은 생산되지 않는다고 보면 된다 합니다.


* 출처

http://blog.naver.com/casalsaudio/80061879019

http://blog.naver.com/paynoh/10171240920


자고로 "메탈 피막 저항"을 구매해야 하는군요.




3. 구매

AliExpress 에서 검색하면 많이 나옵니다.

저는 아래 재품을 구입하였습니다.


사실 300개라고 하지만, 저항이 여러가지라 그리 많은게 아닙니다.

테스트를 위해서는 가변저항을 향후 생각해 봐야겠네요.



무료배송에 이 가격이면 정말 고민이 되지 않습니다.




4. 도착

3주만에 도착했습니다. 그리 늦은건 아니죠.



같은 저항이 10개씩 묶음으로 들어 있습니다.



펼쳐봤습니다.



저항 종류는 다음과 같습니다.


10Ω  22Ω  47Ω 100Ω  150Ω  200Ω  220Ω  270Ω  330Ω
470Ω  510Ω  680Ω  1KΩ  2KΩ  2.2KΩ  3.3KΩ  4.7KΩ  5.1KΩ  6.8KΩ
10KΩ  20KΩ  47KΩ  51KΩ  68KΩ  100KΩ  220KΩ  300KΩ  470KΩ  680KΩ  1MΩ


왠만한 회로에서 여구하는 것은 다 있는것 같아요.




5. Sampling

LED 하면서 사용한 220Ω 을 측정해 봤습니다.

그리 나쁘지 않네요.



동일한 값의 다른 저항도 측정해 보니 비슷합니다.



그럼 조금 큰값인 2.2kΩ 을 측정해 봤습니다.



쓸만 한것 같습니다.




FIN

콘덴서는 한국제품 (예를 들면 삼양) 이 좋다고 하여 국산을 사보려 합니다.


And

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
prev | 1 | ··· | 11 | 12 | 13 | 14 | 15 | 16 | next