Brouwen kamer - Prototype (5 / 5 stap)

Stap 5: De magie (code)

Ik de Arduino in verband met de verwerking via de seriële poort, met de bedoeling hebben de Processing schets weergeven van de gegevens na verloop van tijd, zodat we kunnen zien hoe het bier vordert.

Dit kan met een schets van de verwerking via seriële communicatie interface.

#include < OneWire.h >

#include < DallasTemperature.h >

#include < Wire.h >

#include < Adafruit_MPL3115A2.h >

/ / / Macht door Vin verbinden 3-5V, GND met GND

Gebruikt de I2C - SCL verbinden met de SCL-pin, SDA aan SDA pin

Zie de de draad-handleiding voor pinouts voor elke Arduino

http://Arduino.CC/en/Reference/Wire

Adafruit_MPL3115A2 baro = Adafruit_MPL3115A2();

zweven drukvariaties;

float altm;

float chamberTemp;

zweven druk = 0;

zweven idealPressure = 14,45; Dit geval PSI. afhankelijk van welke meten van druk, dat wil zeggen de drukvariaties; psi; enz float maxPressure = 14.81; psi int clicks = 0;

Data aansluiting is aangesloten op poort 2 van de Arduino

#define ONE_WIRE_BUS 2

#define TEMPERATURE_PRECISION 9

Opstelling van een exemplaar van de privacy om te communiceren met alle privacy oneWire(ONE_WIRE_BUS) voor de privacy van de apparaten (niet alleen Maxim/Dallas temperatuur ICs); Onze privacy verwijzing naar Dallas temperatuur doorgeeft.

DallasTemperature sensoren (& Privacy);

int numberOfDevices; Aantal temperatuur apparaten gevonden

DeviceAddress tempDeviceAddress; We gebruiken deze variabele om te slaan van een gevonden apparaatadres

float yeastTemp;

zweven idealTemp = 24;

zweven tempTol = 1.1;

Booleaanse verwarming = false;

Booleaanse lastHeatState;

*** PINNEN 'n draden ***

SCL is op witte draad

SDA is op vage gele draad

Dallas temperatuursensor is op Pin 2. Gele draad

Const int solenoïde = 4; Magneetklep op Pin 4. Bruine draad

Const int buttonPin = 6; Drukknop Pin. Paarse draad

Const int bluePin = 9; Blauwe draad

Const int greenPin = 10; Groene draad

Const int redPin = 11; Rode draad

Andere:

+ 5v is op de lange rode draad

GND is op lange zwarte draad

Vin (input 12vDC) brandt lang vage gele draad

// *********************************

int redValue;

int greenValue;

int blueValue = 0;

int de eindtijd;

void setup {Serial.begin(9600);

BARO.begin(); Initiëren van luchtdruk sensor, die ook aan boord van de temperatuursensor

Wire.begin(); Starten privacy bibliotheek, nodig voor de communicatie met de luchtdruk sensor.

dallasSetup(); Dit initiatief de Dallas waterdichte digitale Thermometer

pinMode (solenoïde, OUTPUT);

pinMode (buttonPin, INPUT);

pinMode (redPin, OUTPUT);

pinMode (greenPin, OUTPUT);

pinMode (bluePin, OUTPUT);

Serial.Print("Initiated*");

}

void loop {}

int startTime = millis();

baroRun();

Barometrische druk/hoogtemeter

dallasRun();

Serial.Print("Send"); Start van het signaal en de 'verzenden' zal worden uitgesloten, het zal fungeren als een buffer

Serial.Print(Pascals);

Serial.Print("a");

Serial.Print(chamberTemp);

Serial.Print("b");

Serial.Print(yeastTemp);

Serial.Print("c");

Rgb_s koord = String(redValue) + "," + String(greenValue) + "," + String(blueValue);

Serial.Print(rgb_s);

Serial.Print("_"); Einde van signaal '_' redValue = 33; greenValue = 16; blueValue = 100; setRGB (redValue, greenValue, blueValue);

}

ongeldig control() {}

Als (druk > = maxPressure) {/ / was idealPressure

digitalWrite (solenoïde, hoge); de versies van de magneetklep waardoor gas(CO2) te ontsnappen via de luchtsluis setRGB (redValue, greenValue, blueValue);

}

Als (druk < = idealPressure) {}

alternatieve code voor het gebruik van releaseCount. Kan het vervangen van minPressure als het nooit daar krijgen kan, testen nodig. digitalWrite (solenoïde, laag);

Sluit magneetventiel

setRGB (0, 0, 0); } }

ongeldig testControl() {}

Als (klikken < 10) {}

digitalWrite (solenoïde, hoge);

Serial.println ("solenoïde heeft geopend");

setRGB (redValue, greenValue, blueValue);

}

