Begin Processing - de temperatuur Visualizer (5 / 7 stap)

Stap 5: Seriële communicatie


Verwerking kan communiceren met andere fysieke apparaten (zoals microcontrollers) met behulp van seriële communicatie. Bij deze vorm van communicatie verzendt het apparaat (in ons geval, een Arduino) seriële data op de verwerking schets een beetje op een moment. Het aantal bits per seconde wordt verzonden, is afhankelijk van de Baud-rate. Standaard is de baud-rate voor de Arduino en Processing milieu 9600. U kan dit veranderen, maar zorg ervoor dat de baud-rate is hetzelfde voor zowel de einde-toepassingen.

Om aan te tonen dat, ik zal met behulp van een Arduino om gegevens van een DHT11 temperatuur/luchtvochtigheid sensor naar de Processing schets. De code van de Arduino is hierbij gevoegd.

Meeste van de raar functies die u op de Arduino schets ziet maken deel uit van de DHT11 bibliotheek. Controleer de voorbeeld-schets die wordt geleverd met de bibliotheek ter referentie.

Het cruciale punt om op te merken is hoe we sturen elke tekenreeks van gegevens. Ten eerste, wij drukken de waarde van de temperatuur met behulp van Serial.print(). Ten tweede, wij drukken een komma, en dan komt de waarde van de luchtvochtigheid, gevolgd door een nieuwe-lijn (de Serial.println()). Daarom zijn we genereren van tekenreeksen bestaande uit twee sensor-waardes, gescheiden door een komma en elke tekenreeks eindigt met een karakter van de nieuwe-lijn.

Nu, laten we hij hoe Processing parseert de snaren. Hier is een eenvoudige schets waarin alleen de sensor-waarde wordt weergegeven:

de seriële bibliotheek importeren

importeren van processing.serial.*;

Seriële myPort; seriële-object

PFont lettertype; PFont object

globale variabelen

int. temp = 0;

int hum = 0;

VOID Setup {}

size(400,400);

myPort = nieuwe Serial(this,"COM3",9600);

myPort.bufferUntil('\n');

lettertype = loadFont ("ARESSENCE-48.vlw"); //created lettertype

textFont(font);

}

VOID draw() {}

Background(255);

Fill(140);

tekst ("temperatuur:" + temp, 72, 120);

tekst ("vochtigheid:" + hum, 104, 220);

}

VOID serialEvent(Serial myPort) {}

Lees de seriële buffer

String myString = myPort.readStringUntil('\n');

Als (myString! = null) {}

myString = trim(myString);

int sensorData [] = int(split(myString,','));

Temp = sensorData [0];

Hum = sensorData [1];

}

}

Zie bovenstaande uitkomst

Dingen op te merken:

  1. De verwerking van seriële bibliotheek is geïmporteerd bovenaan
  2. Een seriële type object met de naam "myPort" is gemaakt.
  3. In het configuratiemenu extraheert de "myPort.bufferUntil('\n')" de seriële data alleen wanneer een nieuwe-lijn-teken wordt gevonden. Dit zorgt ervoor dat een seriële gebeurtenis wordt geactiveerd wanneer een gehele gegevensreeks wordt gewonnen, niet ergens in het midden.
  4. de serialEvent() is een verwerking ingebouwde gebeurtenisfunctie, die wordt aangeroepen telkens die een seriële gebeurtenis wordt geactiveerd. Zodra het heet, het leest de uitgepakte tekenreeks uit de seriële buffer, snijdt u het en de tekenreeks splitst in twee tekenreeks, elk wezen van de waarde van een sensor. Deze waarden worden tijdelijk opgeslagen in een matrix, en vervolgens worden toegewezen aan de globale variabelen "temp" en "hum" respectievelijk.
  5. De "PFont" is een ingebouwde klasse voor het opstellen van de tekst. Om dit te gebruiken, moet u een lettertype met behulp van de "Maken lettertype..." optie onder Hulpmiddelen voor. Daarna volg wat ik deed!

Seriële communicatie is enigszins een enorme onderwerp. Om het even wie willen duiken verder wordt sterk aangemoedigd om te controleren de Tom Igoe Physical Computing klasse notities.

Gerelateerde Artikelen

Realtime temperatuursensor en Dashboard

Realtime temperatuursensor en Dashboard

Microcontrollers worden steeds goedkoper, krachtiger en meer flexibel. Nieuwe modules en sensoren blijven maken van de nieuwe use-cases, en het Internet van dingen blijft omhoogschieten.Buiten gewoon verzamelen of gegevens opsporen, wij willen iets d
PHYSIC achter sky lantaarns

PHYSIC achter sky lantaarns

Hallo iedereen,in dit instructable zal ik het beginsel van vlucht luchtballon (bekend als sky lantaarns) uitleggen. Ik had hete lucht ballonnen voor schoolproject, dus ik dacht dat het aan andere mensen zien hoe hete lucht ballonnen werkt geïnteresse
FPGA Tic Tac Toe

