https://aneoh.tistory.com/2

앞선 글에서 수위 데이터를 살려 수리하는 방법을 진행하기로 했었다.

 

레퍼런스는 다음과 같다. 

https://github.com/fakcior/xiaomi-humidifier-water-sensor

 

GitHub - fakcior/xiaomi-humidifier-water-sensor: Xiaomi SmartMi Evaporative Humidifier water level sensor

Xiaomi SmartMi Evaporative Humidifier water level sensor - GitHub - fakcior/xiaomi-humidifier-water-sensor: Xiaomi SmartMi Evaporative Humidifier water level sensor

github.com

 https://youtu.be/JudoDFqBNoU

 이 포스트의 내용은 러시아어 유튜브 내용을 풀어 설명하는 방법으로 진행할 계획이다.

 

정리하면 PSU단에 있는 수위 데이터 처리 칩을 "제거"하고 수조의 수위 센서에서의 데이터 TP&GND(초록색과, 검은색)를 아두이노 보드의 D2/3&GND에 그리고, 전원과 메인보드로의 데이터는 TX(보라색)로 전원은 5v, GND(각각 적색과 진녹색)에 연결하여 진행한다. 전원 자체는 메인보드의 3.3v단을 이용해도 좋을 것으로 보인다.

https://www.youtube.com/watch?v=JudoDFqBNoU


 

1. 아두이노 코드값 저장

https://github.com/fakcior/xiaomi-humidifier-water-sensor/blob/master/HumidifierSensor.ino

 

GitHub - fakcior/xiaomi-humidifier-water-sensor: Xiaomi SmartMi Evaporative Humidifier water level sensor

Xiaomi SmartMi Evaporative Humidifier water level sensor - GitHub - fakcior/xiaomi-humidifier-water-sensor: Xiaomi SmartMi Evaporative Humidifier water level sensor

github.com

코드 자체는 여기서 Copy & paste하여 진행하도록 한다.

 

저장 중 주의할 점은 <<CapacitiveSensor>> 라이브러리를 추가해서 진행해야 한다.

 

위 코드에서는

#define MIN_READING 4200 // for 1M resistor and 1000 samples

 

#define MAX_READING 11000 // for 1M resistor and 1000 samples

으로 1M 저항으로 하였을때 4200~11000사이 값에서 리니어한 반응을 보이게 설계되어있다.

 

만약 수조의 수위 센서에 문제가 없다면 그냥 진행해도 좋으나. 센서값 자체에 문제가 있는 경우 자체 캘리브레이션 절차를 거쳐야 하는데

가습기와 아두이노 사이에 전원을 빼고 연결하여(가습기-아두이노-컴퓨터, 전원은 이중으로 연결하지 않도록 한다.)

수조의 min에서 max까지의 serial data값을 확인하고 9/10열의 값을 4200/11000이 아닌 확인한 값으로 수정하여야 한다.

 

캘리브레이션을 할때는 코드의 47열을 비활성화, 48열을 활성화하여 진행하고, 보정값을 확인하였다면, 47열을 다시 활성화하고 48열을 비활성화하여 포팅하고 마무리한다.

*캘리브레이션은 모든 솔더링 작업이 완료 된 후 진행하는 것을 추천한다.


https://smartstore.naver.com/plumkit/products/5700603098

 

아두이노 프로 마이크로 호환보드 3.3V 5V : 플럼킷

아두이노 프로 마이크로 호환보드 3.3V 5V

smartstore.naver.com

**작성자가 구매한 아두이노 호환 보드입니다. 코드 입력하고 실행하였을때 잘 되지 않아 찾아보니 serial 명령문을 serial1으로 바꿔야한다.

ex> Serial1.begin(9600);

***캘리브레이션 시 수조 raw data 쪽은 Serial.println(readingRaw);로 진행해야 serial monitor에서 확인 가능했다.

Serial1.write(packet, sizeof(packet));
//Serial.println(readingRaw); //for calibration

로 진행했다.

 

2. 솔더링.

"솔더링 시에 PSU의 칩을 디솔더링하고 그 기판에 연결하지 않고, 전원만 따고 우회하는 방식으로 진행하였습니다. 이렇게 하는 경우 메인보드 단의 3.3v전원을 활용하는 것이 더 용이할 것으로 생각됩니다."

1) psu의 센서부에 5v 전원을 연결하여 잇고.

pictured by ane Oh

2)다음 D2,D3를 1MOhm으로 연결하고, D2와 GND단을 센서부에 직접 연결합니다.

pictured by ane oh

 

 

 

 

 

 

3)이후 배선을 따라 센서 입력 단자를 뽑고, 메인보드로 가는 데이터 시그널 선을 끊습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4) 단자를 뽑고 D2와 GND와 연결한 선을 각각 수조 센서부의 왼쪽 오른쪽과 연결합니다.

 

 

 

 

 

 

 

 

 

 

 

5) 마지막으로 TX단자를 메인보드의 저 부위에 솔더합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6. 후에 정리하여 마무리하면 끝입니다.

https://youtube.com/shorts/sN71eLfSSBA

 

https://youtube.com/shorts/C_HpEfyYqJ0?feature=share 

 

 

반응형

+ Recent posts