:::: MENU ::::

충전용 밧데리

Lipo 밧데리

충전용 밧데리로  많이 사용하는 Lipo밧데리는 다음과 같이 불린다.

  • Lithium Ion Polymer
  • Li-Poly
  • LiPoly
  • LiPo

밧데리 전압

일반적으로 3.7V이며, 4.2V 도 있음. 그런데 충전을 해보니 3.7V라고 쓰여진 제품도 완충되면 4.2 정도까지 전압이 나온다.  중요한 것은 아래 그래프처럼 최대 4.2V에서 3.7V를 유지를 하다가 3.4V가 되면 밧데리를 더 이상 사용이 안되고, 3.0V가 되면 컷오프 회로가 작동을 해서 회로를 끊어버린다.

The voltage starts at 4.2 maximum and quickly drops down to about 3.7V for the majority of the battery life. Once you hit 3.4V the battery is dead and at 3.0V the cutoff circuitry disconnects the battery.

 

주의할 점

  • 허용 전압 이상(4.2V) 으로 충전 금지
  • 허용 전압 이하(3.0V)까지 방전 금지
  • 허용 전류 이상으로 충전 금지
  • 허용 온도 스펙 (0~50도)에서만 충전 및 사용
  • 밧데리 팩을 직렬, 병렬 연결 금지 <== 이런 것은 공장에서 각 배터리의 전압차를 기계로 잘 맞춰서 만든다고 한다.

참고 문서https://learn.adafruit.com/li-ion-and-lipoly-batteries?view=all


태양광 충전

태양광 패널

태양광 패널에서 생성된 전력을 충전회로를 통해 밧데리에 충전을 한다. 일반적으로 태양광 패널은 6V, 12V이다. 관련한 솔루션을 찾아보니 한 3가지 정도가 나온다.

Dual Power 입력의 처리

MAX1551같은 칩을 사용하거나. 다음과 같이 처리하면 첫번째 파워가 연결이 됐을 경우 2번째 파워를 통한 입력을 막을 수 있다.

A P-channel MOSFET, M1, is used to prevent back conducting into the 2nd power supply when the 1st power supply is present and Schottky diode, D1, is used to prevent 2nd power supply loss through the 1kΩ pull-down resistor.

 



LED 회로 주의점

각  LED의 최대 전류를 넘으면 안됨. 하지만 각 LED 소자의 Forward Voltage가 조금씩 다를 수 있기 때문에 각각의 LED에 저항을 달으라는 이야기.


Mac OSX에 nRF52 개발 환경 설정하기

2년전에 작업한 Mac OS X에 nRF51 개발 환경 설정하기 포스팅을 보면서 nRF52 환경을 설정하다가 달라진 점이 있어서 다시 쓰게된 포스팅.

개념은 다음과 같다. 1) gcc 와 툴체인 설치 2) OSX용 nRF5x Command Line Tools 설치 3) SDK 설치.  이 과정에서 gcc 실행파일 위치를 bash_profile에 입력하고, SDK의 gcc 컴파일 설정을 이에 맞게 하면 된다.

gcc 와 툴체인 설치

여기에서 최신 버전 다운로드 및 다음과 같이 압축을 푼다. 설치 위치는 크게 중요하지 않다. 만약 이전에 설치를 했을 경우 ~/usr/local/bin 아래 설치를 했을 수도 있음.

$ mkdir /usr/local/
$ tar -xjf gcc-arm-none-eabi-8-2019-q3-update-mac.tar.bz2 -C /usr/local/

nRF5x Command Line Tools 다운로드 및 설치

위 gcc경로와 nrfjprog, mergehex의 경로를 bash_profile 입력한다.

export PATH=/usr/local/gcc-arm/gcc-arm-none-eabi-8-2019-q3-update/bin:$PATH
export PATH=/usr/local/bin:/usr/local/sbin:/usr/local/nrfjprog:$PATH

SDK 다운로드 및 설치

components/toolchain/gcc/Makefile.posix 파일을 다음과 같이 수정한다. GNU_VERSION은 다음과 같이하면 알 수 있다.

$ arm-none-eabi-gcc –version

GNU_INSTALL_ROOT := /usr/local/gcc-arm-none-eabi-8-2019-q3-update/bin/
GNU_VERSION := 8.3.1
GNU_PREFIX := arm-none-eabi

컴파일 및 다운로드

example 폴더의 예제를 컴파일 및 다운로드 해 본다. 참고로 PCA10040 보드가 nRF52832칩을 사용한 보드이니 이 에제를 사용해야 함.

nRF52832-MDK를 사용할 경우에는 nRF SDK를 nRF52832-MDK를 설치한 위치에 nrf_sdks 아래 copy를 하고, make 파일을 수정해야 한다. 그리고 다운로드를 위해 pyocd도 설치해야 함.

$ make
$ make flash

참고 : https://wiki.makerdiary.com/nrf52832-mdk/nrf5-sdk/



arm White paper – The route to a trillion devices