FPGA Tic Tac Toe

"Tic Tac Toe? Wat is dat? Ik heb nog nooit gehoord daarvan."-Niemand ooitDoor Ryan Frawley en Derek NguyenDeze gids zal u tonen hoe maak je een werkende Tic Tac Toe game in VHDL op een Nexys 2 FPGA-board. Deze tutorial werd gedaan voor een deel
FPGA-vergrendelingsbeheerproject LED

FPGA-vergrendelingsbeheerproject LED

Voor onze laatste project in Digital Design op Cal Poly, waren wij belast met het maken van een project dat natuurlijke hulpbronnen met behulp van een FPGA (veld programmable gate array) aan boord bewaard.Ons project is een simulatie van een kamer wa
Ugly Drum Smoker - Aumador verticale

Ugly Drum Smoker - Aumador verticale

voor enige tijd die ik wilde maken van een roker en na zoeken op Internet ik precies wat ik nodig had ontdekte, een verticale roker gemaakt van een 55 gallon drum, ook wel "Ugly Drum Smoker" UDS.Blijkbaar is het ontwerp van dit soort rokers is h
Ultrasone afstand Sensor Visualizer W / Processing

Ultrasone afstand Sensor Visualizer W / Processing

Dit project maakt gebruik van verwerken om gegevens uit een ultrasone afstandsmeter op een arduino board en ingang naar variabelen in een schets.Stap 1: Uw hardware instellenu moet:Ultrasone afstandsmeterArduino boarddradendraad verbinden met uw meet
Fish Tank temperatuur realtime Visualizer

Fish Tank temperatuur realtime Visualizer

Hallo Instructables!Ik wilde altijd al een manier om gemakkelijk het controleren van de temperatuur van het water in mijn aquarium.Met behulp van 2-3 LEDs voor laag/normale/hoog temperatuur te saai voor mij, lijkt dus ik besloot om een RGB LED strip
Weerstation Arduino en Processing

Weerstation Arduino en Processing

bouwen van een weerstation thuis of mobiel en grafiek van de gegevens in real time op uw computer. De grafiek kaarten uit windsnelheid, druk, temperatuur, en windrichting voor 10 minuten dan wordt de afbeelding opgeslagen als een JPEG-bestand en opni
Interactieve glijden Visualizer

Interactieve glijden Visualizer

Dit project is een interactieve glijdende visualizer tampon. Het is een instrument dat kan worden gebruikt om te bladeren door middel van tijd of ruimte.Demonstratievideo:Wij gebruikten het visualiseren van een 3-dimensionale cadaver afbeelding set e
LED muziek Visualizer met Zybo bestuur

LED muziek Visualizer met Zybo bestuur

Deze tutorial beschrijft hoe maak je een LED muziek Visualizer met behulp van het Zybo Zynq 7000 ontwikkel bord van Xilinx. De Zybo is vrij ontzagwekkend, want het heeft zowel een FPGA en een bewerker van het wapen op het bord. Vanwege dit, kunnen aa
De 600W Wake-Up Light met temperatuur Logger

De 600W Wake-Up Light met temperatuur Logger

Dit hier is een zeer geavanceerde 24u temperatuur logger, die de temperatuur elke 15 seconden registreert en dan het gemiddelden over 1 min en 12mins. De waarde 12min gemiddeld wordt uitgezet op de tijdlijn op een OLED scherm van 128 x 64. Het gemidd
Digitale vochtigheids- en temperatuur-Monitor

Digitale vochtigheids- en temperatuur-Monitor

Hallo iedereenZorgen voor goede indoor vochtigheid heeft belangrijke huid, allergeen en andere voordelen voor de gezondheid door remming van de groei van bacteriën, virussen, schimmels en enz. Deze digitale temperatuur en vochtigheid Monitor kunt u c
ATTiny85 Mono temperatuur Monitor

ATTiny85 Mono temperatuur Monitor

Ik graag doen elektronica als een hobby en een mooie werkruimte die ik heb van een afgedankte PC gemaakt hebben. Het bevat een solderen houder en soldeerbout (rechter bovenhoek van de afbeelding van de werkruimte). Het gebeurt dat ik heb een handige
Programmering ESP8266 ESP-12E NodeMCU v1.0 met Arduino IDE in draadloze temperatuur logger

Programmering ESP8266 ESP-12E NodeMCU v1.0 met Arduino IDE in draadloze temperatuur logger

Terug in eind 2014 en begin 2015, uw echt kwamdeze handige WiFi Chip ESP8266 (de ESP-01) en moeten vechten onder de inconsistente documentatie uit verschillende bronnen. Vooralsnog uitloper gedocumenteerd hij zijn frustraties (bevindingen) als een in