Micropython์์ I2C ์ฌ์ฉ๐ก
10749 ๋จ์ด i2csensorsmicropythonesp32
๊ธ์์ ๋๋ ๋ฉ์ธ๋ณด๋ ๊ฐ์ฅ์๋ฆฌ์ JST-SH ์ฐ๊ฒฐ๊ธฐ์ ๋ํด ๋งค์ฐ ๊ถ๊ธํ๋ค๊ณ ์ธ๊ธํ๋ค.

ESP32-C3FH4-RGB ๊ฐ์

4ํ JST-SH ์กฐ์ธํธ์ ๋ ๋ทฐ ํ์ํ๊ธฐ
ย
MicroPython documentation for the ESP32-C3๋ ํ๋์จ์ด I2C ํฌํธ 0๊ณผ 1์ 18/19 ๋ฐ 25/26์ ๊ธฐ๋ณธ ๋ฐฐ๋ถ์ด ์์์ ๋ํ๋ด์ง๋ง REPL์์ ์ด๋ฌํ ๋ฐฐ๊ด์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ๋ฐ์ดํฐ๊ฐ ์์์ ๋ํ๋ ๋๋ค.
๋จ์๋ ํ๋กํ์ ๋ถ์์ ์๋ค.์ปค๋ฅํฐ ์์ชฝ์์ ๋ณผ ์ ์๋ ํ ์คํธ
G3V01
๋ one of the commenters on the CNX post about the board์์ ์ง์ ํ ๋ฐ์ ๊ฐ์ด "GND, 3V, I/O 0, I/O 1"์ ์๋ฏธํ ์ ์์ต๋๋ค.JST-SH ์ผ์ด๋ธ์ ์ฝ์ ํ๋ฉด ๋ด๊ฐ ๋ฌป๋ ๋ค๋ฅธ ๋ถ๋ถ์ ํ์ํ ์ ์์ต๋๋ค.

๊ฒ์์, ๋นจ๊ฐ์, ํ๋์, ๋ ธ๋์ ์ผ์ด๋ธ์ ํ์ํ๋ JST-SH ์ปค๋ฅํฐ
ย
Adafruit ์ฌ์ดํธ์ handy technical guide to StemmaQT / Qwiic connectors๊ฐ ์์ต๋๋ค...
For the STEMMA QT cables, we follow the Qwiic convention:
- Black for GND
- Red for V+
- Blue for SDA
- Yellow for SCL
SDA์ SCL์ I2C ๋ฐ์ดํฐ ๋ผ์ธ์ ์ค์ํ ๋ถ๋ถ์ ๋๋ค.๋ ์ด๋ธ
G3V01
๊ณผ ๊ฒ์ /๋นจ๊ฐ์/ํ๋์/๋
ธ๋์ ์ปจ๋ํฐ ์์์ ๋ฐ๋ผ SDA๋ฅผ ํ 0์ ๋งคํํ๊ณ SCL์ ํ 1์ ๋งคํํ ์ ์์ต๋๋ค.๋ด๊ฐ ํ๋กํ์ ๋ณผ ๋, ์ด๊ฒ์ ์ฌ์ค์ ์ผ๋ฆฌ๊ฐ ์๋ค. ๋ค๋ฅธ ์ฐ๊ฒฐ๋ ๊ฐ์๊ตฌ๋ฉ์ ๋ผ๋ฒจ (์์ ๊ทธ๋ฆผ์์ ํ๋กํ์ ๋ค๋ฅธ ์ชฝ) ์ 2๋ถํฐ ์์ํ๋ค.0๊ณผ 1์ ์ด I2C ํฌํธ์ ์ฌ์ฉ๋๋ฉฐ 4ํ JST-SH/SPARkfun Qwiic/Adafruit StemAQT ์ฃผ๋ณ ์ฅ์น๋ฅผ ์๋ฝํฉ๋๋ค.์ด๊ฒ์ด ๋ฐ๋ก ๋ด๊ฐ ๊ฐ์ฅ ๊ธด ์๊ฐ์ ์จ์ ์๊ธฐ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค๋ ๊ฒ์ ์ธ์ ํ๋ ๊ณณ์ด๋ค. ๋น๋ก ์ด๊ฒ์ ๋ ผ๋ฆฌ์ ๋ง๊ณ ๋ถ๋ช ํ๊ฒ ๋ค๋ฆฌ์ง๋ง!๋ด๊ฐ ๋ญ ์๋ ค์ค ์ ์์๊น...๋๋ ์ด ๋ฐฉ๋ฉด์ ์ ๋ฌธ๊ฐ๊ฐ ์๋๋ค...

