Posts

Showing posts from July, 2017

LoRa 모듈 E22-900T22S Breakout Board 설계 2

Image
지난번 설계 에서 두 가지 업데이트 사항이 있다. 첫 번째로 3.3V 로 로직 컨버터를 거치지 않고 직접 통신할수 있는 포트를 구성하였다.  이 포트를 통해 3.3V 동작의 MCU를 사용할때 좀 더 빠르게 회로를 구성  할수 있을것으로 기대한다. 두 번째로 동작 전압 레벨이 서로 다른 MCU 와 Lora 모듈이 통신할때 사용할 기준전압을 직접 인가 할 수 있도록 하였다. 보드에는 위 와같은 점퍼가 주어지는데 3.3V 나 5V 로 점프 시키지 않을 경우 VREF 핀에 사용할 소스전압을 직접 인가해 주어야한다. 특수한 경우가 아니라면 Vref를 사용하는일은 없을것 같다. 위사 진들은 이번에 제작한 테스트 모듈이다.  왼쪽은 E22-900T22S 모듈이고 오른쪽은 ATmega328P/PB 3.3V 8Mhz 보드를 준비했다. 오른쪽의 보드는 ATmega328P/PB 를 모두 장착하여 사용할 수 있도록 설계했다. E22-900T22S 보드의 전체 회로는 다음과 같다. 동작 전압 레벨이 서로 다른 장치와 통신 할 수 있도록 레벨 컨버터를 추가 하였고, 핀 헤더를 장착하여 다른 MCU 보드와 통신하거나 점퍼를 수정해서 USB 시리얼 통신을 할수 있도록 했다. 모듈의 테스트는 mischianti의 E22 라이브러리 를 사용했다. 정리가 아주 잘 되어있는 라이브러리로 생각된다. 아래 코드는 라이브러리에 포함된 시리얼 입력을 LoRa 통신으로 전송하는 예제이다. Lora ATmega328p AUX D3 RX D4 TX D5 M1 D6/GND M0 D7/GND 송신측 코드 #include "Arduino.h" #include "LoRa_E22.h" LoRa_E22 e22ttl(4, 5, 3, 7, 6); void setup() { Serial.begin(9600); delay(500); // Startup all pins and UART e22ttl.begin(); Serial.println(&q

오디오 테크니카

Image
원래 나는 오디오테크니카 M50 헤드폰을 사용하고 있었다. 처음으로 구입해본 헤드폰이다. 사진은 작년에 많이 낡아서 밴드부분에 양가죽을 입혀서 교체해준 모습이다. 힘들게 교체하고 가죽에 영양크림도 발라주면서 관리도 해주었다. 그랬는데 도둑을 맞았다. 지금 생각해보면 전철에서 당한것 같다. 음악을 듣고 가방에 넣었는데 집에 와서보니 파우치까지 통째로 없어져있었다. 고장나면 직접 수리도 하고 밴드도 갈아주고 새것같은 마음으로 사용하고 있었는데... 바느질 한거 생각하면 지금도 화가난다. 이 일을 계기로 음악을 잘 못듣게 되었다. 그러다가 최근 친구가 헤드폰을 하나 사고 싶다고 했다. 처음에 이것저것 물어보면서 검색을 해보았다. 원하는걸 물어보다가 M50을 추천해주었다. 가격도 높지않고 평도 준수한 녀석이었기 때문에 마음에 들어했다. 좀더 검색해보니 M50X가 있었다 케이블을 보완하여 탈착식으로 나온것이었다. 성능의 차이는 없었다. 헤드폰 중에서는 높지 않은 가격이지만 20만원 내외의 가격이 우스운건 아니기 때문에 청음샵에 들려 체험해보기로 했다. 그 곳 에서 몇 만원짜리부터 수백만원에 달하는 헤드폰을 체험해보았다. 일단 꿈을 좀 꾸었고 정신을 차리고 M50X에 집중 했다. 역시 마음에 들어했다. 정확한 평가는 아니지만 M50는 벨런스가 좋은것 같다. 장르를 가리지 않는 느낌 그렇게 일마치고 돌아올 예정이었으나 여러제품을 듣고나니 나도 사고 싶은게 생겨버렸다. 나는 헤드폰 말고 이어폰ㅋ CKB70 이거 좀 마음에 들었다. 선 질감도 디자인도 좋고 음질도 깔끔했다. 한가지 아쉬움이라면 고음 멸망...

[Arduino] 레몬의 모이스쳐라이징 2

