본문 바로가기

분류 전체보기92

[아두이노] 안드로이드와 BLE(Bluetooth4) 통신1 - 안드로이드 개발 0. 준비 안드로이드에서 BLE통신을 구현하는 것은 매우 어렵고 복잡하다. 그래서 reference문서를 보거나 서칭해가면서 ble를 직접 앱상에 구현해보려고했는데 너무 어려워서 일단 중단하고 프로젝트 기능 완성에 초점을 맞춰보기 위해 구현된 ble앱을 깃헙에서 다운받아서 필요한 UI만 새로 코딩하여 작동시키는 방식으로 진행했다. 이용한 ble앱은 SimpleBluetoothLeTerminal로 깃헙주소는 다음과 같다. https://github.com/kai-morich/SimpleBluetoothLeTerminal GitHub - kai-morich/SimpleBluetoothLeTerminal: Android terminal app for Bluetooth LE devices using custom.. 2021. 11. 30.
[아두이노] OLED에 온습도 센서값 출력하기 oled에 온습도 값과 토양습도값을 출력하고자 한다. 소스코드는 다음과 같다. #include #include #include #include #include "Timer.h" //pin setting int soil = A0; DHT11 dht11(A2); Timer t; //value initialize float humi=0, temp=0,soilmoisture=0; #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); void .. 2021. 11. 15.
[아두이노] OLED 아두이노 우노(Arduino UNO R3)를 기준으로 작성했다. 아두이노 메가를 기준으로 하고싶다면 이 글을 따라하고 아래 게시글의 문제해결 2번을 참고하면 된다. https://waytocse.tistory.com/77 아두이노 메가와 OLED, BLE(HM-10) 연동 오류 해결 전에 아두이노 우노에서 oled와 블루투스 모듈을 한번에 사용하려고 했다가 메모리 문제로 인해 동시 사용을 못하게 된 후 (바로 그 문제를 직면했던 날 게시글) https://waytocse.tistory.com/76 [아두이 waytocse.tistory.com OLED을 통해 원하는 문구나 그림을 표시할 수 있다. 내가 사용한 OLED는 전에 ESP로 OLED동작시켰을 때와 같은 [ELECROW] 128x64 OLED 디.. 2021. 11. 15.
[아두이노] 토양습도센서 SoilMoisture 회로는 딱히 말할 거 없이 5V VCC, GND연결하고 DO이나 AO을 출력핀에 연결한다. 나는 A0를 출력핀으로 설정했다. 코드는 다음과 같다. int soil = A0; void setup() { Serial.begin(9600); } void loop() { int value = analogRead(soil); Serial.print("read sensor value: "); Serial.println(value); //수분이 없으면 1023, 수분이 높을수록 0 delay(1000); } 다음과 같은 환경에서 실행을 해본다. 수분이랑 닿아있지 않음으로 1023이 나타날 것이다. 시니얼모니터로 본 결과는 다음과 같다. 굿. 2021. 11. 15.
[아두이노] DHT11 온습도 센서 + 타이머 기능 활용 아래와 같이 코드를 작성한다. Timer를 사용하고 싶지 않다면 그냥 바로 loop에다가 온습도값 출력을 하면 된다. #include #include "Timer.h" int pin=A2; //출력핀 아날로그2로 설정 DHT11 dht11(pin); Timer t; void setup(){ Serial.begin(9600); t.every(2000, getValue); //2초마다 getValue()함수 호출 } float humi=0, temp=0; void loop(){ t.update(); } void getValue(){ //온습도값 출력 dht11.read(humi, temp); Serial.print("temperature: "); Serial.println(temp); Serial.print.. 2021. 11. 15.
임베디드시스템설계실험 텀프 - 손 크기에 따른 세정제 양 분출 조절기 작년 이 맘때쯤했던 임베디드 시스템 설계 및 실험 텀프로젝트 당시 코로나로 인해 어딜가든 손세정제를 볼 수 있었는데 수동으로 짜서 쓰는(펌프) 손세정제나 자동분출기들은 사람들의 다양한 손 크기에 따라 양 조절이 불가하여 세정제를 낭비하게 됨과 공공장소에 비치된 세정제들은 통이 비어도 빠른 교체가 되지 않는 불편함에서 착안하여 이 프로젝트를 기획하게 됐다. 그래서 프로젝트의 목표는 다음과 같다. 수업시간에 배운 여러 센서 및 보드의 기능을 이용하여 하드웨어를 개발한다. Bluetooth 와 같은 통신 관련 기능을 이용하고 인터럽트를 활용한다. 센서 사이 의존성을 추가하여 한 센서 값이 다른 센서 이용을 호출하도록 개발한다. 낭비되는 손 세정제의 양을 줄이고 알맞지 않은 양으로 인한 사용자의 불편을 줄인다... 2021. 11. 14.
새내기 자료구조 멘토링 - Stack,Queue,Tree,Graph 오늘은 교내 학술동아리 신입회원분들을 대상으로한 멘토링에서 자료구조 멘토링을 진행했습니다. Stack, Queue, Tree, Graph를 위주로 퀴즈를 풀어가면서 자료구조를 빠르고 쉽게 찍어먹어 봤습니다. 제 소개를 드리고 배울 내용에 대해 소개드렸습니다. (멘토 소개 생략) 인터넷에 검색해보면 Primitive Data Structure는 char, integer, real, string, pointer.. 처럼 다양하게 적혀있습니다. 아마 프로그래밍 언어별로 다를 수도 있는 것 같습니다. 그래서 그냥 크게 신경쓰지 않고 Boolean, Char, Integer, Floating-Point로 나눴습니다. Non-Primitive Data Structure도 검색해보면 많이 다르게 나뉘는데 그냥 대충!.. 2021. 11. 14.
SSAFY 7기 SW적성진단 후기 + 합격!!! 이번 싸피 7기 SW적성진단 시간은 차수별로 1차수 9시 2차수 11시 3차수 1시에 시작해서 수리/추리 30분, CT 40분을 봤다. 나는 2차수여서 11시에 시험을 치뤘다. 나는 맥북을 사용하는데 시험 응시 환경이 Windows였어서 괜히 VMWARE로 시험치면 불편할 것 같아서 친구 노트북을 빌려서 시험을 쳤다. 그리고 암산이 절 대 불 가 능 하기 때문에 무조건 펜과 종이를 준비하고 푸는 것이 좋다. 어... 너무 어렵다. 그동안 코딩테스트만 준비해왔지 따로 인적성 검사를 준비했던 적이없어서 GSAT같은 수리/추리 문제를 짧은 시간동안 빠르게 푸는 것이 상당히 어려웠다. 갑자기 생각난건데 예전에 재미로 GSAT모의 시험 쳐봤는데 이런 결과가 나왔었다. 이런 실력에서 바로 SSAFY 수리/추리 푸니.. 2021. 11. 13.
Sort에 사용하는 Compare 커스텀 + priority_queue 비교연산자 차이 주로 vector를 정렬할 때 sort를 사용하는데 vector 가 아니라 vector vector 같은 것을 사용하게 되는 경우 기본 오름차수 sort가 의도하는 대로 작동이 안되거나 그냥 작동이 안되기 때문에 커스텀으로 compare함수나 오브젝트를 만들어서 sort(v.begin(), v.end(), compare)로 사용할 필요가 있습니다. https://www.cplusplus.com/reference/algorithm/sort/ sort - C++ Reference custom (2)template void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp); www.cplusplus.com 레퍼런스를 참고해보면.. 2021. 11. 9.
깃허브를 이용한 알고리즘 스터디 하는법 Github에 잔디심기가 은근히 신경쓰일 때도 있습니다. 그럴 때는 알고리즘 스터디를 할 때 깃허브를 이용하면서 잔디도 심을겸 알고리즘 공부도 할 수 있습니다! 깃허브를 이용한 알고리즘 그룹스터디 하는 법 직접 깃허브 레파지토리를 만드셔도 됩니다!! 제가 이용하고 있는 스터디 기준으로 소개하겠습니다. https://github.com/ellynhan/Challenge100_Code_Test_Study GitHub - ellynhan/Challenge100_Code_Test_Study: 알고리즘 코딩테스트 문제풀이 스터디 - 100문제를 목표로🔥 알고리즘 코딩테스트 문제풀이 스터디 - 100문제를 목표로🔥. Contribute to ellynhan/Challenge100_Code_Test_Study dev.. 2021. 10. 24.
깃허브에 파일과 폴더 업로드 하는 법 - 터미널 이용 레파지토리를 클론한 후 터미널/명령 프롬프트 창을 이용해서 커맨드를 입력하여 깃허브에 파일/폴더를 업로드 하는 방법입니다. 1. Code버튼을 누른다 레파지토리에서 우측 상단의 Code 버튼을 누르고 HTTPS 주소를 복사합니다. 2. 터미널 창에서 클론한다 터미널/명령프롬프트창에서 클론하고 싶은 디렉토리 위치에 가서 git clone 을 입력한 후 복사한 주소를 붙여넣기 해주고 엔터키를 누릅니다. ex) git clone https://github.com/~~~~ 그러면 이렇게 클론한 폴더가 생성됩니다! 3. 폴더 생성 클론된 폴더로 들어가서 mkdir ~~ 라는 명령어로 새 폴더를 만들어줍니다. ex) mkdir example 아니면 그냥 컴퓨터 폴더상에서 새폴더 만드셔도 됩니다. 파일을 눌러보면 이.. 2021. 10. 24.
깃허브에 파일과 폴더 업로드 하는 법 - 깃허브 웹 이용 깃허브를 사용하는 가장 쉬운 방법중 하나인 깃허브 웹사이트에서 개인 레파지토리에 파일과 폴더를 업로드 하는 방법입니다. 1. Add file 을 누른다 2. 업로드할 소스코드를 입력한다 먼저 파일 이름을 입력하고(확장자명 주의!) 업로드하려는 소스코드를 복사 붙여넣기 합니다. 그다음 Commit new file칸에 커밋메세지와 설명을 입력하고 Commit new file 버튼을 클릭합니다. 3. 업로드 확인 이렇게 업로드가 된 것을 확인 할 수 있습니다. 파일을 눌러보면 이렇게 업로드가 되어있고 커밋메세지 옆의 ...을 누르면 아래 설명으로 적었던 것이 나타납니다. 4. 폴더와 소스코드 업로드하기 폴더를 업로드하려면 같이 업로드할 소스코드(파일)이 필요합니다. 아까처럼 파일 이름 입력하는 칸에 생성하고자.. 2021. 10. 24.