
This, together with the referenced figures, assembly instructions and other examples, is included in the documentation which is shipped with the serial temperature kit.
Introduction.
A suggested PC interface is illustrated in Figure #12. Note that the interface between the PC and the measurement system consists of three leads; TX, RX and ground where the terms TX and RX are referenced to the PC. Note that as the interface uses EIA levels at a relatively low speed, the distance between the PC and the temperature measuement system may be 150 feet or more.
PC lead TX is connected via a MAX232 stage to processor input /MEAS on the temperature measurment processor. The PC's TX output is normally less than -3V (an EIA logic one) and the output of the MAX232 stage is a TTL logic one. Thus processor intputs MEAS and /MEAS are at logic zero and logic one, respectively. Thus, the serial temperature system is idle.
When a measurement is desired, the PC sends any character which causes /MEAS to go momentarily low, initiating a measurement sequence. Note that the transmitted character is not read by the temperature measurment controller. Rather the logic zero associated with the Start bit in any character is detected and this intiates the sequence.
The serial data is then sent to the PC via the MAX232. Note that the serial temperature measurement system sends 2400 baud non inverted. That is, the idle condition is a TTL logic one. The START bit is a TTL logic zero, the eight data bits are sent, followed by the STOP bit which is a TTL logic one. However, the MAX232 converts a TTL logic one and zero to less than -3V and greater than +3V respectively which is compatible with a PC Com Port.
The temperature measurement unit be configured for either a single line or multiline format by setting a strap on the input of the temperature processor. In the single line format, all measurments are sent in a single string, each measurement consisting of ASCII characters to two decimal point accuracy. Each result is separated by a space and the entire string is terminated with ASCII return and linefeed characters. In the multiline format each measurment is sent as it is available.
In this discussion, the single line format is used. Note that processor input 1_LINE is open (logic one).
Program T_MEAS.BAS.
The following program is written in QBASIC which is avaiable with most DOS version beginning with DOS 5.0. The program periodically sends a character to intiate a sequence and then reads the result and displays it on the terminal. After a brief delay the program then loops.
I will freely admit that I don't know BASIC and at this point in my life, I have too many other interesting things to do. The intent here is simply to provide an example using the near universally available QBASIC. Even writing the following was painful!
However, there are a good many folks out there who do amazing things with Visual Basic and I assume they can adapt this code and then take the string of measurements, draw amazing 3D guages on the screen, provide a maximum and minimum indication, log the data to disk, display real time plots and provide alarms if certain temperature thresholds are exceeded.
My intent in offering the kit is to provide a very inexpensive means of measuring up to eight temperatures and converting it to a serial string of characters which people can readily use in all manner of applications. Use your imagination and creativity.

' T_MEAS.BAS
'
' Used to interface with serial temperature measurment system to obtain
' a string of ten measurment results.
'
' Com port is opened. Any character is sent to the measurment system
' initiating a measurment sequence.
'
' A$ is intialized as a null string. Up to 100 characters are fetched
' and each character is checked as to whether it is a "line feed". If
' not, the character is appended to string A$. If it is, the loop is
' exited and the string is written to the screen.
'
' The process is repeated indefinitely after a 60 second delay.
'
' Peter H. Anderson, August 27, '97
OPEN "COM1: 2400,N,8,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048" FOR RANDOM AS
#1
TX:
WRITE #1, "A"
RX:
A$ = "" ' begin with null string
FOR N = 1 TO 100
CH$ = INPUT$(1, #1) ' fetch a character
IF (CH$ = CHR$(10)) THEN GOTO DONE
A$ = A$ + CH$ ' append the character to A$
NEXT
DONE:
PRINT A$
SLEEP(60) ' 60 second delay
GOTO TX ' and then repeat
END
