https://ko.aliexpress.com/item/1005006365878568.html

  • WiFi 개발보드, 4MB
  • 11 디지털 입력/출력 핀, 모든 핀에 인터럽트/pwm/I2C/one-wire 지원(D0 제외)
  • 1 아날로그 입력 (3.3V 최대입력)
  • Type-C or micro USB 연결

알리 익스프레스를 뒤적거리다 천원마트를 통해 2,500원(2024년 3월말 기준)에 구매한 MCU입니다. 블루투스까지는 필요가 없는 작은 프로젝트에 이용해보면 어떨까 해서 구매했습니다.

납땜이 되어 오질 않기 때문에 납땜을 해야 합니다. 핀헤더는 다양하게 포함되어 있어 응용하기 좋습니다.

연결

PC에 연결 후 CH340으로 잡힙니다. 저는 이미 드라이버가 설치되어 있어 바로 잡혔고 드라이버가 없다면 설치해주셔야 합니다. (24년 4월 9일 : 테스트해보니 Windows 11 에서는 자동으로 잡힙니다)

CH340 Driver

 

CH341SER.ZIP - 南京沁恒微电子股份有限公司

USB转串口Windows驱动和DLL库,支持CH340和CH341,内含非标准波特率的设置等使用说明,支持USB转UART的3线和9线SERIAL串口。支持32/64位Windows 11/10/8.1/8/7/VISTA/XP,SERVER 2022/2019/2016/2012/2008/2003,2000/ME/98,

www.wch.cn

 

CH340 Driver

 

최근 MicroPython을 이용해보려고 노력중이라 MicroPython을 기준으로 기록합니다.
Thonny를 실행 후 IDE하단에서 MCU를 선택하면 MicroPython용 펌웨어가 없다고 표시됩니다.

 

bootloader error

펌웨어 업로드

펌웨어 업로드를 위해 esptool이 필요하고 미리 설치되어 있지 않다면 설치 합니다.

pip install esptool

 

esptool.py를 이용해 연결된 디바이스의 flash메모리를 지웁니다.
Thonny를 사용중이면 메뉴중 Tools - Open system shell 메뉴를 선택해 쉘을 연 후

esptool --port /dev/ttyUSB0 erase_flash
# windows
esptool --port COM4 erase_flash

 

펌웨어를 다운로드 하고 MCU에 업로드 합니다.

https://docs.micropython.org/en/latest/esp8266/tutorial/intro.html#deploying-the-firmware

 

1. Getting started with MicroPython on the ESP8266 — MicroPython latest documentation

Be aware of and try to exclude hardware problems. There are 2 common problems: bad power source quality and worn-out/defective FlashROM. Speaking of power source, not just raw amperage is important, but also low ripple and noise/EMI in general. If you expe

docs.micropython.org

esptool --port COM4 --baud 115200 write_flash --flash_size=detect 0 ESP8266_GENERIC-20240222-v1.22.2.bin

 

업로드가 잘 되었는지 확인 후 Thonny를 실행하면 하단 Shell에 Python 인터프리터가 보여집니다. 간단히 아래 코드를 실행해 정상작동 하는지 확인합니다.

print("Hello, world")

 

esp-12f hello world

테스트

WiFi를 통해 웹페이지에 Hello, world! 를 표시하는 코드를 작성해 테스트해봅니다. ssid에 사용하시는 공유기의 SSID를 넣고 password를 넣어 저장한 후 Thonny를 통해 업로드 합니다.

html = """<!DOCTYPE html>
<html>
    <head> <title>ESP8266 Test</title> </head>
    <body> <h1>Hello, world!</h1>
    </body>
</html>
"""

response = 'HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n'
ssid = 'xxxxxxxx'
password = 'xxxxxxxx'

import network

wifistation = network.WLAN(network.STA_IF)
wifistation.active(True)
wifistation.connect(ssid, password)

print('Connected to : ', wifistation.ifconfig()[0])

import socket

address = socket.getaddrinfo('0.0.0.0', 80)[0][-1]

s = socket.socket()
s.bind(address)
s.listen(1)

conn, address = s.accept()
conn.send(response)
conn.send(html)
conn.close()

 

업로드 후 MCU를 리셋(Thonny에서 소프트리셋을 해줍니다)하면 Shell에 공유기로부터 부여받은 주소가 나옵니다. 웹브라우저(크롬, 엣지등)를 열어 주소에 Shell에 나온 주소를 입력하고 엔터를 누르면 Hello, world! 가 출력되고 MCU의 동작이 멈추게 됩니다.

 

물론 이 부분은 루프처리를 해서 WiFi 네트워크에 접속을 하고 사용자 반응을 대기를 하는 방식으로 처리를 해야 하지만 여기에서는 동작확인만 해 본 상태입니다.

 

저렴한 장비이지만 잘 작동합니다.

 

이제 이 장비를 이용해 다른 작업을 해 봐야겠습니다.

+ Recent posts