スクーミーアートモーションプログラム⑧~温度によって画面の色が変化~

~温度の変化で画面の色を変化させる~

スクーミーボードの温度センサーの値が画面に表示され、29℃以上になると色が変わります!

動画

スクーミーIDEのコード

#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 19
#define SENSOR_BIT 9
int sensor[2];
int inByte;

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

float _sbeGetTemperature() {
  sensors.requestTemperatures();
  sensors.getTempCByIndex(0);
}

void setup(){
  Serial.begin(9600);
  sensors.setResolution(SENSOR_BIT);
  pinMode(A1, INPUT);  
  sensor[0] = 0;
  sensor[1] = 0;
  inByte = 0;
  establishContact();
}
 
void loop(){
  if (Serial.available() > 0) {
    inByte = Serial.read();
    sensor[0] = _sbeGetTemperature();
    sensor[1] = analogRead(A1);
    Serial.print(sensor[0]);
    Serial.print(",");
    Serial.println(sensor[1]);          
  }
}
 
void establishContact() {
  while (Serial.available() <= 0) {
    Serial.println("通信中"); 
    delay(300);
  }
}
import processing.serial.*;
Serial myPort; 

int temp;

void setup() {
  background(255);
  size(900, 900);
  myPort = new Serial(this, Serial.list()[0], 9600);
  myPort.bufferUntil('\n');
}

void draw() {  
  background(255);
  if (temp< 29) {
    stroke(0, 0, 255);
    fill(0, 0, 255);
  } else {
    stroke(255, 0, 0);
    fill(255, 0, 0);
  }
  textSize(100);
  text(temp + "℃", 370, 820);
  ellipse(450, 350, 600, 600);
}

void serialEvent(Serial myPort) { 
  String myString = myPort.readStringUntil('\n');
  myString = trim(myString);
  int sensors[] = int(split(myString, ','));
  if (sensors.length > 1) {
    temp= sensors[0];
  }
  myPort.write("A");
}

アートモーションIDEのコード

コメントを残す

メールアドレスが公開されることはありません。