:::: MENU ::::
Posts tagged with: ESP8266

WioLink 사용하기

WioLink

2016년에 킥스타터를 통해서 구매한 WioLink. 당시에 동작을 확인하고 사용을 하지 않고 있다가, 최근에 다시 사용을 하려고 보니 잘 동작을 하지 않는다. WiFi 설정은 되고, 서버에도 접속이 되는데 앱에서 디바이스를 구성을 하고 View API 버튼을 누르면 앱이 멈춰버린다.

펌웨어 업데이트

그래서 일단 펌웨어를 다시 업데이트를 해본다.
펌웨어 다운로드
Firmware: user1.bin user2.bin
Bootloader binary and other binaries: Esp8266sdk1.4.1.zip
Esp8266sdk1.4.1.zip을 압축을 풀고, boot***.bin 파일은 bootloader.bin으로 이름을 바꾼다.

esptool 설치

$ pip install esptool

다음과 같이 명령어 입력

esptool.py -p /dev/tty.SLAB_USBtoUART -b 230400 write_flash –flash_size 4MB-c1 0x0000 bootloader.bin 0x1000 user1.bin 0x101000 user2.bin 0x3fc000 esp_init_data_default.bin 0x3fe000 blank.bin

그래도 마찬가지이다. ㅠㅠ

wio cli를 설치해서 확인

https://github.com/Seeed-Studio/wio-cli 이 페이지의 내용을 보고 wio cli를 설치후 터미널에서 확인해 보니 디바이스를 제어가 가능하다.

$ wio list

이 명령어를 통해 사용이 가능한 명령어 리스트를 볼 수 있다.


wio cli의 명령어의 형태는 다음과 같고 버튼의 상태는 다음과 같이 얻을 수 있다.

$ wio call <token> <method> <endpoint>

$ wio call {tocken} GET /v1/node/GroveButtonD0/pressed

하지만 터미널에서 토큰을 복붙하고 명령어를 치기는 번거롭다.

아두이노에서 사용하기

연결되는 디바이스를 GPIO 15를 통해 MOSFET으로 제어를 한다. 따라서 다음의 코드를 스케치에 넣어야 한다. 

pinMode(15, OUTPUT);
digitalWrite(15, 1);

참고

https://github.com/Seeed-Studio/Wio_Link/wiki/Advanced-User-Guide
https://github.com/Seeed-Studio/wio-cli


무게센서와 HX711 사용하기

무게센서

일반적으로 무게센서는 스트레인게이지(Strain Gauge) 기반의 로드셀(Lode Cell)를 사용한다. 스트레인 게이지는 저항으로 이루어진 센서로서 피 측정물에 부착되어 피 측정물의 물리적인 변형률(Strain)을 휘스톤 브릿지 방식으로 전기적인 신호로 바꾸어 측정물의 변형량을 측정하는 저항 센서이다.

  • Excitation+ (E+) or VCC is red
  • Excitation- (E-) or ground is black.
  • Output+ (O+), Signal+ (S+)+ or Amplifier+ (A+) is white
  • O-, S-, or A- is green or blue

HX711

참고


SmartConfig – WiFi provisioning

유선 네트워크인 이더넷은 랜선을 연결하면 DHCP로 자동으로 IP가 부여된다. 하지만 WiFi에서는 AP의 이름 및 패스워드를 알고 AP에 접속을 해야지 IP를 얻을 수 있다. 이 과정이 WiFi provisoning인데, 스마트폰이나 PC와 달리 IoT 디바이스는 UI가 없는 경우가 많아서 AP의 이름이나 패스워드를 다른 방법으로 입력을 해야한다. 이때 주로 스마트폰을 사용을 하는데, 쉽게 말하면 스마트 폰을 이용해서 이 정보를 전달을 한다. 보통 디바이스를 softAP 모드로 놓고 이 디바이스에 스마트폰이 연결를 한후 UDP, TCP로 이 정보를 전달을 하는데, 이 방법외에 다음과 같은 방법이 있다.

SamrtConfig

ESP8266, ESP32에서 사용하는 WiFi 설정프로그램은 TI사의 CC3000에서 사용했던 SmartConfig를 사용한다. 단말은 SmartConfig 모드(packet sniffing mode)에 있고 스마트 폰에서 SSID, PW를 암호화해서 UDP broadcasting한다. 단말은 이 패킷을 받아서 SSID에 접속을 하고 IP를 부여 받는다.

WPS (WiFi Protected Setup)

WPS 버튼을 눌러서 기기를 세팅하는 방법. SSID, PW를 모르고 있어도 설정이 가능.

Local AP

서두에 설명한대로 softAP로 동작을 하고 웹 또는 TCP, UDP로 SSID, PW를 전달하는 방식.

참고


ESP32 개발 환경 설정 – Mac OS