์ค๋ ํ์ดํผ
* "์พ๋ฝ์ ์"์ ๊ฐํ์ฑ, ์๊ฒ ์ต๋๋ค!I2C 0 ์ด ๋ณด๋์ ์ฌ์ฉ๋๋ ํธ๋!๐บ
2022๋ 2์ 7์ผ ์คํ 20:40
์ฌ์ค ์ ๋ REPL์์
I2C.scan()
SDA์ SCL์ ๊ฐ์ข
๊ฐ๋ฅ์ฑ ์กฐํฉ์ ์ค๋ซ๋์ ์๋ํ์ต๋๋ค. ํ๋กํ์ ๋๊ฑฐ๋ ๋ถ๋ช์ณ์ ๋ฆฌ์
์ ์๊ตฌํ๊ฑฐ๋ ๊ณต๋ฐฑ[]
๊ฒฐ๊ณผ๋ง ์ป์์ ๋ฟ์
๋๋ค.๋ด๊ฐ ๋งํ ๋ฐ์ ๊ฐ์ด, ์ง๊ธ์ ๋ชจ๋ ๊ฒ์ด ๋ค ๋๋ํ ๊ฒ ๊ฐ๋ค.์๊ฒ ์ต๋๋ค. ์ ๋ Micropython๊ณผ ESP32-C3์ ํ์ต ์ฌํ ์ค์
๋๋ค. ์ ๋ ๊ณต๋ถํ๊ณ ์์ต๋๋ค.๋ค, ์ฐ๋ฆฌ๋ ์ด๋ฏธ ์ค๋ช ๋์ ๋ค๋ฅธ ๋ถ๋ถ์ ์ฐพ์๋์ต๋๋ค.๋ด ์ฐธ๊ณ ์นด๋๋ ์ง๊ธ ์ด๋ ๊ฒ ๋ณด์ธ๋ค. (์ต์ ๋ฒ์ ์ ์ฌ๋ฌ ๊ฐ์ง ํ์์ด ๋ ๊ฒ์ด๋ค. in the GitHub repo

ํ์ดํ ๋ฐ์ ์ง์ ๋ ์ฃผ์ ์ด๋ฏธ์ง
ย
์ด ์ ์ ๊ฐํ ์ด๋๋ก ์ฝ๊ฐ ์ง์ ๋์๋ค.์ด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํด ๋ด ์๋ค.
๋น๋ก ๋ด ์์ค์ ์ฝ๊ฐ์ Adafruit์ Sparkfun ์ผ์๊ฐ ์์ง๋ง, ๋๋ ๋ณดํต ์ด๊ฒ์Circuit Python์ด๋ Python๊ณผ ํจ๊ป ์ฌ์ฉํ์ง๋ง, Micropython์์ ์ฌ์ฉํ์ง ์๋๋ค. ๊ทธ ๊ฒฐ๊ณผ Sparkfun Qwiic ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Micropython์ ์ ์ฉ๋์ง ์๋๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ๋ค.๊ทธ๋ฌ๋ ์ผ์(AHT20 ์จ๋ ์ผ์)์ ๊ฒฝ์ฐ a MicroPython library๊ฐ ์๋ค.์ด ์๋ ์๋นํ ๊ฐ๋จํด ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๋๋ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ณ์ ๋์ ํ์ ์ค์นํ๋ค. (... ๋ด๊ฐ ์ธ๊ธํด์ผ ํ ๊ฒ์, ์ง๊ธ๊น์ง ๋๋ ์ด๋ฏธ ๋ช ๊ฐ์ง๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๊ทธ๊ฒ์ reasonably cheap ์ด๋ค. ๋๋ ๋ง์ดํฌ๋กํ์ดํค๊ณผ C๋ก ์๋ํ๊ณ ์์ผ๋ฉฐ, ๋ ๋ค๋ฅธ ํ๋์จ์ด์ ๊ด๋ จ๋ ์๊ฐ๊ณผ ํ์์ ํ๊ณ ์๋ค.)
์ด๋ฒ์๋ ๋ค์์ฑ๊ณผ ๋ค์ํ ๋๊ตฌ๋ฅผ ์๋ํ๊ธฐ ์ํด Adafruit
ampy
๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ด ๋๊ตฌ๋ pip๋ฅผ ํตํด ์ค์นํ ์ ์์ต๋๋ค.$ pip3 install adafruit-ampy
... ...
$ ampy -p /dev/cu.usbmodem11301 mkdir lib
$ ampy -p /dev/cu.usbmodem11301 put ahtx0.py lib/ahtx0.py
์ด๊ฒ์ micropython-ahtx0
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ ์ค์นํ ๊ฒ์ด๋คlib/
.
Adafruit AHT20 ์ผ์๋ณด๋๋ JST-SH ์ผ์ด๋ธ์ ํตํด ESP32-C3์ ์ฐ๊ฒฐ
ย
๊ทธ๊ณณ์์ ์จ๋๋ฅผ ์ป๋ ์ฝ๋๋ ๋งค์ฐ ๊ฐ๋จํ๋ค. (๊ทธ๋ฌ๋ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ 14๊ฐ์์ ์ญ์ฌ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๊ทธ๋๋ถํฐ ๋ง์ดํฌ๋กํ์ดํค์ ๊ณ์ ๋ฐ์ ํด ์๊ธฐ ๋๋ฌธ์ ๋๋ ์ด์ฉ ์ ์์ด ๋ณ๊ฒฝ์ ํด์ผ ํ๋ค.)
from machine import Pin, SoftI2C
import utime
import ahtx0
i2c = SoftI2C(scl=Pin(1), sda=Pin(0))
sensor = ahtx0.AHT20(i2c)
while True:
print("\nTemperature: %0.2f C" % sensor.temperature)
print("Humidity: %0.2f %%" % sensor.relative_humidity)
utime.sleep(5)
(์ด ๊ณผ์ ์ available in my "Five by Five" repo as aht20-test.py
)micropython-ahtx0
์ ์ต์ด ์๋ Wemos D1 Mini์ด๋ฉฐ ํ๋์จ์ดI2C
๋ก ๊ตฌํ๋์์ต๋๋ค.Micropython 1.18 nightly์์ ์ด ํ๋ฌ๊ทธ์ธ์ ์คํํ๋ฉด (์ต๊ทผ์ ๋์
๋ RMT ๋ณต๊ตฌ ํ๋ก๊ทธ๋จ์ ์ด์ฉํ๊ธฐ ์ํด nightly ๊ตฌ์ถ์ ์ฌ์ฉํฉ๋๋ค.) ํ๋์จ์ด I2C
๊ฐ ์ฌ์ฉํ์ง ์๊ณ ๋ฒ๋ ค์ก๋ค๋ ๊ฒฝ๊ณ ๊ฐ ๋ฐ์ํฉ๋๋ค. SoftI2C
์ด ๊ฒฝ์ฐ 1:1๋ก ๋ฐ๋๋๋ค.์ฐ๋ฆฌ๋ ํ์ฌ ๊ด๋ จ SDA์ SCL ๊ฐ์ด ๊ฐ๊ฐ 0๊ณผ 1์ด๋ผ๋ ๊ฒ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฒ๋ค์ ์ ์กํ ํ 5์ด๋ง๋ค ์จ๋์ ์ต๋๋ฅผ ์ฝ์ ์ ์๋ค.๋๋ฌด ์ข์์!๋๋ Pull Request upstream for the
micropython-ahtx0
code๋ฅผ ๋ณด๋ด์ SoftI2C
์ ๋ํด ๋ณ๊ฒฝ์ ํ๊ณ ๋ ๋ค๋ฅธ ๊ฒฌ๋ณธ์์ MQTT์ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ๋ณต๊ตฌํ๋ค. ์ด๊ฒ์ ๋ด๊ฐ ์ด์ฌํ๋ฅผ ์ดํดํ ๋ ํ ๋ ํ๋์ ์ข์ ์ผ์ด๋ค.๐๋ง์ง๋ง์ผ๋ก, ๋๋ ๋ค๋ฅธ I2C์ ๋ฌผ๊ฑด์ ๊ฐ์ง๊ณ ๋๊ณ ์ถ๋ค...

BCRobotics Qwiic/STEMMA QT ํฌํธ ํ์ฅ๊ธฐ, Adafruit BH1750 ๊ด ์ผ์ ๋ฐ APDS-9960 ์ ๊ทผ/์ ์ค์ฒ/์์ ์ผ์์ ์ฐ๊ฒฐ
ย
๋ค์์ ๋ณด๋์ ์ฐ๊ฒฐํ๊ณ I2C ๋ฒ์ค์์ ๊ฒ์ํ๋ ๊ฒฝ์ฐ์ ๋๋ค.
MicroPython v1.18 on 2022-02-14; ESP32C3 module with ESP32C3
Type "help()" for more information.
>>> from machine import Pin, SoftI2C
>>> i2c = SoftI2C(scl=Pin(1),sda=Pin(0))
>>> i2c.scan()
[35, 56]
>>>
์๋ํ๋ค์ฐ๋ฆฌ๋ ์ด ๋ ๊ฐ์ ์ธ๊ณฝ ์ค๋น๊ฐ ๋ณผ ์ ์๋ค๋ ๊ฒ์ ์๋ค.๋๋ ์์ง ์ด๋ฐ ์ฝ๋๋ฅผ ์์ฑํ์ง ์์๋ค. ๋ ์ผ๋ฐ์ ์ธ ๋๋ผ์ด๋ฒ ์งํฉ์ ์ด๋ฏธ ์กด์ฌํ ์๋ ์๊ณ , ์์ ์๋ ์์ง๋ง, ์ด๊ฒ์ ๋ชจ๋ ์ฆ๊ฑฐ์์ ์ผ๋ถ๋ถ์ด๋ค.๋๋ ๋ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ฅ์น์ I2C ID ๋ฑ ์ธ๋ถ ์ฌํญ์ ํฌํจํ์ฌ, ๋ด๊ฐ ๊ทธ๊ฒ์ ์ฌ์ฉํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ ์ ์๋๋ก ๊ณ์ ์ถ๊ฐํ๊ณ ์๋ค.
๋๋ ์ด ์๋ฆฌ์ฆ์ ์ด ๋ถ๋ถ์ ๋ค๋ฅธ ๊ฒ๋ค๋ก ๋๋ผ ๊ฒ์ด๋ค. ํธ์ํฐ์์ ๊ทธ๊ฐ ์ด ํ์ผ๋ก ๋ง๋ 'Wordle ์ฅ์น'๋ฅผ ์ธ๊ธํ ๊ฒ์ด๋ค.

์๋ก ์นดํฌํ
์๋ก
๋ง์ง๋ง์ผ๋ก ํธ์คํธ์ ์์กดํ์ง ์๊ณ Twitter v2 API์ ์ง์ ์ฐ๊ฒฐํ๊ณ ํธ์์ ์ฌ์ฉ/์๊ฐํํ ์ ์๋ ๋ ๋ฆฝํ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ต๋๋ค.various things I've learned to my repo as I go along
2022๋ 2์ 13์ผ ์ค์ 10:31
์ด๊ฒ์ ์ ๋ง ๋ฉ์๋ค. C ์ฝ๋๋ฅผ ์คํํ๋ฉด ํธ์ํฐ API v2๋ฅผ ๋ณด๋์ ์ง์ ํธ์ถํด์ ๊ฒฐ๊ณผ๋ฅผ ํ์ํ๋ค. (ํ์ฌ ๋ง์ ์ฌ๋๋ค์ด Wordle์ ํ๊ณ ์๋ค.)๋๋ ๋ด ์ปดํจํฐ์์ ์ฝ๋๋ฅผ ์คํํ๋ ๋น ๋ฅธ ๋์์์ ๋ง๋ค์๊ณ , ๋๋ ๊ทธ์๊ฒ ์ด ํ๋ก์ ํธ๋ฅผ ๋๊ธฐ ์ํด PRs๋ฅผ ๋ณด๋๋ค.๋ด๋ด: ์ด ํธ์๋ค์ด ์ผ๋ง๋ ๋นจ๋ฆฌ ์ค๋์ง ๋ด!
๋๋ ๋ํฌ๋ค์ด ์ด ์๋ฆฌ์ฆ๋ฅผ ์ข์ํ๊ธธ ๋ฐ๋๋ค. ์ด๊ณณ์ ๊ฐ์ข ์ฃผ์ ๋ฅผ ๊น์ด ์ฐ๊ตฌํจ์ผ๋ก์จ ๋๋ ๋ง์ ๊ฒ์ ๋ฐฐ์ ๋ค.์ง๊ธ๊น์ง ์ ๋ ๋ง์ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ESP32-C3์นฉ ์์ฒด, Micropython, Thony์ ํ๋ฌ๊ทธ์ธ, ๊ฐ์ข ๋ช ๋ นํ ๋๊ตฌ, I2C์ Qwiic'ํ์ค',Wordle ์์ ์ค์ ์ผ๋ถ C, Espressif ๋๊ตฌ์Free RTOS. ์ ๋ ์๋ก ๋ค๋ฅธ ํ๋ก์ ํธ์ Pull ์์ฒญ์ ๋ณด๋๊ณ ์ง์ญ์ฌํ์์ ์์ฃผ ์ข์ ์ฌ๋๋ค์ ๋ง๋ฌ์ต๋๋ค!
์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!์ธ์ ๋ ์ง ์์ด๋์ด์ ์ง๋ฌธ์ ํ์ํฉ๋๋ค!๋๋ ์ด๋ฐ ํ์๋ก ๋ฌด์์ ํ ์ ์๋?๋ญ ํด๋ณด๋ผ๊ณ ์?
๋๋ ๋ ๋ง์ด ์๊ตฌํ ์ ์์ด.๋ง์ฝ ๋ค๊ฐ ์ด ๋ฌธ์ฅ์ ์ข์ํ๋ค๋ฉด, ๋๋ ๋๋ฅผ ๋์ ๋์ ์์ ๋๊ตฌ์ ํน ๋น ์ง๋๋ก ๋์์ค ์ ์๋ค github.com/ccattuto/wordlโฆโ๏ธ
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(Micropython์์ I2C ์ฌ์ฉ๐ก), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/andypiper/using-i2c-in-micropython-4b9nํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ
์ธ ๋ฐ๊ฒฌ์ ์ ๋
(Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค