BASIC4MCU | 질문게시판 | 안녕하세요 심박센서와 웹서버 아두이노 소스코드 오류때문에 질문드립니다.
페이지 정보
작성자 hyun 작성일2020-10-19 10:58 조회3,752회 댓글1건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=13584
첨부파일
본문
현재 아두이노로 이더넷 서버를 열어 심장박동수를 이더넷 웹서버로 볼 수 있게끔 코드를 짜고 있습니다. 하지만 'serialOutput' was not declared in this scope 라는 오류를 해결하지 못하겠습니다.
#include <SPI.h>#include <Ethernet.h>#define PROCESSING_VISUALIZER 1#define SERIAL_PLOTTER 2// Variablesint pulsePin = 0;int blinkPin = 13;int fadePin = 5;int fadeRate = 0;volatile int BPM;volatile int Signal;volatile int IBI = 600;volatile boolean Pulse = false;volatile boolean QS = false;static int outputType = SERIAL_PLOTTER;byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};IPAddress ip(192, 168, 1, 177); //ip주소 설정 - 라우터의 할당범위 확인EthernetServer server(80); //웹페이지 로드를 위해 포트 80void setup(){pinMode(blinkPin,OUTPUT);pinMode(fadePin,OUTPUT);Serial.begin(115200);Serial.begin(9600);while (!Serial) {; // 시리얼 포트 통신 기다리기}Serial.println("Ethernet WebServer Example");Ethernet.begin(mac, ip); //이더넷 연결과 서버 시작// 이더넷 하드웨어가 있는지 점검if (Ethernet.hardwareStatus() == EthernetNoHardware) {Serial.println("Ethernet shield was not found. Sorry, can't run without hardware. :(");while (true) {delay(1); // 이더넷 보드가 없을 시}}if (Ethernet.linkStatus() == LinkOFF) {Serial.println("Ethernet cable is not connected.");}// 서버 시작server.begin();Serial.print("server is at ");Serial.println(Ethernet.localIP());};void loop(){serialOutput();if (QS == true){ QS=false;fadeRate = 255;serialOutputWhenBeatHappens();}ledFadeToBeat();delay(20);EthernetClient client = server.available();if (client) {Serial.println("new client");boolean currentLineIsBlank = true;while (client.connected()) {if (client.available()) {char c = client.read();Serial.write(c);if (c == '\n' && currentLineIsBlank) {// send a standard http response headerclient.println("HTTP/1.1 200 OK");client.println("Content-Type: text/html");client.println("Connection: close");client.println("Refresh: 5");client.println();client.println("<!DOCTYPE HTML>");client.println("<html>");// 각 아날로그 입력 핀의 값을 출력for (int analogChannel = 0; analogChannel < 6; analogChannel++) {int sensorReading = analogRead(analogChannel);client.print("analog input ");client.print(analogChannel);client.print(" is ");client.print(sensorReading);client.println("<br />");}client.println("</html>");break;}if (c == '\n') {currentLineIsBlank = true;} else if (c != '\r') {currentLineIsBlank = false;}}}// 데이터를 받는 시간delay(1);// 연결 닫기client.stop();Serial.println("client disconnected");}}void ledFadeToBeat(){fadeRate -= 15;fadeRate = constrain(fadeRate,0,255);analogWrite(fadePin,fadeRate);}입니다. 조언주시면 감사하겠습니다! 혹시모르니 아두이노 소스도 첨부하겠습니다.
댓글 1
조회수 3,752master님의 댓글
master 작성일
void serialOutput()
{ // Decide How To Output Serial.
if (serialVisual == true)
{
arduinoSerialMonitorVisual('-', Signal); // goes to function that makes Serial Monitor Visualizer
}
else
{
sendDataToSerial('S', Signal); // goes to sendDataToSerial function
}
}
함수가 추가되어야 합니다.
오류가 발생한 함수 외에 다른 함수들도 필요할지 모르니 웹검색으로 찾은 링크를 적어드리죠
https://www.viralsciencecreativity.com/post/arduino-pulse-sensor-heart-beat-measurement