일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 코스피
- esp32
- 매터
- 애플
- 힐스테이트 광교산
- Espressif
- RS-485
- Bestin
- 공모주
- 티스토리챌린지
- homebridge
- 홈네트워크
- 국내주식
- 오블완
- 미국주식
- Python
- raspberry pi
- Home Assistant
- ConnectedHomeIP
- 해외주식
- SK텔레콤
- 현대통신
- 월패드
- 파이썬
- matter
- Apple
- 나스닥
- MQTT
- cluster
- 배당
- Today
- Total
목록분류 전체보기 (688)
YOGYUI
1. Hardware 독일 Bosch사(오...대기업...)에서 제작한 BMP180 기압계(barometer)가 장착된 모듈 DFRobot 공식 소개 페이지: SKU:TOY0058(단종되었다...) I2C 시리얼 인터페이스로 통신하며, 0.12hPa/m 고정밀 기압 측정 및 온도와 고도(altitude) 측정도 가능하다 중급 IoT 학습에서 배우는 IMU 센서에 왠만하면 모두 들어있는 기능들이라 요즘은 barometer만 따로 사용하는 경우는 거의 없는 것 같다 (드론 제어 시에 꼭 필요한 기능들이다보니...) BMP180 데이터시트를 보면 기압 및 온도 측정 알고리즘과 고도 환산 공식이 잘 기재되어 있다 IoT 입문자들뿐만 아니라 산업현장에서도 널리 쓰이고 있는 센서 2. Prototyping 알고리즘..
1. Hardware 중국 Kuongshun Electronic사에서 제작한 AM2302 온습도 센서가 장착된 모듈 (DFRobot, Adafruit, Sparkfun 등 다양한 서드파티에서 만든 모듈이 있으니 입맛대로 골라 사면 된다) DFRobot 공식 소개 페이지: SKU:SEN0137 DHT22이라는 이름으로도 널리 알려져있으며(DHT는 Digital Humidity and Temperature의 약자), 아두이노 입문자가 아마도 가장 먼저 접하게 되는 센서 중 하나 (워낙에 저렴하다보니 왠만한 Starter Kit에는 기본으로 포함되어 있는 것 같다) SPI나 I2C가 아닌 1-line digital 데이터 통신 방식이기 때문에 코딩 입문자를 위한 도전과제로도 적당하다 DHT22/AM2302 데..
ESP8266 WiFi Module에서 MQTT 프로토콜로 메시지를 구독(subscribe) 및 발행(publish)해보자 (Arduino IDE 기반) MQTT broker(mosquitto)는 현재 라즈베리파이에서 구동중이다 (자세한 내용은 링크를 참고) ※ 본 포스팅에서는 GPIO에 연결된 LED 한개를 On/Off하는 단순한 예시를 다룬다 1. 라이브러리 설치 라이브러리 매니저에서 "PubSubClient"를 검색 후 설치 (PubSubClinet API 문서 링크) [옵션] EspMQTTClient: PubSubClient 라이브러리를 기반으로 구현한 ESP8266/ESP32에 특화된 라이브러리 ESP기반 MQTT 사용시 코드 간소화가 가능하다 라이브러리 포함하기 - PubSubClient 항목..
IoT를 위한 아두이노 구현 시 일반 아두이노 보드에 WiFi Module을 결합하는 방식도 있지만, "MCU + WiFi 일체형 모듈"로 프로토타이핑하는 방식도 있다 (요즘은 MCU + WiFi + BLE + Zigbee 완전 통합형 모듈도 시중에 많이 판매되고 있다) 이번 포스팅에서는 몇년 전에 프로토타이핑한다고 구매하고 딱 한번 써본 Keyes 사의 ESP8266 WiFi 모듈에 대한 간단한 리뷰? 를 적어보도록 한다 (지금은 단종된듯...) 1. Introduction ESP8266은 Espressif Systems라는 중국 회사에서 설계한 SoC로, Single Core 32bit MCU + 2.4GHz WiFi 모듈을 내장하고 있다 다양한 시리얼 통신 (UART, I2C, I2S, SPI)를 ..
1. Hardware DFRobot에서 만든 조도 센서이며, 1 ~ 6000 럭스 사이의 조도를 감지할 수 있다 (Analog Voltage Output) DFRobot 공식 소개 페이지: SKU:DFR0026 (Photo Diode = PT550, 데이터시트, 중국어...) SPI나 I2C 등 별도의 시리얼 통신을 구현할 필요는 없지만, ADC가 필요하다 전압 출력값(Volt)과 실제 조도(Lux) 사이의 관계식을 제공하지 않는다 (정밀한 조도 측정용으로 사용하기에는 적절하지 않다) 2. Prototyping ADC를 쉽게 사용할 수 있는 Arduino를 사용해 테스트해보자(Arduino Micro) ADC 값을 디스플레이하기 위해 14-Seg LED Display도 함께 사용하도록 한다 (참고) DF..
1. Hardware HOLTEK사의 LED Controller Driver IC인 HT16K33을 탑재한 개발용 보드 HT16K33 Datasheet IC 내부에 128bit 메모리를 갖고 있으며, I2C 인터페이스로 MCU 등과 통신할 수 있다 (LED 밝기 제어도 가능) 단순한 7-segment LED 뿐만 아니라, 14-segment LED, LED Matrix 등 다양한 종류의 LED 디스플레이 모듈을 제어할 수 있다 내가 구매한 LED 모듈은 "Quad Alphanumeric, Pure Green" 제품이다 (녹색, 4 Character) backpack pcb와 함께 구매, under $14 구매 페이지 2. Arduino Practice Adafruit은 거의 모든 제품군에 대한 아두이노용..
Flowchart를 웹에서 보여줘야 할 필요가 생겨서 이리저리 검색하다가 python, matplotlib 기반 라이브러리인 schemdraw를 한번 써보기로 했다 schemdraw.readthedocs.io/en/latest/ Schemdraw documentation — SchemDraw 0.8 documentation schemdraw.readthedocs.io 전자회로, 논리회로, 신호처리 등 다양한 종류의 schematics를 그리기 위한 Element들이 구현돼있다 (Latex도 지원되는듯) 예제코드를 보면 알겠지만, 한땀한땀 노가다로 코딩해줘야된다 사용성을 높이려면 고수준의 커스터마이징이 필요할 것 같다 각설하고, 다음과 같이 Flowchart도 어렵지 않게 구현할 수 있다 # test.py..
4. Homebridge 애플 홈킷에는 엘리베이터와 관련된 액세서리가 별도로 존재하는 것 같지는 않다 (검색 능력의 한계...) npm 액세서리 패키지 하나 개발할까 하다가 귀차니즘이 발동해서 그냥 MQTT 기반 '스위치'로 구현하기로 결심했다 엘리베이터 도착 시 아이폰으로 알림 기능을 구현하기 위해 '인체 감지 센서' 기능도 함께 구현하면 좋을 것 같다 { "accessory": "mqttthing", "type": "switch", "name": "Elevator Down (MQTT)", "url": "mqtt:://localhost:1883", "username": "yogyui", "password": "12345678", "topics": { "getOn": { "topic": "home/ipa..
3. Implementation 우선, 256개 Timestamp에 대한 하행 호출 패킷을 모으기 위해 다음과 같이 코드를 짜봤다 (패킷을 리스트에 담는데, 동일한 timestamp 값을 모은적이 있다면 패스, 리스트 자체를 직렬화해서 로컬에 저장) import os from SerialComm import SerialComm from SmartParser import SmartParser if __name__ == '__main__': import time import pickle picklepath = './smart_elevator_down_packets.pkl' os.system('clear') ser1 = SerialComm() ser2 = SerialComm() par = SmartParser..
2. Packet Analysis UTP 커플러를 통해 분기하여 후킹하는 시스템 도식은 다음과 같다 게이트웨이와 소형 월패드간 통신은 RS-422 방식으로 Full-Duplex인데, Tx, Rx 각 라인에 각각 USB-RS485 컨버터를 장착해 바이트스트림 후킹 뿐만 아니라, 통신 라인에 사용자가 임의의 패킷을 송신할 수 있다 (이틀정도 삽질해서 알게됐다) 보통의 경우라면 보내는 쪽에 다이오드를 달아서 받는 쪽으로민 패킷이 전송되도록 해야하지만, 일반적인 RS-422, RS-485 핸들링 IC는 Tx단에 정보가 흘러들어오더라도 크게 문제되지 않는다 (경험적으로 알게 된 사실...) 그래서 신호 블로킹을 위한 다이오드는 추가로 장착하지 않기로 했다 게이트웨이에서 소형 월패드로 정보를 보내는 방향에 장착한 ..
1. Prepare 신발장을 지나 거실 초입 부근에는 조그마한 월패드 (이하 소형 월패드)가 있다 LCD 패널 (터치는 안됨)에는 날씨 및 현재 시간이 디스플레이된다 아래 제어 패널들로는 집안 전체 조명 소등/점등 기능 및 가스 잠그기 및 엘리베이터 상행/하행 호출이 가능하다 그리고, 평소에는 꺼져있다가 사람이 근처에 지나가면 디스플레이가 켜지는 걸로 봐서는 모션 센서가 탑재된 것으로 보인다 엘리베이터 호출은 거실의 메인 월패드로도 가능하며 소형 월패드와 상호작용한다 (현재 엘리베이터 층수 표시) 엘리베이터가 우리집 층수에 도착하면 메인 월패드와 소형 월패드 모두 "엘리베이터가 도착하였습니다"라고 안내 음성이 방송된다 엘리베이터도 홈킷으로 호출해보고 싶어 홈네트워크 게이트웨이 배전반을 이리저리 만지면서 ..
서버 코드 유지보수성 강화를 위해 기존의 HTTP 기반 액세서리들을 MQTT 기반으로 바꾸고자 결심했다 (HTTP 기반 액세서리는 디바이스 개별로 http-nofitication listener 포트를 할당해야 하는데, MQTT 기반에서는 subscribe만 하면 되기 때문에 서버 부하도 줄일 수 있을 것으로 판단) 1. 플러그인 설치 Homebridge UI에서 mqttthing을 검색해서 Homebridge Mqttthing 플러그인을 설치 mqttthing으로 만들 수 있는 액세서리 종류는 다음과 같다 거의 모든 종류의 디바이스를 mqttthing 플러그인 하나로 만들어낼 수 있다 config.json의 액세서리 중 HTTP 기반으로 구현한 액세서리를 mqtt 기반으로 변경해준다 예시) [HTTP ..
얼마전 IKEA 기흥 전시장에 놀러갔다가 홈오토메이션 관련 제품 많이 팔길래 이것저것 사와봤다 (게이트웨이, 전동 블라인드, 스마트 플러그, 모션 센서) 이번 포스트는 모션 센서 TRADFRI E1745에 대한 이야기... 이리저리 만져보다가 알게되었는데, 모션 센서는 단독 디바이스로 등록이 안된다 (게이트웨이에 단독으로 등록안됨, 전구나 플러그같은 컨트롤 가능 디바이스랑 페어링해서 등록해야 함) 즉, 모션 센서에 감지가 되면 페어로 묶인 전구나 플러그가 켜지는 용도로 사용해야 한다 공식 어플리케이션(IKEA Home Smart)에서 등록 가능한 디바이스는 다음과 같다 하는김에 전구도 살까해서 찾아보니 내가 쓰고 있는 필립스 Hue 전구보다 기능이 많이 제한적인 것 같아 포기했다 (물론 Hue보다 가격은..
MQTT broker 서비스 mosquitto에 사용자 인증 기능을 추가해 최소한의 보안을 확보하자 참고: www.steves-internet-guide.com/mqtt-username-password-example/ 1. 패스워드 파일(텍스트) 생성 터미널에서 다음 명령 수행 (최초 파일 생성) 후 비밀번호를 두 차례 입력해주면 파일이 생성된다 mosquitto_passwd -c [파일이름] [사용자이름(id)] 실행결과 >> pi@raspberrypi:~ $ mosquitto_passwd -c pl.txt yogyui Password: Reenter password: pi@raspberrypi:~ $ cat pl.txt yogyui:$6$xP5SA187Rwgqdoix$0LEE1yR0kQ7pqT4cal..
zigbee2mqtt 공식 가이드 참고 (라즈베리파이에 node.js는 미리 설치해둔 경우) www.zigbee2mqtt.io/getting_started/running_zigbee2mqtt.html Running Zigbee2MQTT 📘 Zigbee2mqtt documentation www.zigbee2mqtt.io 1. Git Clone sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt pi@raspberrypi:~ $ sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt Cloning into '/opt/zigbee2mqtt'... remo..