| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
| ||||
| ||||
|
이 프로젝트에서 우리는 심장 박동 감지 및 모니터링 시스템을 만들 것입니다. 펄스 센서를 사용하여 심장 박동을 감지하고 BPM(분당 비트 수)으로 판독값을 표시하는 Arduino를 사용합니다. 며칠 전 우리는 지루함을 느꼈고 node.js에 대해보고 그것을 구현하려고 생각했습니다............. 그리고 마침내 실제로 심박수를 비트로 표시하는이 프로토 타입을 개발하게되었습니다. IR 펄스 센서를 사용하여 분당 ...........
"이를 위해 PC, Mac 또는 Raspberry Pi를 사용할 수 있습니다."
단계 용 하는 이 이다 아래에 나와 있습니다.
1) 아두이노 준비
주어진 스케치를 Arduino에 업로드하고 직렬 모니터에서 데이터를 수신하는지 확인하십시오.
2) Node.JS 설치
pc / mac /linux pc / raspberry pi에 node.js 설치:
<울>맥:
양조 설치 nodejs
리눅스/라즈베리 파이:
sudo apt-get install nodejs
3) Node.JS에 필요한 패키지 설치
터미널에서 다음 명령을 실행하여 패키지를 설치하세요.
npm install -g socket.io npm install -g serialportnpm install -g johnny-fivenpm install -g express
4) 스크립트 실행 <울>
노드
<울> 인터넷을 통해 보려면 AMAZON WEB SERVICES가 필요합니다. 구성되었습니다.
5) 아마존 웹 서비스(AWS) 구성 <울>
<울>
동영상
끝!
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">int UpperThreshold =518;int LowerThreshold =490에 업로드해야 하는 코드입니다. 정수 읽기 =0; 부동 BPM =0.0; bool IgnoreReading =false; 부울 FirstPulseDetected =거짓; 부호 없는 긴 FirstPulseTime =0; 부호 없는 긴 SecondPulseTime =0; 부호 없는 긴 PulseInterval =0; 무효 설정(){ Serial.begin(9600); } 무효 루프(){ 읽기 =analogRead(0); if(읽기> UpperThreshold &&IgnoreReading ==false){ if(FirstPulseDetected ==false){ FirstPulseTime =millis(); FirstPulseDetected =참; } else{ SecondPulseTime =밀리(); PulseInterval =SecondPulseTime - FirstPulseTime; FirstPulseTime =SecondPulseTime; } IgnoreReading =true; } if(읽기run.js자바스크립트
여기에는 직렬 데이터와 서버 간의 연결을 설정하는 코드가 포함되어 있습니다........var SerialPort =require('serialport')var Readline =SerialPort.parsers.Readlinevar express =require('express');var socket =require('socket.io');var app =express();var server =app.listen(3005);app.use(express.static('public'));var io =socket(서버 );io.on('연결', function(socket){ console.log(socket.id); });var serialPort =new SerialPort('/dev/tty.usbmodem1421', { baudRate:9600})var 파서 =new Readline()serialPort.pipe(parser)parser.on('data', function (data) { //console.log('data 수신:' + data) io.sockets.emit('map', data);})serialPort.on('열기', function () { console.log('통신이 켜져 있습니다!')})page.htmlHTML
이것은 분당 심장 박동 수를 표시할 웹 페이지입니다.<스크립트 src='speech.js'> <메타 이름="viewport" content="user-scalable=no,initial-scale=1,maximum-scale=1" /> <제목>제목> <스타일> 본문 { 여백:0; background-image:url('https://www.skipprichard.com/wp-content/uploads/2015/07/bigstock-Red-Heart-On-Wooden-Background-56485448.jpg') } #speech { 오버플로:자동; } .sender { 테두리 하단 오른쪽 반경:5px; 테두리-위-오른쪽-반경:5px; 경계-상단-좌측 반경:5px; 텍스트 정렬:왼쪽; 배경색:노란색; } .receiver { 테두리 하단 왼쪽 반경:5px; 테두리-위-오른쪽-반경:5px; 경계-상단-좌측 반경:5px; 텍스트 정렬:오른쪽; 배경색:흰색; } .bub { 테두리:1px 솔리드 #000; 패딩:5px; 오른쪽 여백:자동; 여백-왼쪽:자동; 너비:90%; 최대 너비:500px; } #name { 글꼴군:arial; 글꼴 크기:20px; 검정색; 공백:nowrap; 글꼴 두께:600; } #rank { 글꼴군:arial; 글꼴 크기:15px; 검정색; 공백:nowrap; } .bubble { 글꼴군:arial; 글꼴 크기:20px; 글꼴 두께:400; } .dot { 너비:10px; 높이:10px; 여백-왼쪽:자동; 테두리 반경:5px; } .read { 테두리:1px 단색 빨간색; } .red { 배경색:빨간색; } .yellow { 배경색:금색; } .green { 배경색:녹색; } #stat { 패딩:10px; 오른쪽 여백:자동; 여백-왼쪽:자동; 너비:90%; 최대 너비:500px; } #nav { border-bottom:1px solid #000; 너비:100%; 텍스트 정렬:왼쪽; 배경색:흰색; 패딩 하단:3px; } #photo { 위치:상대; 상단:4px; 왼쪽:5px; 테두리 반경:40px; 높이:80px; 왼쪽으로 뜨다; } .time { 글꼴 두께:400; 글꼴 패밀리:arial; } #온라인 { 색상:녹색; } #오프라인 { 색상:빨간색; } #foot { border-top:1px solid #000; 너비:100%; 위치:고정; 하단:0; 배경색:흰색; 패딩:10px; } #box { 테두리:없음; 크기 조정:없음; 너비:75%; 글꼴 두께:400; 글꼴 크기:20px; 글꼴 패밀리:arial; 오버플로:숨김; } #enter { 테두리:0; 배경색:흰색; 색상:#0BB5FF; 글꼴 크기:20px; } h1 { 패딩 상단:100px; 글꼴 패밀리:고정 폭; 텍스트 정렬:가운데; 글꼴 크기:100px; } 스타일> <바디> <스크립트> var 소켓 =io.connect("http://localhost:3005"); var socket_1 =io.connect("http://ec2-18-220-142-52.us-east-2.compute.amazonaws.com:4000");//켜기 후 AWS에서 생성한 링크 제공 코드를 인터넷에 연결하기 위해.... socket.on('map', function(data){ //console.log(data); socket_1.emit('map', data); document.getElementById('hello') .innerHTML =데이터; });