소프트뱅크가 arm을 인수후  2017년에 발간된 arm의 백서 – The route to a trillion devices

2035년에는 1조개의 IoT 디바이스가 사용될 것이라는 전망

By 2035, the technology companies that sell IoT hardware and services could be serving a market worth a trillion dollars per annum. That is an exciting figure, but an even greater value will flow to the companies that utilize the information collected by those systems, and to the consumers who will benefit from widespread efficiency gains across the economy.

 


Thinger.io 서비스 사용하기

IoT 서비스 중 하나인 Thinger.io를 사용해 봤다.

아두이노 라이브러리를 제공을 해서 쉽게 ESP32에서 사용이 가능하다.

  • 먼저 아두이노 라이브러리 매니저에서 thinger로 검색을 해서 라이브러리를 설치를 하고 ESP32 예제를 연다.
  • 물론 먼저 이 서비스에 가입을 하고, USERNAME, DEVICE_ID, DEVICE_CREDENTIAL을 define 문에 정의한다.

#define USERNAME “*********”

#define DEVICE_ID “*********”

#define DEVICE_CREDENTIAL “*********”

  • 접속하고자 하는 SSID와 SSID_PASSWORD를 입력한다.

#define SSID “*********”  //your wifi SSID

#define SSID_PASSWORD “*********” // your wifi password

  • 아래 코드처럼 seup() 함수에 입출력을 정의하면, 서비스에서 이 값을 읽어서 대쉬보드에서 읽어서 데이터를 시각화 해준다.

// digital pin control example (i.e. turning on/off a light, a relay, configuring a parameter, etc)

thing[“BuiltInLed”] << digitalPin(2);

// resource output example (i.e. reading a sensor value)

thing[“dht11”] >> [](pson& out){

      out[“temperature”] = dht.readTemperature();

      out[“humidity”] = dht.readHumidity(); 

}

 


ESP32에 Nabto 사용하기

이전 포스트에서 Nabto 사용법을 다뤘는데, 이번 포스팅에서는 ESP32에 Nabto를 포팅하여 테스트를 하려고 한다.

이미 Nabto의 github에 ESP32에 포팅된 코드가 있고 관련 블로그가 있다. 이 블로그의 내용을 참고해서 다음과 같이 진행을 한다.

  • 먼저 깃헙에서 코드를 클론한다.

$ git clone –recursive https://github.com/nabto/unabto-esp32.git

  • unabto-esp32로 이동을 해서 menuconfig를 하여 보드의 시리얼 설정을 한다.
  • 보드가 접속할 AP의 wifi 정보와, Nabto ID, Nabto Key값을 설정한다.
  • 이렇게 설정이 끝나면 다음과 같이 make, flash, monitor명령을 써서 업로드한 코드가 동작을 하는 것을 볼 수 있다.

$make -j5 flash monitor

  • 마지막으로 Google Play and Apple’s App Store. 에서 앱을 다운로드해서 디바이스를 찾아서 등록을 하면 원격에서 디바이스의 정보를 모니터링 및 컨트롤이 가능하다.

M5Stack with AskSensors

M5Stack은 ESP32기반의 디바이스이며, AskSensors는 IoT 디바이스로 부터 데이터를 받아서 그래프 형태로 보여주는 IoT 플랫폼이다.

M5Stack

ESP32 기반의 개발툴로 가로 세로  5cm라서 M5Stack이라고 이름이 붙여졌다고 한다.

AskSensors

AskSensors is an IoT platform designed to be the easiest application on the market, allowing users to connect, visualize and analyze their sensors data over the cloud. In this tutorial, we’ll be learning the basics you need to get started with askSensors, starting from creating account to visualizing data in graphs.

M5Stack으로 AskSensors에 데이터 보내기

M5Stack에 DHT12센서를 연결하여 온도, 습도 정보를, AskSensors에 연결해서 데이터를 그래프로 보는 형태의 구성은 다음과 같은 형태로 진행을 한다.

AskSensors 설정

설정은 간단하다. 서비스에 가입을 하고 새로운 센서(New Sensor를 클릭)를 만든후 모듈을 생성(모듈 탭에서 Add 버튼 클릭)한다. 여기서 모듈은 하나의 센서의 값을 받는 단위라고 생각하면 된다. 그러면 API 키가 생성이 되면 이 API 키의 end point에 데이터를 쓰면 된다.

AskSensors

모듈1에 10이라는 값을 쓴다면 다음과 같이 데이터를 보내면 된다.

https://asksensors.com/api.asksensors/write/MTWN7AQOLWJNEIF8RGMAW5EGKQFAHN2K?module1=10

Data Visualization

“Show graph”를 클릭하면 데이터를 그래프로 볼 수 있다.

AskSensors graph

실제 데이터

temp & humidity

테스트를 해보니 AskSensors는 ThingSpeak와 거의 같은 서비스인데 아직 베타버전. 아래 그림은 같은 데이터를 ThingSpeak에서 본 그래프이다.

ThingSpeak

참고


Pages:1234567...56