본문 바로가기

Arduino35

ESP8266 OTA(Over The Air) 사용하기 - 업데이트하기 참고 소스코드 저번에 OTA 준비작업을 하였다면 이번에는 실제로 업데이트를 해보겠습니다. 저번과 조금은 방법을 바꿔서 해보도록 하겠습니다. 부팅할때마다 서버에 파일업데이트를 확인하는 방법입니다. 그러기 위해서 소스에서 버전관리를 해줘야 합니다. 12String version="sensorview 1";String nextVersion="esp8266/sensorview2.bin";cs 이런식으로 현재버전과 앞으로 업데이트 할 버전을 관리합니다. 그리고 서버쪽에는 업데이트 할 버전의 파일을 만들어서 넣어두면 부팅시 접속하여 업데이트 할 버전의 파일을 다운로드 합니다. 물론 새 버전에서는 위의 버전을 한단계씩 바꿔줘야 합니다. ota를 할 함수는 재부팅시마다 실행되는데 ota 코드는 아래와 같습니다. 123.. 2019. 3. 18.
arduino에서 CT로 전류값 읽기 예제소스코드 이번 프로젝트에서 CT로 전류값을 읽어 제어를 해야 하는 부분이 있어서 검색해보니 아두이노를 이용하여 전류값을 측정하는 방법은 많이 나와있습니다. 그래서 해봤는데 CT측정 값이 정형파로 나와 정확한 값을 측정하기는 어려웠습니다. 대충 비슷한 값을 넣어주고 해서 비슷하게는 되지만 정확한 값을 알기는... 제가 사용한 CT센서는 화인트랜스텍의 FS9L10입니다. 개폐형이라 사용하기 쉽습니다. 회로구성은 CT에 저항을 연결하여 나오는 전압값을 ADC로 받아서 처리하면 됩니다. 테스트 그래프입니다. 일단 저는 100옴짜리 저항을 사용하였습니다. 그리고 ADC값을 출력해봅니다. 시리얼 플로터로 보면 위와같은 그래프가 출력됩니다. 최고 값이 240정도 나오는데 전압으로 환산을 해보면 240/1024*5.. 2019. 3. 6.
ESP8266-arduino Serial(UART) 통신시 유의점 아두이노와 ESP8266을 UART를 이용하여 서로 데이터를 주고받고 있습니다. 데이터를 보낼때 serial.write를 이용하여 byte array를 전송하고, 받을때는 serial.read()와 serial.readBytes()를 이용하여 받고있습니다. 그런데 아두이노 ESP8266 으로의 전송시 ESP에서 데이터 수신시 데이터가 잘리는 현상이 발생합니다. 위 그림에서 표시된 부분을 보면 length가 15가 정상이고, length가 15이면 정상수신이라 화면에 뿌려준 뒤 서버로 전송합니다. 하지만 뒤로 갈수로 데이터가 잘려 length가 이상하게 됩니다. length는 패킷의 2번째 byte인데, 데이터가 끊기고 밀려서 저렇게 됩니다. Arduino쪽이 메인 MCU라서 위 그림과 같이 Arduino.. 2019. 2. 21.
ESP8266에서 I2C 사용하기 ESP8266의 경우 I₂C 핀이 따로 지정되어 있지 않습니다. 따라서 I₂C를 사용하기 위해서는 핀을 지정해주셔야 합니다. 물론 데이터시트에 보면 특정핀을 지정하였지만 변경가능합니다. 12345#include void setup(){ Wire.begin(2,14); //SDA,SCL}cs 위와 같이 Wire 라이브러리를 추가하시고, Wire.begin(SDA,SCL); 을 setup 안에서 초기화 해주시면 됩니다. 반드시 사용할 핀의 SDA와 SCL 순서대로 해주세요~ 2018. 11. 6.
4-20mA 센서 Arduino에서 읽기(진동센서) 이전포스팅인 전류센서 읽기와 마찬가지로 이번에는 진동센서를 읽어봤습니다. 4-20MA 센서 ARDUINO에서 읽기(전류센서) 진동센서는 HandsFord의 HS422입니다. 센서 출력은 4-20mA이고, Wire는 4가닥이지만 2가닥만 사용합니다.(Black, White) 그림을 보시면 별도의 4-20mA 측정기를 연결하라고 되어있는데 아두이노를 사용하여 읽을려고 합니다. 진동센서의 특성상 1초에 수백 수천번을 샘플링해야 하지만, 여기서는 간단히 1초에 1번만 하도록 합니다. 흰색을 24V에 검은색은 250옴 저항을 통해 아두이노 A0핀으로 연결합니다. 24V 전원의 GND와 아두이노의 GND는 서로 연결하여 줍니다. 12345678910111213141516float sensorValue = analo.. 2018. 9. 3.
한글 LCD XLINK1602 아두이노에서 사용하기 Xlink1602 아두이노용 코드 아두이노 라이브러리에서는 CLCD 한글을 공식적으로 지원을 하지는 않습니다. 그리고 CLCD가 5X8이다 보니 한글을 만들기도 힘들구요. CLCD 글자 만들기 위 링크는 이전에 포스팅한 블로그입니다. 그래서 한글이 지원되는 LCD를 찾았는데 가격은 조금 비쌉니다. 크기는 LC1622과 크기가 같습니다. dot는 글자당 11X12입니다. 충분히 한글을 표시할 수 있습니다^^ 다만 문제가 드라이버가 직접개발한 XD 1602AD라고 합니다. 예제를 제공합니다만 Arduino용 라이브러리는 없어서 Arduino에서 사용가능하도록 코드를 손봐야 합니다. xlink sample code 위 링크는 업체에서 제공하는 샘플코드인데 iar, winavr, codevision용으로 제공합.. 2018. 7. 26.

인기글