anders als (klikken > 10) {}

digitalWrite (solenoïde, laag);

Serial.println ("solenoïde heeft gesloten");

setRGB (0, 0, 0);

}

klikken ++; Als (klikt op > = 20) clicks = 0;

}

ongeldig baroRun() {}

Als (! baro.begin()) {}

Serial.Print ("Couldnt vinden sensor.");

digitalWrite (solenoïde, hoge);

Serial.println ("solenoïde heeft geopend");

terugkeer;

}

luchtdruk = baro.getPressure(); Deze eigenschap retourneert een luchtdruk

Druk = luchtdruk / 6894.75729; pressurePSI = luchtdruk / 6894.75729; Luchtdruk wordt omgezet in PSI

luchtdruk = round(pascals); Rondes nummer dus er geen decimale is wanneer het wordt verzonden naar verwerking via de seriële chamberTemp = baro.getTemperature(); Deze eigenschap retourneert een Celsius

}

VOID setRGB (int r, int g, int b) {}

analogWrite (redPin, r);

analogWrite (greenPin, g);

analogWrite (bluePin, b);

}

ongeldig dallasRun() {}

Bel sensors.requestTemperatures() voor het uitgeven van een mondiale temperatuur

verzoek om alle apparaten op de bus

Serial.Print ("aanvragen temperaturen...");

sensors.requestTemperatures(); Verzenden van de opdracht te krijgen van de temperaturen

Serial.println("Done");

Het reageert bijna onmiddellijk. Laten we de gegevens uitprinten

printTemperature(tempDeviceAddress);

Gebruik een eenvoudige functie om de gegevens te drukken

yeastTemp = sensors.getTempC(tempDeviceAddress);

Serial.Print(yeastTemp);

}

ongeldig dallasSetup() {}

Opstarten van de bibliotheek

sensors.begin();

Pak een aantal apparaten op de draad

numberOfDevices = sensors.getDeviceCount();

Ga naar apparaten op de bus

Serial.Print ("zoeken naar apparaten...");

Serial.Print ('gevonden');

Serial.Print (numberOfDevices, DEC);

Serial.Print ("zinspreuk.");

verslag parasiet stroomvereisten

Serial.Print ("parasiet macht is:");

Als (sensors.isParasitePowerMode()) / / Serial.println("ON");

anders / / Serial.print ("OFF");

Doorlopen van elk apparaat, adres uitprinten

for (int i = 0; ik < numberOfDevices; i ++) {}

Zoek de draad voor adres

Als (sensors.getAddress(tempDeviceAddress, i)) {}

Serial.Print ("gevonden apparaat");

Serial.Print (i, DEC);

Serial.Print ("met adres:");

printAddress(tempDeviceAddress);

Serial.println();

Serial.Print ("resolutie instellen op"); Serial.Print (TEMPERATURE_PRECISION, DEC);

de resolutie ingesteld op TEMPERATURE_PRECISION bit (elke Dallas/Maxim apparaat in staat is van diverse verschillende resoluties)

sensors.setResolution (tempDeviceAddress, TEMPERATURE_PRECISION);

Serial.Print ("resolutie eigenlijk ingesteld op:");

Serial.Print(sensors.getResolution(tempDeviceAddress), DEC); Serial.println(); } else {/ / Serial.print ("gevonden ghost-apparaat op"); Serial.Print (i, DEC); Serial.Print ("maar kon niet detecteren adres. Controleer de macht en bekabeling"); } }

}

functie voor het afdrukken van een apparaat adres ongeldig printAddress (DeviceAddress deviceAddress) {voor (uint8_t ik = 0; ik < 8; i ++) {als (deviceAddress [i] < 16) Serial.print("0"); Serial.Print (deviceAddress [i], HEX); } }

Gerelateerde Artikelen

Positiebepaling mijn Flexbrew!

Positiebepaling mijn Flexbrew!