Image
테스트하면서 모듈의 특정부분을 만지면 값이 매우 불안해지는것을 목격했다. 붙여놓은 절전 테이프가 소용없었다. 해당하는 위치는 어제 납땜한 곳인 "->" 이다. "->"는 습도센서에서 측정한 값을 출력해주는데 이 값을 바탕으로 아두이노의 프로그램이 작동하게된다. 문제는 이 곳을 건들게되면 값이 매우 부정확하게 출력이되는 것이다. 여러 테스트를 해본결과 해결법을 찾게 되었다. 출력과 입력을 묶어주고 위에서 보았을때 빈자리에 10k 저항을 달아 주었더니 저 부분은 만지거나 해도 이상없이 균일한 값들이 출력 되었다. 이번일을 해결하면서 16x2 LCD를 연결해 보았다. 라이브러리가 필요하기때문에 라이브러리 메니저를 통해 LiquidCrystal_I2C를 설치한다. hello, world 한번 찍어보고 바로 사용하면된다. 안나온다면 왜 안나오는지 생각을 해보면된다. 그러면 답이나온다. 아무리 해도 글씨가 안나온다거나 문장의 첫 글자만 나온다거나 둘다 아니거나 대부분 3가지 문제중 하나이다. 값에 따른 알림과 범위도 전체적으로 수정하였다. 700 이상 : Drought, Red 400에서 700 : Thirsty, Orange 250에서 400 : i'm ok, Yellow 5에서 250 : i feel good!!, Green 0에서 5 : Drowning! >_< too much water! , Blue 물을 주면서 테스트를 했더니 90%가 되어버렸다... 물을 많이주지 않도록 하자 빠져죽는다.

[Arduino] 레몬의 모이스쳐라이징 1

Image
지금까지 한달 넘게 레몬을 지켜봐왔는데 다른 녀석들보다  성장이  많이 느리고 시들시들 죽어가는 녀석들이 나타났다. 화분을 옮기면서 뿌리의 상태를 확인했더니 잔뿌리가 하나도 없는 녀석들이 죽어가고 있었다. 물을 너무 많이 주었거나 너무 한 곳에 만 물을 주었던것 같다. 얼마전 방정리를 하면서 찾은 토양습도센서+릴레이 모듈이다. 모델이름은 검색해보니 SZH-SSBH-074 인것 같고  일단 작동은 하는것 같으니 잘 된것 같다. 갖고 있는 녀석은 습도 센서와 릴레이 모듈이 결합되어있는 형태이다. 이렇게 생겨먹은 녀석들 중에는 센서값 출력이 없는것들도 있다. 그런데 이건  사용자 재량으로 놔둔것인건지  핀만 안꼽아져 있을뿐 아래사진처럼 출력 단자가 있다.  설마  모양만 있는건가 했지만  습도값이 출력이 되는걸 확인했다. 이제 물을주면 파바밧 하고 값이 0으로가까워지고 물이 거의 없거나  공기중에 노출 되어있을때는 400후반의 값이 나온다. 측정 값은 본인이 센서 다이얼을 조절해 사용하면된다. 이 값들을 가지고 토양의 습도를 RGB LED 를 이용해 가시적으로 알려주려고한다.  센서의  값이 0에 가까우면 홍수이고 500과 같이 큰 값이면 가뭄이다. 200 : 블루 홍수 200~400 : 그린 아이촉촉해  400~700 : 옐로 목마르다 그 이상은 : 레드 가뭄 내 예상으로는 옐로가 되면 물을주면 될거같다. 전체 코드를 올릴필요는 없을것 같다. int moistureV = analogRead(A0); Serial.println( moistureV  ); 위 코드를 루프에서 돌려 딜레이를 주어 모니터에 출력된 습도값을 참조하여 본인의 센서 값에 맞게 코딩을 하면된다. 위에 있는 LED는 저항이 회로에 포함되어있어 보드에 추가하지 않았지만 일반 LED는 저항을 추가해주어야 건강에 좋다.납땜이 된 부분은 센서에서 측적된 습도값이 출력되는 부분인데 외부로 들어나 있어 보안

디아블로 피를 수확하는자

Image
디아블로 강령술사가 등장하고서 정말 오랜만에 디아블로를 해봤다. 새로운 맵 몬스터들도 많이 추가되었고 새로운 도전 모드도 신선해서 좋았다. 어느 게임이든 사람들이 찾아놓은 조합으로 플레이를 하면 편하긴 하지만 디아블로는 새로운 아이템을 하나씩 주워서 사용해보는 재미가 큰것 같다. 꾸미기도 조금 바뀌고 추가된것이 있었는데 역시 어느 게임이든 꾸미기 요소가있으면 재미가 쏠쏠하다. 서머너즈워가 생각나는건 나뿐인가?