Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Poslední návštěva: čtv bře 30, 2023 2:36 am


Arduino & Processing

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.

Arduino & Processing

Příspěvekod jan.westhuserlt » ned úno 22, 2015 2:27 pm

Já už si s tím prostě nevím rady.
Mám v současné době tento program:

Kód: Vybrat vše
int sensorPin1 = 0; //Definice analogového pinu, ke kterému připojím výstup snímače teploty
//citlivost je 10mV na jeden °C
//s celkovou škálou 500mV - umožňuje i záporné hodnoty.
int sensorPin2 = 1; //Definice analogového pinu, ke kterému připojím výstup snímače teploty
//citlivost je 10mV na jeden °C
//s celkovou škálou 500mV - umožňuje i záporné hodnoty.

//funkce uvedené zde se načtou po spuštění arduina a platí po celou dobu běhu programu.

void setup()
{
Serial.begin(9600); //nabindování sériové komunikace s počítačem.
Serial.println("Vitejte v programu na mereni teploty."); // odeslani textu po seriove lince s odradkovanim

}

void loop() // tyto funkce se cyklicky opakují
{
//čtení napěťových hodnot z teplotního senzoru
int reading1 = analogRead(sensorPin1);
int reading2 = analogRead(sensorPin2);
// převod načtených hodnot na napětí (?), for 3.3v arduino use 3.3
float voltage1 = reading1 * 5.0;
voltage1 /= 1024.0;

float voltage2 = reading2 * 5.0;
voltage2 /= 1024.0;
// zobrazení napěťových hodnot
Serial.print("Senzor A:"); Serial.print(voltage1); Serial.println(" V");
Serial.print("Senzor B:"); Serial.print(voltage2); Serial.println(" V");

// zobrazení teploty v °C
float temperatureC1 = (voltage1 - 0.5) * 100 ; //převod teploty (10 mv = 1 °C) s celkovám rozsahem 500mV !offset!
//to degrees ((voltage - 500mV) times 100 ?)
Serial.print("Teplota A:"); Serial.print(temperatureC1); Serial.println(" stupnu C");

float temperatureC2 = (voltage2 - 0.5) * 100 ; //převod teploty (10 mv = 1 °C) s celkovám rozsahem 500mV !offset!
//to degrees ((voltage - 500mV) times 100 ?)
Serial.print("Teplota B:"); Serial.print(temperatureC2); Serial.println(" stupnu C");


delay(5000); //doba zobrazení textu 5s
}


A tuto vizualizaci:

Kód: Vybrat vše
import processing.serial.*;
String temperature = "0";
PImage pozadi;
PFont font;
Serial port;
void setup() {
pozadi = loadImage("pozadi.jpg");
size(1024, 768, P2D);
rect(30, 20, 55, 55, 7);
font = loadFont("Algerian-30.vlw");
port = new Serial(this, "COM4", 9600);
fill(0);
smooth();
}
void draw () {
image(pozadi, 0, 0, width, height);
int q = second();
int w = hour();
int e = minute();
int r = day();
int t = month();
int z = year();
text(":" , 78, 50);
text(":" , 115, 50);
text("." , 78, 80);
text("." , 115, 80);
fill(249, 250, 56);
if (port.available()>0) {
delay(100);
temperature = port.readString();
}

text(temperature, width/3, height/3);

String
s = String.valueOf(w);
text(s, 47, 50);
textFont(font, 25);
s = String.valueOf(e);
text(s, 85, 50);
s = String.valueOf(q);
text(s, 120, 50);
s = String.valueOf(r);
text(s, 47, 80);
s = String.valueOf(t);
text(s, 85, 80);
s = String.valueOf(z);
text(s, 122, 80);
}


Výsledek u mě vypadá takto:

http://img24.cz/images/16052531158694030888.jpg

Chtěl jsem docílit toho, abych měl, namísto textového zobrazení hodnot, graf, jako je tento:
https://boolscott.wordpress.com/2010/02 ... r-graph-2/ (nejde mi o doslovně stejný grafický řešení, ale "pouze" o tento princip: graf mění svou velikost podle měřených hodnot.)

A už nevím, proč mi o věčně nejde. Nevím, co dělám špatně, a mě už je z toho špatně.

Děkuji za radu, sám si už žádnou nedám.
?
jan.westhuserlt
 
Příspěvky: 8
Registrován: čtv pro 25, 2014 6:03 pm


Re: Arduino & Processing

Příspěvekod solárník » ned úno 22, 2015 10:54 pm

Chápu to dobře, že se jedná o dvě Arduina spojená po serialu (důvod?)? Nebo ten processing je na něčem jiném? Chtělo by to lepší popis ;)
Jsem osobně spíš příznivcem generování grafů přímo na měřícím Arduinu, pokud je tedy někdo chce, a zobrazení přes ethernet v internetovém browseru. Je to rozhodně praktičtější a přístupné odkudkoli a na jakémkoli zařízení včetně mobilu. Není problém napsat nějaký zobrazovací a grafový skript pro Arduino. Jednodušší bargrafy jen za pomocí tabulek a složitější grafy (jako třeba na https://boolscott.files.wordpress.com/2 ... -graph.jpg) pomocí HTML5.

Není dobré něco stavět s tím, že se pokusím o nějaký graf. Chce to představit si přesně co chci a pak to prostě naprogramovat.
?
solárník
 
Příspěvky: 1554
Registrován: pát bře 15, 2013 7:53 pm


Re: Arduino & Processing

Příspěvekod jan.westhuserlt » úte úno 24, 2015 5:13 pm

No, je to jedno arduino, v něm zapojená dvě teplitní čidla :-)

Chci to mít tak, že se mi v Processingu zobrazí dva grafy, pro každé čidlo jeden. A jejich velikost se bude měnit podle změn snímané teploty.
?
jan.westhuserlt
 
Příspěvky: 8
Registrován: čtv pro 25, 2014 6:03 pm


Re: Arduino & Processing

Příspěvekod jan.westhuserlt » sob úno 28, 2015 1:52 pm

Tak, nakonec sem čerpal inspiraci odtud (konkrétně kapitola "Graphing Serial Data in Processing"):

http://www.dustynrobots.com/nyu/seeing- ... nsed-data/

Nedostatkem je, že tastovací zapojení potenciometru (levá noha uzemněna, prostřední na A0, pravá na 5V) funguje na jedničku, zatímco ta s TM36 (+Vs - 5V, Vout na A0, GND na GND http://www.analog.com/media/en/technica ... _36_37.pdf) taky zobrazí nějakou grafickou hodnotu, ale stále stejnou.

Tak už teda nevím, zda je problém *někde*, anebo, zda jde jen o nastavení škály, že ty teplotní změny jsou pro tento graf moc malé.

Nějaké tipy?

http://www.dustynrobots.com/nyu/seeing- ... nsed-data/
?
jan.westhuserlt
 
Příspěvky: 8
Registrován: čtv pro 25, 2014 6:03 pm



Zpět na Arduino

Kdo je online

Uživatelé procházející toto fórum: CC [Bot] a 1 návštěvník

Reputation System ©'