Mac OS에서 ESP32 개발 환경 설정은 다음의 링크를 참고한다.

Tool chain 설정

pip와 pyserial을 설치- 이 과정중에 dependency가 있는 라이브러리 설치는 sudo easy_install xxx  형태로 설치한다.

sudo easy_install pip
sudo pip install pyserial

Toolchain을 다운로드하고, /esp 폴더에 압축을 푼다.

mkdir -p ~/esp
cd ~/esp
tar -xzf ~/Downloads/xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz

bash_profile에 다름 경로를 입력한다.

export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin

ESP-IDF(IoT Development Framework)

https://github.com/espressif/esp-idf.git 이걸 클론하고, IDF_PATH를 설정한다.

export IDF_PATH=~/esp/esp-idf

추후에 리모트 깃의 내용을 업데이트 하려면 다음과 같이 한다.

cd ~/esp/esp-idf
git pull
git submodule update --init --recursive

프로젝트 확인

cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .

설정

cd ~/esp/hello_world
make menuconfig

빌드 및 다운로드

make flash

Monitor

make monitor

To exit the monitor use shortcut Ctrl+]


Mac OS에서 ESP8266 개발 환경

아두이노

1. Arduino > Preferences… 의 메뉴에서 추가적인 보드매니저 URLs에 다음의 링크를 입력한다.

http://arduino.esp8266.com/stable/package_esp8266com_index.json

2. 툴 > 보드 > 보드 매니저… 의 메뉴의 필터에 ESP를 입력 후 esp8266을 선택후 설치한다.

Sming

맥에서는 https://github.com/SmingHub/Sming/wiki/MacOS-Quickstart 이 링크의 내용대로 따라하면 별 무리가 없다. 즉 이클립스, 툴체인, ESP SDK를 설치하고 Sming core를 빌드한다.

이클립스의 환경설정에서 SMING_HOME, ESP_HOME 설정을 한다.

 

SmingFramework의 Makefile-project.mk파일에서 ESPTOOL2의 경로를 다음과 같이 수정한다.

ESPTOOL2 ?= /opt/esp-open-sdk/utils/esptool2

Makefile-macos.mk파일에서 ESPTOOL의 경로를 다음과 같이 수정하고, COM_PORT항목도 환경에 맞게 수정한다.

ESPTOOL ?= $(ESP_HOME)/utils/esptool.py

Basic_Blink 프로젝트의 Makefile-user.mk파일도 다음과 같이 수정한다.

# Local build configuration

## Parameters configured here will override default and ENV values.

## Uncomment and change examples:

## Add your source directories here separated by space

MODULES = app

EXTRA_INCDIR = include

## ESP_HOME sets the path where ESP tools and SDK are located.

## Windows:

# ESP_HOME = c:/Espressif

## MacOS / Linux:

ESP_HOME = /opt/esp-open-sdk

## SMING_HOME sets the path where Sming framework is located.

## Windows:

# SMING_HOME = c:/tools/sming/Sming

## MacOS / Linux

SMING_HOME = /opt/sming/Sming

## COM port parameter is reqruied to flash firmware correctly.

## Windows:

# COM_PORT = COM3

## MacOS / Linux:

COM_PORT = /dev/tty.usbserial-A50285BI

## Com port speed

COM_SPEED= 115200

## Configure flash parameters (for ESP12-E and other new boards):

SPI_MODE = dio

## SPIFFS options

#DISABLE_SPIFFS = 1

SPIFF_FILES = files

Sming 프레임워크 소스코드를 불러와서 라이브러리를 빌드

  • Eclipse 실행
  • [File -> Import -> General -> Existing Project into Workspace] 선택
  • [Select root directory] 에서 SmingFramework 프로젝트 폴더를 선택
  • 프로젝트에서 Build

Blink 예제 빌드 확인

  • [File -> Import -> General -> Existing Project into Workspace] 선택
  • [Select root directory] Basic_Blink 프로젝트 폴더선택
  • 프로젝트에서 Build

프로젝트 빌드가 성공하면 [프로젝트 폴더\out\firmware] 폴더안에 *.bin 파일들이 생긴다.

참고


아두이노에서 ESP8266 사용하기

아두이노에서 ESP8266 사용하기

  • 아두이노 IDE는 1.6.4 이상의 버전을 설치
  • 아두이노의 환경설정에서 추가적인 보드매니저 URLs에 다음과 같이 입력

http://arduino.esp8266.com/stable/package_esp8266com_index.json

  • 툴 > 보드매니저에서 ESP8266을 검색후 ESP8266 보드를 설치한다.

arduino_board_maneger

  • 설치후 툴 > 보드 메뉴에서 가지고 있는 ESP8266보드를 선택한다.

핀레이아웃

간단한 Blink Test