ik heb veel projecten bij gedeeltelijke afsluiting maar deze bijzondere omgezet in een must afwerking van de situatie. In principe ging onze koffiepot zuiden. En nogmaals ik vind mezelf in het onderzoek van de pot koffie en reparatie bedrijf. (Zie mi
BEWIJS van CONCEPT: Een koudwater airconditioning prototype - ONTMANTELD.

BEWIJS van CONCEPT: Een koudwater airconditioning prototype - ONTMANTELD.

Ik ben van plan deze 100 watt compressor gebruiken om te relaxen in een geïsoleerde tank water terwijl ik op het werk. De energie hiervoor zullen via mijn huis zonne-energie systeem aangezien ik oogst een overschot van energie die ik niet kan slaan v
Protopiper: fysiek schetsen kamer middelgrote objecten op werkelijke schaal

Protopiper: fysiek schetsen kamer middelgrote objecten op werkelijke schaal

Protopiper is een computer aided, hand-held fabricage apparaat waarmee gebruikers te schetsen van de kamer en middelgrote objecten op werkelijke schaal. Het belangrijkste idee achter protopiper is dat het plakband in buizen als haar belangrijkste bou
Prototype van de WeftWash

Prototype van de WeftWash

WeftWash is een geperforeerde kam-board dat houden van haarverlenging detangled tijdens het wassen, drogen van de lucht, weergeven, opslaan en vervoeren van processen.Het doel van WeftWash is aan het verlagen van de wrijving tijdens deze processen te
Grote, auto dim, kamer klok (met behulp van de arduino en WS2811)

Grote, auto dim, kamer klok (met behulp van de arduino en WS2811)

Eerste Hello instructables.Dit is mijn eerste contact met:InstructablesArduinoProgrammeerbare LED'sDus gelieve niet trow rotsen bij mij voor noobish fouten.Rekening houdend met dat ik wacht om te lezen van uw opmerkingen met rasp belang en ik sta ope
Rapid Prototyping de ouderwetse manier (plaatwerk + soldeer)

Rapid Prototyping de ouderwetse manier (plaatwerk + soldeer)

Wil je leuke dingen? Goedkoop? Snel? U moet enkele manier om te doen eigenlijk het gebouw. Geen punt gewoon bedenken van ideeën eh? Dit instructable presenteert een manier om kleine voorwerpen sneller dan een 3D-printer. Het duurt wel een beetje meer
Nederlands beste Bitter - alle graan brouwen voor beginners.

Nederlands beste Bitter - alle graan brouwen voor beginners.

Ik begon met het brouwen van ongeveer 5 jaar geleden en na veel proberen, experimenteren en slecht bier ik heb eindelijk gekraakt goed alle graan brouwen. Zozeer zelfs dat ik 8 gallons gebrouwen voor een vrienden bruiloft onlangs!Er zijn veel aanwijz
Ligten omhoog uw kamer interieur met A zomer Touch

Ligten omhoog uw kamer interieur met A zomer Touch

zomer nadert! U woont dicht bij de zee of hoog in de bergen is het altijd aardig om te herinneren aan jezelf hoe goed tijd wordt besteed aan het strand. Ik besloot om het te doen in een vrij interessante manier!Dit instructable begeleidt u hoe maak j
BlueSense - DIY Smart kamer automatisering met behulp van Bluetooth

BlueSense - DIY Smart kamer automatisering met behulp van Bluetooth

Uw droom Smart kamer is slechts één aanraking weg! Invoering van "BlueSense"--het slimme kamer automatiseringssysteem dat een kunt bepalen van het toestel in de kamer met behulp van smartphones. Het bereik van de werking voor BlueSense is ongeve
Hoe maak je een koffiezetapparaat auto-brouwen

Hoe maak je een koffiezetapparaat auto-brouwen

Intro:Voor deze ochtenden waar je alleen maar dat koffie klaar te zijn hoeft wanneer je wakker wordt, zal uw Arduino koffie-/ theevoorzieningen komen tot de redding! Dit kan gebeuren met de meeste koffiezetapparaten, maar degene die ik gebruikt was e
Gegevens Over licht: een Laser Modem Prototype

Gegevens Over licht: een Laser Modem Prototype

Dit project werd ingegeven door de wens om te analyseren en bespreken van de tekortkomingen van onze afhankelijkheid van corporate communicatienetwerken.Als we meer en meer houden overdragen van ons dagelijks leven steeds minder digitale platforms, m
De Koi-vijver (Prototype 1)

De Koi-vijver (Prototype 1)

Voor de meeste van mijn leven heb ik geboeid met licht- en verlichtingstechniek, maar onlangs heb ik begonnen met het verkennen meer video gebaseerde technieken waarbij zowel projectie en groot aantal gedistribueerde LED-armaturen. In veel van mijn p
De interactieve omgevingen prototyping in virtuele werkelijkheid met Google karton, eenheid en Hotline Bling (TfCD)

De interactieve omgevingen prototyping in virtuele werkelijkheid met Google karton, eenheid en Hotline Bling (TfCD)

Deze dagen, (meeslepende) ervaringen zijn prioriteit gegeven aan over pure functionaliteit en specificaties op papier. Deze verandering van focus heeft beïnvloed het ontwerpproces van industrieel ontwerpers, architecten, app-ontwikkelaars en artieste
Prototype afdrukken van PCB's

Prototype afdrukken van PCB's

dit is een "how to" ingesteld voor het hand soldeer plakken afdrukken van PCB's voor het maken van een prototype van de vergadering elektronica. De reikwijdte van deze instructies is voor de uiteindelijke montage van een paar PCB voor een eerste