:::: MENU ::::
Browsing posts in: Wireless

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


Azure IoThub에서 수신된 데이터 확인하기

Azure IoThub에 디바이스를 연결하고 MQTT 프로토콜을 이용해서 데이터를 보내면 이 내용을 Monitoring > Metric 에서 설정하는 대로 그래프로 표시된다. 하지만 메시지 포멧과 데이터의 값을 보려면 콘솔을 열고 다음과 같은 명령을 입력해야 한다.

az iot hub monitor-events –hub-name {IotHub Name} –output table

여기서 IotHub Name는 생성한 IoTHub의 이름이다.

위 내용은 작년(2018)에 테스트를 하던 건데 오늘(2019.5.2) 다시 테스트를 하려고 보니 안된다. 구글링 해보니 CLI 명령어가 바뀜. 이 링크 를 확인.

az iot hub monitor-events -n {iothub_name}


무게센서와 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에 OLED 연결하기

SSD1306 OLED display는 다음과 같이 I2C로 연결을 한다. 참고로 ESP32 모듈의 핀맵은 Datasheet를 참고해야 한다.

그리고 ESP32 SSD1306 아두이노 라이브러리를 설치를 하고, 같이 설치되는 예제프로그램에서 하드웨어 핀에 맞게 코드를 수정하면 된다.

// Initialize the OLED display using Wire library
SSD1306 display(0x3c, 21, 22);

참고문서:


ESP32 개발 환경 설정 – Mac OS

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

Tool chain 설정

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

sudo easy_install pip
brew install cmake ninja dfu-util

다음은 툴체인을 다운로드하고, 설치를 하는 과정임

mkdir -p ~/esp
cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git
cd ~/esp/esp-idf
./install.sh

환경설정

. $HOME/esp/esp-idf/export.sh

다음의 내용을  .bash_profile에 추가한 다음에 esp 개발시 터미널에서 get_idf를 실행하면 된다.

alias get_idf=’. $HOME/esp/esp-idf/export.sh’

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

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
idf.py set-target esp32
idf.py menuconfig

빌드 및 다운로드

idf.py build
idf.py -p PORT flash monitor. // 빌드와 모니터링을 동시에

Monitor

make monitor

To exit the monitor use shortcut Ctrl+]


실내 측위 – BLE Tag, AoA, AoD

기존 비콘의 한계

  • Beacons only work with smartphones, not tags, which limits how they can be used
  • They are able to locate objects in best case within 3-4 meters, which is fine for determining a general location, but is not refined enough to meet the requirements for many of today’s applications
  • Beacons are battery-operated, which impacts their ability to deliver real-time location; frequent transmissions drain the device’s battery, meaning frequent replacements are necessary

AoA, AoD의 사용

AoA(신호의 수신 각도): 기기가 수신기 안테나 배열로 부터 오는 정확한 방향을 기반으로 한다. AoA를 사용하면 신호를 측정하기 위해 동일한 장치 내에서 여러 개의 안테나가 사용된다. 이렇게하면 안테나가 미터가 아닌 10-20 센티미터의 정확도로 태그 또는 스마트 폰을 찾을 수 있다.

AoD (신호의 출발 각도): 이 접근법에서 위치 정보는 모바일 장치로 다시 이동한다. AoD 접근법은 “실내 GPS”와 같이 작동하는데 고정 인프라 장치 (Locators라고도 함)는 GPS 위성 작동 방식과 마찬가지로 수신 장치를 브로드캐스트하고 인식하지 못한다. 즉, 무제한의 장치를 찾을 수 있고 개인 정보 문제는 없다.

참고



무선으로 3D Printer 사용하기

3D프린팅을 위해서 SD 메모리를 사용하거나,  USB 케이블을 연결해서 프린팅을 한다. 하지만 USB 케이블을 사용하면, 장시간 프린팅시 1대의 PC가 프린팅만을 위해 사용될 수 밖에 없다. 무선으로 프린팅시 다음과 같은 장점이 있다.

  • The noisy printer can be placed in a sperate location allowing for different ventilation options, and convenient noise reduction.
  • Less mess.  Cords can be ugly and can be trip hazards.
  • Multiple computers are becoming a household norm.  Sick of giving up your computer for your significant other, child, or visiting a friend to play with your 3D printer?  Go wireless.
  • 3D printing is a long process.  Wouldn’t it be nice to be able to start a print job from a remote location to be completed by the time you get home?

그리고 이 USB케이블을 사용하지 않고 무선으로 프린팅을 하기위해 OctoPrint, AstroPrint, Repetier Server등의 Host 프로그램이 필요하다.

OctoPrint

  • 오픈소스 기반. 업데이트는 빠르지 않은 편
  • 설정이 너무 많아서 잘 알지 못하면 오히려 불편

AstroPrint

  • OctoPrint를 기반으로 사용성을 개선한 제품
  • UI가 간단하여 일반사용자에게 알맞음

Repetier Server

  • UI가 괜찮음
  • 무료버전과 유료버전이 있음

이 세가지 제품을 각각 Linux, Mac, Windows에 비교. 😉

http://3dprinterpower.com/index.php/best-3d-printer-wireless-host-software/


삼성 Artik Edge-to-cloud Security

삼성 아틱의 보안은 Edge-to-cloud Security라고 설명을 한다. 즉 칩레벨에서 부터 클라우드까지 보안요소가 있다는 얘기.

Device Protection and Trusted Code Execution

Hardware의 경우 Device protection과 trusted code execution이 가장 중심이 되는 요소임.

  • Secure Boot
    타겟 디바이스에서 동작하는 코드의 신뢰성을 보장이 필요
    소프트웨어는 타겟장치에서 코드 실행을 허용하기 위해 소프트웨어 공급자가 서명해야함.
  • KMS infrastructure for code signing
    코드 서명을 쉽게하기위한 Key Management Service (KMS), ARTIK CodeSigner service, FIPS-certified hardware security modules (HSM)를 제공
  • Secure Element
    각 디바이스에 SmartThings cloud에 등록된 private/public key쌍이 저장이 되어서 출시됨.
  • Secure JTAG access
    JTAG을 사용시 패스워드 필요

Protected Communications

디바이스와 클라우드 사이의 통신 보안

  • Encryption
    Transport Layer Security (TLS) 또는 datagram transport layer security (DTLS)사용
    ARTIK modules also provide hardware acceleration (Crypto Engine) for AES and RSA encryption and decryption. Additionally, the ARTIK platform uses Elliptic Curve Diffie–Hellman (ECDH) for session encryption key generation, which provides a high level of protection with low power consumption.
  • Authentication
    Public Key Infrastructure (PKI) 사용
  • Easy secure onboarding
    Secure Device Registration (SDR): Mutual authentication between a gateway device and the cloud registration servers

Edge-to-cloud Security


이 한장의 그림으로 지금까지 설명된 내용이 나와있음.

참고


Pages:1234