본문 바로가기

개발자/Arduino

Decoding and Encoding JSON with Arduino Nano 33 IoT 1 Arduino로 JSON 데이터 주고받기와 OpenWeatherMap API 스마트 팩토리 분야 중 인쇄장비 데이터 송수신 장치를 개발 중입니다. 센서 데이터 수집 서버로 JSON 형식의 데이터를 주고받아야 하는 데 잘 안되네요. 센서 데이터 수집 서버하고 프로토콜 맞추는 일도 한참 걸리고, JSON은 알지도 못하니 배우면서 해야 하거든요. 이런. 아래 자료의 출처는 Decoding and Encoding JSON with Arduino or ESP8266 임을 알립니다. 정리가 잘 되어 있습니다. 관련 포스팅은 아래를 참고하십시요. ArduinoJson 데이터의 Decoding / Ecoding 예제 Decoding and Encoding JSON with Arduino Nano 33 IoT 2 Dec..
Decoding and Encoding JSON with Arduino Nano 33 IoT 2 Arduino로 JSON 데이터 주고받기와 OpenWeatherMap API 두 번째 포스팅 Arduino로 API 요청 프로그래밍하기 이전 포스팅과 이어서 진행합니다. 이전 포스팅을 보시려면 아래 링크를 따라가서 확인하십시요. Decoding and Encoding JSON with Arduino Nano 33 IoT 1 이제 지역 날씨 데이터를 반환하는 URL이 생겼습니다. 이 작업을 자동화하고 Arduino 또는 ESP8266 프로젝트에서 해당 데이터에 액세스 할 수 있습니다. 다음은 켈빈 및 습도로 온도를 반환하기 위해 이더넷 실드가있는 Arduino에 업로드해야하는 전체 스크립트입니다. 아래 코드는 Ethernet을 사용합니다. Nano 33 iot에서 제대로 출력하는 코드는 끝 부분에 있습니다..
ArduinoJson 데이터의 Decoding / Ecoding 예제 간단하게 아두이노 Nano 33 IoT 보드에서 확인할 수 있도록 예제를 제공합니다. Decoding / Parsing 예제 구문은 아래에 있고 IoT보드에 올리려서 테스트하느 코드도 함께 올립니다. char json[] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}"; StaticJsonBuffer jsonBuffer; JsonObject& root = jsonBuffer.parseObject(json); const char* sensor = root["sensor"]; long time = root["time"]; double latitude = root["data"][0]; double longitude = roo..
format을 가진 출력을 위한 sprintf( ), dtostrf( ) 아두이노에서 직렬 통신 또는 LCD 등에 문자열을 출력할 수 있다. 이때, format을 가진 내용을 단순히 print( )라는 함수만으로 구현하기는 귀찮은 면이 있다. 이때 사용하는 함수가 sprintf( )이다. 이 함수는 아두이노를 구성하는 AVR에서 제공하는 함수이다. int sprintf( char *buffer , const char *format[,argument]...) C-언어에서 printf( )가 문자열을 화면에 출력하는데 비해 sprintf( )는 첫번째 매개변수인 buffer에 출력한다. 즉, 출력할 내용이 문자열 buffer에 저장된다. 이 문자열 buffer[ ]를 전송하면 format이 있는 양식으로 직렬포트 또는 LCD에 출력할 수 있다. char buffer[20]; in..
SSD1306 OLED 로 LM35 온도센서 값을 디스플레이 아두이노에서 온도 습도와 같은 데이터를 ssd1306 oled에 디스플레이하기 위한 소스코드를 보려고 찾아서 코드를 올려둡니다. 아래 참고 사이트에 기록된 사이트를 번역하여 올려둔 내용임을 알립니다. 이 튜토리얼은 Arduino UNO 보드를 SSD1306 OLED 디스플레이 및 LM35 아날로그 온도 센서와 인터페이스 하는 방법을 보여줍니다. 이 프로젝트에서 SSD1306 OLED 디스플레이 (128x64 픽셀)는 섭씨, 켈빈 및 화씨로 환경 온도를 표시하는 데 사용됩니다. Arduino를 SSD1306 OLED 디스플레이와 인터페이스 하는 방법을 보려면 다음 게시물을 방문하십시오. Interfacing Arduino with SSD1306 OLED display 이 프로젝트에서 SSD1306 OLED..
달리기와 술자리도 마다하고, 여기까지 돌아가는 코드 임베디드 프로그램을 짤 때는 대부분 사소한 코드로 시간을 다 잡아먹는다. % 하나 더 붙였다고, 아랫줄과 윗줄이 바뀌었다고 방금 전까지 잘 나오던 디스플레이가 안 나오는 경우도 있고, 마이크로 컨트롤러 내부에서 일어나는 일을 알지 못하니 에러가 나면 정확한 위치를 찾기도 어렵다. 이것저것 해보지 말아야 한다. 검증된 코드만 사용하고, 순서를 정확히 지킨다. 이런 과정을 정확히 배운 때가 있었다. 아마 가장 먼저 입사한 연구소에서 펌웨어와 C언어를 배웠을 때다. 훈련하는 날이 화, 목, 토로 정해져 있다. 반드시 지켜야 하는 훈련이라 달리러 나갈 때 날도 좋은 데 왜 달려요? 혹은 인생이 좀 힘들죠? 하는 질문은 등산하는 사람에게 왜 산에 올라가느냐는 질문과 같다. 마찬가지로 달리지 않을 때도 이유 없다...
Nano 33 IoT 보드 온도 습도 센서 dht11 테스트 DHT11은 NTC 방식으로 온도센서와 프로세서를 포함하고 있고 트리거 신호에 의해 온도와 습도 값을 40bit로 보내어 줍니다. 40bit에는 습도(상위 8Bit, 하위 8bit) + 온도(상위 8Bit, 하위 8bit) + Parity Bit(8bit)로 되어 있습니다. 0001 0101 0000 0000 + 0001 0110 0000 1000 + 0011 0011 그럼 NTC 가 무엇인지 알아보겠습니다. 저항의 온도 계수에 따라 서미스터는 크게 두 종류로 구분할 수 있습니다. k(1차 저항 온도 계수) > 0인 경우, 서미스터의 저항은 온도에 따라 증가하며, 이러한 서미스터를 정특성 서미스터(PTC thermistor:Positive Temperature Coefficient thermistor)라..
Nano 33 IoT 보드 간단한 서버 만들고 AP로 동작 이 예제에서 간단한 웹 서버를 사용하면 웹을 통해 LED를 깜박일 수 있습니다. 이 예에서는 beginAP( ) 함수를 사용하여 로컬 WiFI 네트워크에 의존하지 않고 액세스 포인트를 설정합니다. 이 예제는 WiFi 모듈의 IP 주소를 Arduino 소프트웨어 (IDE) 직렬 모니터에 나타냅니다. 보드의 IP 주소를 알고 나면 웹 브라우저에서 해당 주소를 열어 Nano 33 IoT 보드의 13번 BuilrIn LED를 켜고 끌 수 있습니다. 보드의 IP 주소가 yourAddress 인 경우 : http://yourAddress/H는 LED를 켭니다. http://yourAddress/L는 LED를 끕니다. 서버로 동작하는 씨리얼 모니터 화면은 다음과 같습니다. 아래 소스코드를 보면 arduino_secr..