datt niður á hitamæla á netinu fyrir usb,

pantaði mér síðan af ebay.
gerði nátturlega ekkert í því fyrr en núna, þegar ég breytti gerjunarskápnum í keggerator.
pælingin var að búa til relay controller úr usb lyklaborði. þá gæti ég notað caps lock, numlock og scroll lock til að stýra relay. nota síðan þessa usb hitamæla til að nema hitann.
nema hvað. ég riggaði upp litlu forriti til að halda utan um hitamæla og relay í gær. datt í hug að sýna ykkur nokkrar skjámyndir. þetta ætti að útskýra sig sjálft. notaði c#, sem er víst voðalega gott, ég hefi meira forritað í c/c++ og java. en maður verður að vera opinn fyrir nýjungum (yeah, right).
til gamans má geta þess að ég missti relay controllerinn sem ég var búinn að smíða úr lyklaborði ofaní kælingarfötuna, þannig að ég þarf að búa til annan.

blátt er fyrir kælingu, rautt fyrir hitun og hvítt fyrir NOP eða bara hitamælingu
hægt að sjá logg yfir hvað er gert
í stillingum er hægt að tilgreina csv skrá svo hægt sé að greina hitamynstrið í tætlur með excel. einnig screensaver mode til að brenna ekki skjáinn þegar þetta fer í action og hvað mælingar eru örar.
ég nennti ekki að hafa þetta flókið í fyrstu umferð, svo það er bara hægt að setja upp 3 "unit", þeas, hitamælir + relay og stilla saman. Min off og max on er svo að maður stúti ekki kælipressum á ísskáp ef eitthvað fer úrskeiðis.
ég fann síðan control á netinu til að sýna einfalt graf af því sem hefur gerst. en auðvitað er best að gera það bara í excel
og í excel
fyrir forritunarnördana, þá eru hitamælarnir og relayin klasar sem útfæra interface. klasarnir eru síðan hlaðnir upp á keyrslutíma. þannig að til að bæta við hitamæli, þá er þetta útfært:
Code: Select all
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace info.obak.temper.thermometer
{
public interface IThermometer
{
double GetTemp();
double GetCalibratedTemp();
}
}
Code: Select all
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace info.obak.temper.thermometer
{
class VirtualThermometer : Thermometer, IThermometer
{
Random rand = new Random();
static decimal current = 20.0M;
public override double GetTemp()
{
decimal delta = 2.0M - (decimal)(4 * rand.NextDouble());
current = current + delta;
return (double)current;
}
}
}
Code: Select all
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace info.obak.temper.relay
{
public interface IRelay
{
void TurnOn();
void TurnOff();
bool IsOn();
}
}