Arduino 1: Sensor Input

The above board has 4 different sensors outlined here. 

The arduino is controlled by an arduino sketch. Arduino can be downloaded here: https://www.arduino.cc/en/Main/Software.

Once you have downloaded and installed arduino you will need to select the board you are using. In this case we are using a Mega. Tools>Board Manager/

You will also need to make sure you have the right port selected: Tools>Port

The below arduino sketch accepts data from the 4 sensors and sends it to processing.

#include "Adafruit_Si7021.h"

Adafruit_Si7021 sensor = Adafruit_Si7021();

int accelXpin = A0;
int accelYpin = A1;
int accelZpin = A2;

float accelX;
float accelY;
float accelZ;

int press1pin = A8;
int press2pin = A9;
int press3pin = A10;

int bendpin = A7;

float press1;
float press2;
float press3;

float bend;

float temp;
float humidity;
int startTime;

void setup() {
  Serial.begin(9600);
  sensor.begin();
  startTime = millis();

}

void loop() {

  Read();
  Transfer();

}

void Read() {

  accelX = analogRead(accelXpin);
  accelY = analogRead(accelYpin);
  accelZ = analogRead(accelZpin);

  press1 = analogRead(press1pin);
  press2 = analogRead(press2pin);
  press3 = analogRead(press3pin);

  bend = analogRead(bendpin);

  if (millis() - startTime > 1000) {
    startTime = millis();
    humidity = sensor.readHumidity();
    temp = sensor.readTemperature();
  }
}

void Transfer() {

  Serial.print(accelX);
  Serial.print(",");
  Serial.print(accelY);
  Serial.print(",");
  Serial.print(accelZ);
  Serial.print(",");
  Serial.print(press1);
  Serial.print(",");
  Serial.print(press2);
  Serial.print(",");
  Serial.print(press3);
  Serial.print(",");
  Serial.print(bend);
  Serial.print(",");
  Serial.print(humidity);
  Serial.print(",");
  Serial.print(temp);
  
  Serial.println();

}

The processing sketch below receives data from the arduino and displays it through simple bars.

import processing.serial.*; 
Serial myPort;       

float inX;
float inY;
float inZ;

float inBend;

float inR;
float inG;
float inB;
float inT;
float inH;

float bX;
float bY;
float bZ;

int check = 0;

float sensors[];

int ch = 0;

String myString;

void setup() {
  size(800,500);
  String portName = Serial.list()[2];
  myPort = new Serial(this, portName, 9600);
  myPort.bufferUntil('\n');
}

void draw() {
  background(0);
  
  noStroke();
  
  ///background for graphs
  fill(80);
  rect(100,40,400,20); 
  rect(100,80,400,20);
  rect(100,120,400,20);
  rect(100,160,200,20);
  rect(100,200,200,20);
  rect(100,240,200,20);
  rect(100,280,200,20);
  rect(100,320,200,20);
  rect(100,360,200,20);
  
  textSize(12);
  fill(255);
  textAlign(RIGHT);
  text("X AXIS",90,55);
  text("Y AXIS",90,95);
  text("Z AXIS",90,135);
  text("FLEX",90,175);
  text("PRESSURE 1",90,215);
  text("PRESSURE 2",90,255);
  text("PRESSURE 3",90,295);
  text("TEMPERATURE",90,335);
  text("HEAT",90,375);
  
  /// 3 axis of the accelorometer
  fill(0,255,255);
  rect(290 + (bX-inX)/2,40,inX-bX,20);
  rect(290 + (bY-inY)/2,80,inY-bY,20);
  rect(290 + (bZ-inZ)/2,120,inZ-bZ,20);
  
  rect(100,160,inBend*.8,20);
  
  rect(100,200,inR/5,20);
  rect(100,240,inG/5,20);
  rect(100,280,inB/5,20);
  
  rect(100,320,inT,20);
  rect(100,360,inH,20);
  
  if(inX > 0 && check == 0){
    bX = inX;
    bY = inY;
    bZ = inZ;
    check = 1;
  }
  if (myString != null) {
    myString = trim(myString);
    float sensors[] = float(split(myString, ','));

    inX=sensors[0];
    inY=sensors[1];
    inZ=sensors[2];

    inBend=sensors[6];

    inR=sensors[3];
    inG=sensors[4];
    inB=sensors[5];

    inT=sensors[7];
    inH=sensors[8];

  }
}

void serialEvent(Serial myPort) {
  // read the serial buffer:
  myString = myPort.readStringUntil('\n');
}