OLED THERMOMETER PIC12F629
OLED display, 128x64, 0.96", SSD1306, I2C with PIC12F629 and DS18B20 sensor. Oled is driven by software (bit banging) I2C. Code includes functions for reading the sensor.
Temperature range is -55 to 100 centigrade.
470 ohm resistors are for attenuating 5V output of the pic to 3.3V input of the OLED.
OLED ROOM THERMOSTAT PIC16F628A
OLED display, 128x64, 0.96", SSD1306, I2C with PIC16F628A. Oled is driven by software (bit banging) I2C. Setting the room temperature by 2 buttons.
Output transistor is to drive a relay or directly 24VDC input to a central heating boiler. Hysteresis is 0.5 degree. Reading the temperature is every second.
USB THERMOMETER USING DS18B20 SENSOR
USB thermometer DS18B20 temperature sensor. Included
Visual Basic 6 software, Visual Studio 2005 C# code, PIC C code
and a circuit diagram. The PIC interface
to the PC is HID class.
The DS18B20 sensor has a range of -55 to 125 centigrade in accuracy of 0.5 degree and resolution of 9 to 12 bits. The interface to the pic is via one digital line, the 1 and 0 is determined by pulse duration. The code includes the commands to read temperature and set the resolution.
HID class (human interface
device) is a class of devices like the mouse and the keyboard, the data transfer rate
is limited to 64KB/S. The PC already has a driver for HID USB.
C# code is modified Microchip code from the USB framework, Microchip Solutions v2012-04-03.
VB6 code includes guidance to setting up the PC.
The PC register the PID (Product ID) and VID (Vendor ID) of the USB device when
it's plugged, the VB code uses these ID's to communicate with the
device. For commercial VID it is needed to buy it from USB-IF, but in your lab you can use any number. The source code is derived from freeware from these sources: http://janaxelson.com/usb.htm , http://openprog.altervista.org/USB_firm_eng.html
You are free to use the circuit diagram and the VB software with no
limitations.


Circuit Description
See also Technical Tips
Pushbuttons are momentary N.O.
DS18B20 can be any type of casing.
OLED module is I2C interface, 4 pins connector. Driver SSD1306. From
ebay: https://www.ebay.co.uk/itm/0-96-I2C-IIC-Serial-128X64-White-OLED-LCD-LED-Display-Module-for-Arduino-UK/192294699203?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2649

Circuit Description
See also Technical Tips
PIC18F2550
Pin 14 is 3.3V internal supply for the USB transceiver.
Pins 15,16 are the data lines to the USB connector on the PC.
Pin 20 is the PC 5V powering the PIC. It is limited to 100mA by
the PC. 0.47uF is for decoupling.
For USB wiring info: http://www.interfacebus.com/Design_Connector_USB.html
DS18B20 SENSOR
Any type of case can be used. |