임베디드129 p280 MCP3008 ADC 장치 라즈베리파이는 아두이노와는 다르게 아날로그 센서값을 자체적으로 읽어오지 못함. 따라서 MCP3008과 같은 제품을 이용하여, 아날로그 값을 디지털 값으로 바꾼 후 (Convert) 라즈베리파이에 넣어주어야함 SPI 통신방식 적용 아래 코드는 값이 0으로 나옴 .. # readadc.py import spidev, time spi = spidev.SpiDev() spi.open(0,0) def analog_read(channel): r = spi.xfer2([1, (8 + channel) 2020. 10. 23. 발열패드 COM-11288 적정 전압은 5V , 전류는 600mA Operating Voltage: 5V DC Operating Current: ~750mA (~6.5Ω) https://www.devicemart.co.kr/goods/view?no=1327010#goods_file 발열 패드 Heating Pad - 5x10cm [COM-11288] Polyester filament, Micro Metal Conductive Fiber / Voltage: 5V DC / Current: ~750mA (~6.5Ω) / 5 x 10 cm www.devicemart.co.kr 적정전압은 5v지만 12v까지 올렸을 때도 괜찮았음 2020. 10. 22. p267 6-5 콜백방식 #btn_callback.py import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) count = 0 def handler(channel): global count count = count +1 print count GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) GPIO.add_event_detect(24,GPIO.RISING, callback=handler) while True: time.sleep(1) 리눅스 커널자체에 GPIO driver가 들어가 있는데 그것 도움을 받아서 2020. 10. 22. p265 6-4 폴링방식 #btn_poll.py import RPi.GPIO as GPIO #gpio모듈 사용 import time #time 모듈 사용 GPIO.setmode(GPIO.BCM) GPIO.setup(24,GPIO.IN) count =0 while True: value = GPIO.input(24) if value == True: count= count +1 print count time.sleep(0.1) 2020. 10. 22. p268 6-6 풀업 풀다운 인터럽트 #btn_interrupt.py import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) count = 0 def handler(channel): global count count = count +1 print count GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) GPIO.add_event_detect(24, GPIO.RISING, callback=handler) try: GPIO.wait_for_edge(23, GPIO.FALLING) print "Falling edge detected." except keyboard.. 2020. 10. 22. 미세먼지 센서 GP2Y1010AU0F https://blog.naver.com/darknisia/221222455928 [아두이노 중급] 19. 미세먼지센서(GP2Y1010AU0F, GPA2Y1014AU0F) 이번 포스트에는 조금 한 물 간 주제인 먼지센서에 대해서 써볼까 한다. 한 때 미세먼지가 엄청난 화두가 ... blog.naver.com https://devicemart.blogspot.com/2019/12/gp2y1010au0f.html [아두이노] GP2Y1010AU0F 미세먼지 센서 사용해보기 전기/전자부품, 로봇/기계부품, 코딩교육 국내 1위 쇼핑몰 디바이스마트 공식 블로그입니다. devicemart.blogspot.com /* Standalone Sketch to use with a Arduino UNO and a Sharp.. 2020. 10. 21. dht22 1번핀: 3.3V 또는 5V 의 전압이 사용이 가능 2번핀(SDA)으로 신호를 전송합니다. 3번핀: 사용하지 않습니다. 4번핀: GND 정식명칭은 AM2302 입니다. 2020. 10. 21. 라즈베리파이 설치 https://hoho325.tistory.com/212라즈베리파이4b에 최신 버전 wiringpi 설치하는 방법라즈베리파이에서 gpio를 쉽게 사용하기 위해서 wiringpi를 사용하려고 합니다 아마 기본적으로 깔려있을 수 있습니다 만약 깔려있지 않거나 지웠다면 다음과 같은 방법으로 다운 가능합니다 sudo ahoho325.tistory.com 2020. 10. 19. TEST1008 server#include #include #include #include #include #include #include #include #define BUF_SIZE100 #define SERVER_IPINADDR_ANY //문제1. IP #define SERVER_PORT"9987" //문제1. 포트번호 struct user { char id[10]; char sock_num; }; struct user aa[10]; void error_handling(char *buf); int main() { int sock_check; int serv_sock, clnt_sock; struct sockaddr_in serv_adr, clnt_adr; struct timeval timeout; fd_set re.. 2020. 10. 8. makefile # #타겟 : 의존성 # 명령어 CC = gcc CFLAGS = -W -Wall TARGET = echo_selectserv OBJECT = echo_selectserv.o SRC = echo_selectserv.c $(TARGET) : $(OBJECT) $(CC) $(CFLAGS) -o $(TARGET) $(OBJECT) $(OBJECT): $(SRC) $(CC) $(CFLAGS) -c -o $(OBJECT) $(SRC) clean: rm *.o $(TARGET) 2020. 10. 8. 구조체 사용 server #include #include #include #include #include #include #include #include #define BUF_SIZE 100 #define SERVER_IP INADDR_ANY #define SERVER_PORT "7777" //구조체 struct user { // < 여기 적어주는 _STUDENT 는 코드상 큰 의미는 없다. 하지만 적어주는 이유는 구조체가 중복되어 코딩되는 것을 방지하기 위해 관례적으로 적어준다. char id[20]; char sock_num; }; struct user us[20]; void error_handling(char *buf); int main(/*int argc, char *argv[]*/) { int sock_ch.. 2020. 10. 8. enterID - 개행문자 없애기 echo_selectserv.c #include #include #include #include #include #include #include #include #define BUF_SIZE100 #define SERVER_IPINADDR_ANY #define SERVER_PORT"9987" void error_handling(char *buf); int main(/*int argc, char *argv[]*/) { int serv_sock, clnt_sock; struct sockaddr_in serv_adr, clnt_adr; struct timeval timeout; fd_set reads, cpy_reads; socklen_t adr_sz; int fd_max, str_len, fd_num, i;.. 2020. 10. 6. echo_client.c echo_selectserv.c echo_selectserv.c #include #include #include #include #include #include #include #include #define BUF_SIZE100 #define SERVER_IPINADDR_ANY #define SERVER_PORT"9987" void error_handling(char *buf); int main(/*int argc, char *argv[]*/) { int serv_sock, clnt_sock; struct sockaddr_in serv_adr, clnt_adr; struct timeval timeout; fd_set reads, cpy_reads; socklen_t adr_sz; int fd_max, str_len, fd_num, i;.. 2020. 9. 29. echo_selectserv echo_client echo_selectserv.c #include #include #include #include #include #include #include #include #define BUF_SIZE 100 void error_handling(char *buf); int main(int argc, char *argv[]) { int serv_sock, clnt_sock; struct sockaddr_in serv_adr, clnt_adr; struct timeval timeout; fd_set reads, cpy_reads; socklen_t adr_sz; int fd_max, str_len, fd_num, i; char buf[BUF_SIZE]; if(argc!=2) { printf("Usage : %s \n".. 2020. 9. 29. chpt12. echo_select #include #include #include #include #include #include #include #include #define BUF_SIZE 100 void error_handling(char *buf); int main(int argc, char *argv[]) { int serv_sock, clnt_sock; struct sockaddr_in serv_adr, clnt_adr; struct timeval timeout; fd_set reads, cpy_reads; socklen_t adr_sz; int fd_max, str_len, fd_num, i; char buf[BUF_SIZE]; if(argc!=2) { printf("Usage : %s \n", argv[0]); exit(1.. 2020. 9. 25. echo_server.c echo_client.c echo_server.c #include #include #include #include #include #include #define BUF_SIZE 1024 void error_handling(char *message); int main(int argc, char *argv[]) { int serv_sock, clnt_sock; char message[BUF_SIZE]; int str_len, i; struct sockaddr_in serv_adr; struct sockaddr_in clnt_adr; socklen_t clnt_adr_sz; if(argc!=2) { printf("Usage : %s \n", argv[0]); exit(1); } serv_sock=socket(PF_INET, SOCK_.. 2020. 9. 24. hello server (client ->server) hello_client.c #include #include #include #include #include #include #define SERVER_IP"127.0.0.1" #define SERVER_PORT "9988" void error_handling(char *message); int main(int argc, char* argv[]) { int serv_sock; int clnt_sock; int sock; struct sockaddr_in serv_addr; //char message[30] = {0,}; //초기화 하는것이 더 좋다 int str_len = 0; //초기화 하는것이 더 좋다 /* if(argc!=3){ printf("Usage : %s \n", argv[0]); exit(1.. 2020. 9. 24. hello server (client ->server) hello_client.c #include #include #include #include #include #include #define SERVER_IP"127.0.0.1" #define SERVER_PORT "9988" void error_handling(char *message); int main(int argc, char* argv[]) { int serv_sock; int clnt_sock; int sock; struct sockaddr_in serv_addr; //char message[30] = {0,}; //초기화 하는것이 더 좋다 int str_len = 0; //초기화 하는것이 더 좋다 /* if(argc!=3){ printf("Usage : %s \n", argv[0]); exit(1.. 2020. 9. 23. Sever socket created Sever socket binding Sever socket listening hello_server.c #include #include #include #include #include #include #define SERVER_IP INADDR_ANY #define SERVER_PORT "9988" void error_handling(char *message); int main(int argc, char *argv[]) { int serv_sock; int clnt_sock; struct sockaddr_in serv_addr; struct sockaddr_in clnt_addr; socklen_t clnt_addr_size; char message[]="Hello World!"; /* if(argc!=2){ printf("Usage : %s \n", argv[0]); exit(.. 2020. 9. 23. c언어 소켓통신 hello_client.c #include #include #include #include #include #include void error_handling(char *message); int main(int argc, char* argv[]) { int sock; struct sockaddr_in serv_addr; char message[30]; int str_len; if(argc!=3){ printf("Usage : %s \n", argv[0]); exit(1); } sock=socket(PF_INET, SOCK_STREAM, 0); if(sock == -1) error_handling("socket() error"); memset(&serv_addr, 0, sizeof(serv_addr)); serv_addr.sin_f.. 2020. 9. 23. 이전 1 2 3 4 5 6 7 다음