전체 글

전체 글

    UART

    UART란 UART는 범용 비동기 송수신기( Universal Asynchronous Receiver / Transmitter)의 약자로 두 장치 간에 직렬 데이터를 교환하기 위한 프로토콜 또는 규정을 정의합니다. UART는 매우 간단하며 양방향으로 데이터를 송신 및 수신하기 위해 송신기와 수신기 사이에 두 개의 와이어만 사용합니다. 또한 와이어 양 끝단은 접지 연결이 되어 있습니다. UART를 사용한 통신은 데이터가 한 방향으로만 전송되는 단방향 통신(simplex), 양쪽으로 모두 통신할 수 있으나 한 번에 한 방향으로만 전송이 가능한 반이중 통신(half-duplex) 또는 동시에 양방향으로 전송이 가능한 전이중 통신(full-duplex) 방식이 있습니다. 동기 통신과 비동기 통신 먼저 비동기화란..

    STM32_RPI4_thingspark

    이번에는 AWSIOT가 아닌 thingspark에 데이터를 전송해보겠습니다. STM32 설정은 전에 했던 실습과 동일합니다. https://rorsi.tistory.com/22?category=534836 thingspark란 the K system에서 만든 IOT Cloud Service로 여러 센서 데이터를 모으고 바로 차트를 확인할 수 있습니다. RESTFull, MQTT, WebSocket등을 지원합니다. https://www.thingspark.co.kr/ thingspark - IoT 데이터 수집,분석 및 활용 thingspark에서 IoT 데이터 수집, 분석 및 활용해보세요. thingspark는 개방형 IoT 플랫폼입니다. www.thingspark.co.kr thingspark 홈페이지에..

    STM32_RPI4_AWS IOT

    STM32 Device에서 Rpi4(라즈베리파이 4)를 거쳐 AWSIOT까지 무사히 전송해보는것을 소개하고자 합니다. 우선 본문에 사용되는 STM32 Device는 STM32L475VGT6칩을 사용하는 B-L475E-IOT01A1입니다. STM32 Project 생성 STM32CUBEIDE를 통해 Project를 생성하면 다음과 같은 창이 나오게 되는데 Board Selector를 클릭해준뒤 보드 모델을 검색해줍니다. 해당 보드를 찾았다면 Next 버튼을 눌러줍니다. 원하는 Project명을 정한뒤 Finish를 누르면 다음과 같은 창이 나오게 되는데 Yes를 눌러줍니다. 그러면 모든 핀들이 활성화된 상태로 설정이 됩니다. 이어서 라즈베리파이와 uart 통신을 하기 위해서 uart4를 활성화 시켜주고 B..

    STM32CubeIDE에서 FreeRTOS중 printf 오류 해결

    STM32를 사용하여 FreeRTOS를 작성할 때에 코드에서 printf를 수행할 때 특정 경우에 오류가 발생(코드가 제대로 출력이 안된다거나, hardfalut)하는 것을 볼 수 있다. 또는 malloc을 사용하여 큰 용량의 데이터를 Heap에서 확보하고자 할때 오류가 발생한다. https://github.com/mpaland/printf GitHub - mpaland/printf: Tiny, fast, non-dependent and fully loaded printf implementation for embedded systems. Extensive test s Tiny, fast, non-dependent and fully loaded printf implementation for embedded..

    ARM 이란

    ARM이란 Adavanced RISC Machine의 약자로 CPU의 한 종류입니다. ARM 프로세스 1985년 최초 에어콘 컴퓨터스(Acorm Computers)사에서 ARM 프로세서 개발. 1990년, 애플과 VLSI합작해서 ARM 회사설립 저전력, 32bit-RISC의 고효율, 낮은 가격이 특징 소형 디바이스, 모바일 단말기 등에서 강점을 드러냄 ARM 프로세스와 상대적인 개념으로 인텔 프로세서가 있다. ARM은 fabless 기업으로 공장이 없고 설계만 한다. ARM의 설계를 바탕으로 반도체 회사에서 주변장치를 더해 반도체 칩을 생산한다. (Apple, Samsung, IBM, NVIDIA 등) 설계한 프로세스에 대한 라이센스로 수익을 창출한다. 2016년, 소프트뱅크가 IoT산업의 대박 성장을 ..

    GPIO_LED_수동제어2

    이전에 수동제어1에서 했던거를 이어서 GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_LED_Pin; //PC13 1 Pin)); assert_param(IS_GPIO_MODE(GPIO_Init->Mode)); /* Configure the port pins */ while (((GPIO_Init->Pin) >> position) != 0x00u) { /* Get the IO position */ ioposition = (0x01uL Pin) & ioposition; if (iocurrent == ioposition) { /* Check the Alternate function parameters */ assert_param(IS_G..

    GPIO_LED_수동제어1

    STM32CubeIDE에서는 HAL 드라이버를 통해 편하게 GPIO를 간편한 코드로 제어할 수 있다. 이번에는 그 원리를 알아내어 GPIO를 수동으로 제어하는 방법에 대해 알아보고자 한다. LED 핀은 PC13에 GPIO_OUPUT 연결되어 있는 상태로 진행한다. static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIO_LED_GPIO_Port, GPIO_LED_Pin..

    RaspberryPi - MQTT(Mosquit

    라즈베리파이 Mosquitto MQTT 실행 방법 1. MQTT Broker 설치 sudo apt install mosquitto mosquitto-clients 프로그램 서명키, 패키지 등록 절차 없이 위의 명령을 입력하면 설치된다. 한방에 브로커와 클라이언트 모두 설치됨. 2. MQTT Broker 활성화 및 동작상태 확인 활성화하기 sudo systemctl enable mosquitto 동작상태 확인하기 sudo systemctl status mosquitto 3. Publish&Subscribe MQTT에는 크게 두가지 기능이 있다. 바로 Publish(발행), Subscribe(구독) 이다. 간단히 말해서 메세지 송,수신으로 생각하면 된다. 우선 Publish를 알아보자 mosquitto_pu..

    Arduino nano 33 IOT

    아두이노 나노 33 IoT은 SAMD21G18A 칩을 MCU로 사용하고 있고, IoT에서 중요하게 여겨지는 보안을 위해 ATECC608A 암호화 칩을 사용하여 SHA-256, AES-128등 다양한 암호화를 지원합니다. 그리고 LSM6DS3 IMU를 사용하여 3축 자이로, 3축 가속도 센서를 기본적으로 사용할 수 있습니다. IoT를 구현하기 위한 통신 칩은 ESP32기반으로 만들어진 NINA W102 칩을 사용합니다. 통신 WIFI BLE 4.2 칩 SAMD21G18A 클럭 48MHz 메모리 256KB 플래시 메모리, 32KB SRAM(램) 인터페이스 USB SPI I2C I2S UART 전압 5V USB 입력 전압 4.5 ~ 21V VIN 입력 전압 3.3V I/O 전압 핀 아웃 디지털 핀 14개 아날..

    Arduino nano 33 IOT - 개발환경 설정

    Arduino NANO 33 IOT 보드 설치 아두이노 실행파일을 열어 메뉴 > 툴 > 보드 > 보드매니저를 실행합니다. 보드매니저 검색창에서"NANO 33"이라고 검색하고 'Arduino SAMD Boards (32-bits ARM Cortex-M0+)'를 확인하고 설치합니다. 보드를 설치하고 다시 보드 옵션을 확인해보면 Arduino SAMD 하위에 Arduino NANO 33 IoT 보드를 확인할 수 있습니다. 이어서 NANO 33 IoT를 선택하여 보드를 설정합니다. 드라이버 설치가 완료되면 윈도우에서는 장치 관리자에서 포트를 확인하여 설정할 수 있고, 리눅스나 맥에서는 장치 정보에서 보드가 인식되었는지 확인할 수 있습니다. 그 다음 아두이노 개발환경에서 포트를 설정합니다. 간단한 예제를 아두이노..