TEP DOWNLOAD CENTER

Project Files of SHT31 Sensor Library for Proteus V1.1 (Temperature + Humidity Sensor + Arduino)

Libraries Code Projects Simulation
tep://download-terminal sht31-tep-v1-1-f89371e942f7444a8c46b3fbdd245983.zip ZIP archiveV1.1Verified4 downloadsFree
SHT31 Sensor Library for Proteus V1.1: two Arduino UNOs with purple GY-SHT31-D boards, the SHT31 Advance pop-up Sensor page at FRIDGE with 4.0 C, 85.0 % and a dew point of 1.7 C, and the TEP Serial Monitor in its Simple interface
Proteus library · File 1 of 1

SHT31 Sensor Library for Proteus V1.1

SHT31 Sensor Library for Proteus V1.1 comes as a ZIP archive of 42 files (1.5 MB, 3.3 MB unpacked) holding Proteus library files, simulation model DLLs, a Proteus simulation, an Arduino sketch, an Arduino library and compiled HEX firmware.

  • LIBProteus library
  • IDXProteus library index
  • DLLProteus model
  • DSNProteus simulation
  • INOArduino sketch
  • LIBArduino library
  • HEXHEX firmware

Description

This is the download page of SHT31 Sensor Library for Proteus V1.1, the file package of the tutorial SHT31 Sensor Library for Proteus V1.1 (Temperature + Humidity Sensor + Arduino), published on The Engineering Projects in September 2026. Here you get the ZIP file (1.5 MB) with the Proteus library files (LIB and IDX), the simulation model (DLL), a ready Proteus simulation, an Arduino sketch, an Arduino library and the compiled HEX firmware, the list of files it contains, the README when there is one, and the installation steps in order.

What this library is

SHT31-Sensor-Library-for-Proteus-v1.1.zip with SHT31 Simple and Advance (TEPSHT31.LIB and TEPSHT31.DLL), the TEP Serial Monitor and Arduino UNO libraries for Proteus, the two-UNO humidity station with ALERT simulation with its HEX file, the demo sketch with the Adafruit SHT31 and BusIO libraries and a README.

This is version 1.1; older or newer releases, when they exist, are listed in the Development tab.

What is inside the ZIP file

  • ArduinoV3TEP.LIB – Proteus library, 95.6 KB
  • TEPSERIALMON.LIB – Proteus library, 11.1 KB
  • TEPSHT31.LIB – Proteus library, 44.4 KB
  • ArduinoV3TEP.IDX – Library index, 830 B
  • TEPSERIALMON.DLL – Simulation model, 978 KB
  • TEPSHT31.DLL – Simulation model, 537 KB
  • and 36 more, all listed in the File Structure tab

The archive unpacks to 3.3 MB and carries its own README (README.txt), shown in the README tab above.

How to download

Use the download panel at the top of this page: after the counter (30 seconds for guests, 10 for members) the black button unlocks and the ZIP file comes straight from our content network. If the browser opens it instead of saving, use Save as; extract the whole archive before using anything inside it.

How to install

  • Step 1: Extract the ZIP file with Windows (Extract All), 7-Zip or WinRAR, keeping its folders.
  • Step 2: Close Proteus and copy ArduinoV3TEP.LIB, TEPSERIALMON.LIB and TEPSHT31.LIB and ArduinoV3TEP.IDX into its LIBRARY folder (Proteus 8: C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY).
  • Step 3: Copy TEPSERIALMON.DLL and TEPSHT31.DLL into the MODELS folder next to it, so the part simulates.
  • Step 4: Start Proteus, press P and search for "ArduinoV3TEP"; place and wire it as in the tutorial.
  • Step 5: In the Arduino IDE use Sketch → Include Library → Add .ZIP Library, then restart the IDE.
  • Step 6: Open SHT31_Demo.ino, genericdevice_uartregtest.ino and genericdevice_uarttest.ino and 9 more in the Arduino IDE, pick board and port and Verify (Export Compiled Binary gives the HEX).
  • Step 7: In Proteus set the controller's Program File to SHT31_Demo.hex; on hardware, flash the same file.
  • Step 8: Open SHT31-ArduinoUnoV3.pdsprj in Proteus and press Play.

Read the detailed guide

This page is for the files. The full tutorial, SHT31 Sensor Library for Proteus V1.1 (Temperature + Humidity Sensor + Arduino), explains the circuit and the code step by step and shows the working results and the simulation; read it before you build. Questions about the download or the installation go in the comments below; more Proteus downloads are listed further down this page.

Read SHT31 Sensor Library for Proteus V1.1 (Temperature + Humidity Sensor + Arduino)

File Structure

sht31-tep-v1-1-f89371e942f7444a8c46b3fbdd245983.zip42 files · 18 folders · 3.3 MB unpacked
SHT31-TEP-v1.1/42 files · 3.3 MB
Arduino Code/31 files · 96.7 KB
libraries/30 files · 90.3 KB
Adafruit_BusIO/24 files · 77 KB
examples/12 files · 23.9 KB
genericdevice_uartregtest/2 files · 6.1 KB
SKIP .uno.test.skipSKIP file 0 B
INO genericdevice_uartregtest.inoArduino sketch 6.1 KB
genericdevice_uarttest/2 files · 2.6 KB
SKIP .uno.test.skipSKIP file 0 B
INO genericdevice_uarttest.inoArduino sketch 2.6 KB
i2corspi_register/1 file · 1 KB
INO i2corspi_register.inoArduino sketch 1 KB
i2c_address_detect/1 file · 465 B
INO i2c_address_detect.inoArduino sketch 465 B
i2c_readwrite/1 file · 1.1 KB
INO i2c_readwrite.inoArduino sketch 1.1 KB
i2c_registers/1 file · 1 KB
INO i2c_registers.inoArduino sketch 1 KB
spi_modetest/1 file · 805 B
INO spi_modetest.inoArduino sketch 805 B
spi_readwrite/1 file · 963 B
INO spi_readwrite.inoArduino sketch 963 B
spi_registers/1 file · 991 B
INO spi_registers.inoArduino sketch 991 B
spi_register_bits/1 file · 8.9 KB
INO spi_register_bits.inoArduino sketch 8.9 KB
LIB Adafruit_BusIO_Register.cppArduino library file 12.2 KB
LIB Adafruit_BusIO_Register.hArduino library file 3.7 KB
LIB Adafruit_GenericDevice.cppArduino library file 3.2 KB
LIB Adafruit_GenericDevice.hArduino library file 2.2 KB
LIB Adafruit_I2CDevice.cppArduino library file 9.2 KB
LIB Adafruit_I2CDevice.hArduino library file 1.1 KB
LIB Adafruit_I2CRegister.hArduino library file 252 B
LIB Adafruit_SPIDevice.cppArduino library file 14 KB
LIB Adafruit_SPIDevice.hArduino library file 5.4 KB
LIB library.propertiesArduino library file 340 B
FILE LICENSEFile 1.1 KB
MD README.mdReadme 525 B
Adafruit_SHT31/6 files · 13.3 KB
examples/1 file · 1.8 KB
SHT31test/1 file · 1.8 KB
INO SHT31test.inoArduino sketch 1.8 KB
LIB Adafruit_SHT31.cppArduino library file 5.4 KB
LIB Adafruit_SHT31.hArduino library file 3 KB
LIB library.propertiesArduino library file 334 B
TXT license.txtText file 1.5 KB
MD README.mdReadme 1.3 KB
SHT31_Demo/1 file · 6.4 KB
INO SHT31_Demo.inoArduino sketch 6.4 KB
Proteus Library Files/4 files · 151.9 KB
IDX ArduinoV3TEP.IDXLibrary index 830 B
LIB ArduinoV3TEP.LIBProteus library 95.6 KB
LIB TEPSERIALMON.LIBProteus library 11.1 KB
LIB TEPSHT31.LIBProteus library 44.4 KB
Proteus Model Files/2 files · 1.5 MB
DLL TEPSERIALMON.DLLSimulation model 978 KB
DLL TEPSHT31.DLLSimulation model 537 KB
Proteus Simulation/4 files · 1.5 MB
DSN SHT31-ArduinoUnoV3.pdsprjProteus simulation 22.9 KB
HEX SHT31_Demo.hexCompiled HEX file 38.4 KB
DLL TEPSERIALMON.DLLSimulation model 978 KB
DLL TEPSHT31.DLLSimulation model 537 KB
TXT README.txtText file 28.1 KB

README

README.txt 368 lines
SHT31 TEMPERATURE HUMIDITY SENSOR (GY-SHT31-D) LIBRARY FOR PROTEUS - V1.1
Designed by The Engineering Projects
www.TheEngineeringProjects.com

IMPORTANT LINKS
Article (read it first - pictures, step by step, every feature explained):
  https://www.theengineeringprojects.com/2026/09/sht31-proteus-library.html
Report a bug or suggest a feature (our forum):
  https://www.theengineeringprojects.com/forum/category/sht31-proteus-library
The demo uses our TEP Serial Monitor Advance (included) instead of Proteus's
Virtual Terminal - its own article:
  https://www.theengineeringprojects.com/2026/10/serial-monitor-advance-proteus-library.html
Support us (the libraries are free):
  https://www.theengineeringprojects.com/donate

FILE STRUCTURE
SHT31-TEP-v1.1/
|-- Proteus Library Files/
|   |-- ArduinoV3TEP.IDX                          0.8 KB   its index -> LIBRARY folder
|   |-- ArduinoV3TEP.LIB                         95.6 KB   TEP Arduino UNO (demo) -> LIBRARY folder
|   |-- TEPSERIALMON.LIB                         11.1 KB   TEP Serial Monitor Advance -> LIBRARY folder
|   |-- TEPSHT31.LIB                             44.4 KB   SHT31 Simple + Advance (2 devices) -> LIBRARY
|-- Proteus Model Files/
|   |-- TEPSERIALMON.DLL                        978.0 KB   Serial Monitor model -> MODELS folder
|   |-- TEPSHT31.DLL                            537.0 KB   the TEP I2C sensor model -> MODELS
|-- Proteus Simulation/
|   |-- SHT31_Demo.hex                           38.4 KB   both UNOs (the demo sketch v1.1)
|   |-- SHT31-ArduinoUnoV3.pdsprj                22.9 KB   demo: UNO 1 + SHT31 Simple, UNO 2 + Advance
|   |-- TEPSERIALMON.DLL                        978.0 KB   copy of the monitor model
|   |-- TEPSHT31.DLL                            537.0 KB   copy of the model so the demo runs as is
|-- Arduino Code/
|   |-- SHT31_Demo/SHT31_Demo.ino                 6.4 KB   sketch (source of the .hex)
|   |-- libraries/Adafruit_SHT31/                13.3 KB   Adafruit SHT31 2.2.2, BSD, 6 files
|   |-- libraries/Adafruit_BusIO/                77.0 KB   Adafruit BusIO 1.17.4, MIT, 24 files
|-- README.txt                                  ~27.7 KB   this file
Total: 3.29 MB (unzipped). The C++ source code of the model is not included.

WHAT IS IT?
A simulation model of the Sensirion SHT31 (SHT3x-DIS) temperature and humidity
sensor on the common purple GY-SHT31-D breakout, for Proteus 8. Your Arduino
talks to it over I2C exactly as to the real chip (address 0x44 with ADDR low,
0x45 with ADDR high) and the popular Adafruit SHT31 library runs unmodified:
begin, readTemperature, readHumidity, readBoth, readStatus, heater /
isHeaterEnabled, reset. The model speaks the SHT31's command protocol: single
shot measurements with their real duration (a read before the result is ready
is NACKed), periodic mode (0.5 .. 10 measurements / s, Fetch Data, Break), ART,
the CRC-8 on every word, the status word, the heater, the serial number - and
v1.1 adds the sensor's alert mode with the ALERT pin, a heater that really
warms the sensor (it reads a higher temperature and a lower humidity, the dew
point stays) and, if you want it, the real response time of the sensor (2 s for
temperature, 8 s for humidity). You set the temperature and the humidity with
sliders, presets (ROOM, SHOWER, FRIDGE, DESERT, BREATH, REAL TAU) or by
clicking the thermometer or the water drop above the board.
The part looks like the GY-SHT31-D: the purple board, the mounting hole, the
white SHT31 with its dark sensing opening, the small parts and the board print.
Above the board sits an animated climate view: a thermometer, a water drop that
fills with the humidity, the dew point, the heater (with how much it warms the
sensor) and an ALERT sign. On the board: a red PWR LED, a blue I2C LED that
flashes for every I2C transaction to this sensor and an amber ALERT LED that
lights while the ALERT pin is high - TEP additions (the real board has no LED) -
and the live I2C address (0x44 / 0x45).

TWO DEVICES IN ONE LIBRARY (search "SHT31" in Pick Devices):
  SHT31 Simple      device SHT31TEP       "SHT31 Temperature Humidity Sensor - Simple"
                    On-Sheet Panel: a control panel on the schematic next to the
                    board - six presets, the two sliders of v1.0 (drag them:
                    TEMPERATURE, HUMIDITY) and what your sketch READ over I2C
                    (decoded by the model as the Adafruit library converts it,
                    the dew point as the demo computes it: "SKETCH READ: 24.99 C
                    50.00 % DEW POINT 13.8 C"), the set values and what the sensor element
                    sees (the heater included). The red X in the panel's header
                    closes it, the PANEL button on the board opens it again. Your
                    v1.0 designs keep working with this device.
  SHT31 Advance     device SHT31ADVTEP    "SHT31 Temperature Humidity Sensor - Advance"
                    Pop-Up Panel: only the board on the schematic; at Run a TEP
                    pop-up window opens - the same look as the TEP Serial Monitor
                    (move it by its header, resize it, minimise it). The tabs
                    Sensor and Test sit in the header; the gear and ? icons open
                    Settings and Help; the palette icon switches the theme:
                      Sensor    the live climate view (click the thermometer or
                                the drop), the presets, a click-slider with - / +
                                for every input, the last reading as big tiles, and
                                what the Arduino read over I2C (the values, the dew
                                point, the sensor element, the status word, the I2C
                                address and the measured SCL clock)
                      Test      four tools measured on the model with your sketch:
                                I2C check, Timing, Step response, Dew point &
                                heater (see THE TEST TOOLS below)
                      Settings  theme (TEP Dark / Light), text size, open at Run,
                                window size - remembered for your Windows user
                      Help      Help & Support like the TEP Serial Monitor: report a
                                bug, suggest a feature, article, user guide,
                                updates, donate, website, forum; Copy diagnostics
                                (the inputs, what was read, the registers, the last
                                transactions, the test results) for a bug report
                    The OPEN PANEL button on the board opens the window again
                    after you close it.
Both devices use the same model (TEPSHT31.DLL) and the same properties.

NEW IN V1.1
* Two devices: SHT31 Simple (panel on the sheet, close / open) and SHT31
  Advance (pop-up window with the live climate view, four test tools, settings
  and help) - see above.
* Board: the real GY-SHT31-D's look (purple, the mounting hole, the white SHT31
  with its opening) with an animated climate view above it (thermometer, water
  drop, dew point, heater, alert), PWR / I2C / ALERT LEDs (a TEP addition), the
  live I2C address, a PANEL / OPEN PANEL button and a SIMPLE / ADVANCE badge.
* Model - the ALERT pin and the alert mode (a known gap of v1.0): the four alert
  limits (read E11F / E114 / E109 / E102, write 611D / 6116 / 610B / 6100 with a
  CRC - a bad CRC is ignored and sets status bit 0), the datasheet defaults (80 %
  / 60 C set, 79 % / 58 C clear, 22 % / -9 C clear, 20 % / -10 C set), checked
  after every periodic measurement with the set / clear hysteresis; status bits
  15 / 11 / 10 and the ALERT pin (active high) follow.
* Model - the heater warms the sensor (+4 C with a 4 s time constant): the
  temperature it reports rises, the humidity falls and the dew point stays -
  as on the real sensor (v1.0: only the status bit).
* Model - the real response time on request (the REAL TAU preset / the RESPONSE
  property): tau63 2 s for the temperature, 8 s for the humidity; status 0x8010
  after a reset (the datasheet value); ART (4 measurements / s).
* Model - the command protocol decoded in an I2C transaction log ("write 2400
  (single shot, high repeatability)", "read -> 25.00 C, 50.00 % (CRC OK)", the
  busy NACKs) and the measured SCL clock.
* The demo: ONE project with two UNOs - UNO 1 with SHT31 Simple, UNO 2 with
  SHT31 Advance - each with the TEP Serial Monitor Advance instead of the
  Virtual Terminal (U3 = UNO 1, U4 = UNO 2, quick buttons) and an LED on A0.
* The demo sketch (v1.1) keeps every v1.0 line and adds: the dew point line, a
  humidity alarm on the LED (above 70 %), and the Serial Monitor commands HELP,
  STATUS, HEATER ON / OFF, ALERT ON / OFF (the sensor's own alert mode, set up
  with raw commands), HUMID. It prints nothing periodically except the readings.
* Version 1.1 everywhere; the C++ source code is no longer included (and
  neither is the Arduino AVR core archive - its GitHub link is below).

TEST STATUS
v1.1: verified in Proteus 8.5 on 8 Oct 2026 (the demo run from this package's
Proteus Simulation folder):
  * start-up: "Temperature: 25.0 C | Humidity: 50.0 %", "Dew point: 13.8 C";
  * ALERT ON 60 + SHOWER (with the real response): at 62.8 % "SHT31 alert:
    humidity above the limit (ALERT pin high)", at 71.2 % "Humidity alarm: above
    the limit (LED on)";
  * the four tools on U2: I2C check (0x44, status 8010, 0 NACKs, SCL 91 kHz, CRC
    OK reads in 691 us); Timing (6 measurements of 15.50 ms every 522.63 ms, 6
    reads, data age 5.3 ms); Step response "Humidity, real tau" 50 -> 80 -> 50 %
    (first reading 949.4 / 324.7 ms, 90 % after 18756.7 / 18110.2 ms, 38 readings
    each); Dew point & heater after HEATER ON on U4 (room 13.9, bathroom 26.2,
    fridge 1.7, desert 8.5 C, all +0.00 C, "heater on: +2.6 / +3.6 / +3.9 / +4.0 C");
  * a v1.0 design (the v1.0 release demo with this DLL): the v1.0 panel,
    "Temperature: 25.0 C | Humidity: 50...".
After that run (PC-tested, to be re-checked in Proteus): the panel's dew point uses
the demo's conversion and formula (13.8 C, as the demo prints), the Timing tool
states the datasheet's typical / max times correctly, every register has its own
row (no cut text), the Test pages fill the window. The re-check in Proteus
(8 Oct) passed all of that and found two more, fixed afterwards (PC-tested, to be
re-checked in Proteus): the "Humidity, real tau" steps now hold 48 s (6 tau) so
each settles (2 %) inside its step, and step 1 waits until the readings sit at
the start value; while SHOWER or BREATH runs, the humidity / temperature sliders
stay at the value you set, labelled "(base)", and say what the sensor gets now
("SHOWER now 95.0 %") - on the sheet panel and in the pop-up.
PC tests (8 Oct 2026, this package's DLL / LIB / sketch):
  2817 automatic checks on a PC, 0 failed, plus the v1.0 test, unchanged and
  passing with the v1.1 model (SHT31: official Adafruit CRC checks, 12
  environments, heater status, alternate address and busy NACK); 13 chip checks
  for v1.1 (the busy NACK, the heater (a warmer sensor, the same dew point),
  alert limits with CRC, the ALERT pin with hysteresis, periodic and ART rates,
  the real response time); 72 on the complete Proteus model (the LIB (pins,
  properties, both devices), power, ADDR, the PWR / I2C / ALERT LEDs, the panel,
  red X / PANEL, OPEN PANEL, the pop-up pages and links, the command protocol
  decoded, busy NACKs, the heater, the alert mode and a bad CRC, the real
  response, the presets and effects (SHOWER / BREATH: the sliders keep the base
  and say what the sensor gets now), the scene click, the four tools, a design
  with the v1.0 symbol); 30 with the real v1.1 demo sketch and the unmodified
  driver library on two UNOs (every v1.0 output line, the dew point line and
  humidity LED, every Serial Monitor command incl. the alert mode, SHOWER on the
  panel (base + now = what the sketch prints), the Timing / Step response (the
  real response x3 right after a SHOWER: it waits for the start value, settles
  inside each 48 s step) / Dew point & heater tools with the real sketch); 2702
  on the rendered boards and pop-up windows (every page fits in TEP Dark and
  Light, at Large text and 150 % DPI; every tool's hint lines and every header
  state fit).
v1.0 (29 Sep 2026): the v1.0 demo was opened, run and checked in Proteus 8.5
  (25.0 C / 50.0 % at the start, 60.0 C / 50.0 % after the temperature drag,
  60.0 C / 78.4 % after the humidity drag, no CRC errors); the v1.0 tests (the
  unmodified Adafruit library over the bit-level I2C slave: CRC checks, 12
  environments, heater status, alternate address, busy NACK) still pass with
  the v1.1 model.

INSTALLATION (about 2 minutes)
1. Close Proteus. Extract the WHOLE ZIP to a normal folder (e.g. Desktop).
2. Copy everything in "Proteus Library Files" (TEPSHT31.LIB with both devices,
   TEPSERIALMON.LIB and the TEP Arduino UNO V3 library ArduinoV3TEP.LIB / .IDX
   used by the demo) to the LIBRARY folder of Proteus, for example:
     C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY
   (on some PCs: C:\ProgramData\Labcenter Electronics\Proteus 8 Professional\
   LIBRARY - use the folder that already holds Proteus's own .LIB files).
3. Copy TEPSHT31.DLL and TEPSERIALMON.DLL from "Proteus Model Files" to the
   MODELS folder (...\Proteus 8 Professional\MODELS).
4. Updating from v1.0: replace TEPSHT31.LIB and TEPSHT31.DLL, and
   delete TEPSHT31.IDX if there is one in the LIBRARY folder. A v1.0 design keeps
   its v1.0 symbol: it runs with the new model and shows the v1.0 panel (without
   the v1.1 board parts and the red X) - re-pick the part to get the v1.1 symbol.
5. Start Proteus. In Pick Devices (P) search "SHT31": you get the Simple and the
   Advance device (category Sensors > Environmental, as in v1.0).
The model DLL is the TEP I2C sensor family model: TEPMPU6050.DLL, TEPBMP280.DLL,
TEPMAX30102.DLL, TEPVL53L0X.DLL, TEPSHT31.DLL and TEPTCS34725.DLL are identical
files under the v1.0 names, so every v1.0 design finds its model.

RUN THE DEMO
"Proteus Simulation\SHT31-ArduinoUnoV3.pdsprj" - keep SHT31_Demo.hex and the
two DLLs beside the project.
  UNO 1 (ARD1): SHT31 Simple (U1), Serial Monitor U3.
  UNO 2 (ARD2): SHT31 Advance (U2), Serial Monitor U4.
  Both UNOs run SHT31_Demo.hex. An LED (D1 / D2) with 220 ohm on A0 of each
  UNO: the humidity alarm.
  1. Press Run. Both monitor windows open (9600 baud) and so does U2's pop-up.
     U3 and U4 show "TEP SHT31 - drag the temperature and humidity sliders." and
     "TEP SHT31 Demo v1.1 - type HELP in the Serial Monitor", then twice a
     second:
       Temperature: 25.0 C | Humidity: 50.0 %
       Dew point: 13.8 C
     (the exact dew point of 25 C / 50 % is 13.85 C.) The blue I2C LED on each
     board flashes with every measurement.
  2. U1: drag HUMIDITY above 70 % - "Humidity alarm: above the limit (LED on)",
     LED D1 lights. SHOWER: the humidity climbs to 95 % in 8 s and falls again
     (the slider keeps your 50.0 % "(base)"; under it "SHOWER now 95.0 %");
     BREATH: a quick breath on the sensor; FRIDGE / DESERT; REAL TAU: now the
     readings follow a slider change slowly, like a real SHT31 (humidity 8 s).
     Close the panel with its red X and open it with PANEL.
  3. U3 / U4 quick buttons: STATUS ("Status: 0x8010 - heater OFF, alert pending
     ..."), HEATER ON (in a few seconds the temperature reads about 4 C more,
     the humidity less, the dew point stays), HEATER OFF, HELP. Type ALERT ON 60
     and drag the humidity above 60 %: "SHT31 alert: humidity above the limit
     (ALERT pin high)" and the amber ALERT LED on the board; ALERT OFF.
  4. U2 (Advance): the Sensor page shows the same inputs and what the sketch
     read; the Test page has the four tools (below).
  5. Close U2's window and open it again with OPEN PANEL on the board.
Closed a monitor window? Click OPEN MONITOR on the monitor part.

WIRING (as in the v1.0 demo)
VIN -> supply, GND -> GND, SCL -> A5, SDA -> A4, ADDR -> GND (address 0x44; ADDR
high = 0x45); ALERT not connected (it is optional: it drives the ALERT LED and
can go to D2 for attachInterrupt).
In the sketch: Adafruit_SHT31 sensor;  sensor.begin(0x44);  Serial 9600.
Serial Monitor RXD <- Arduino D1 (TX), Serial Monitor TXD -> Arduino D0 (RX),
Serial Monitor GND -> ground. RXD2 is not needed: I2C has no serial line to
watch. The humidity LED + 220 ohm from A0 to GND.
Pin order in Proteus: VIN GND SCL SDA ADDR ALERT (v1.0; the GY-SHT31-D has VIN
GND SCL SDA in a row and AD / AL as separate pads).
REAL HARDWARE:
 * Supply: the GY-SHT31-D has no regulator - VIN goes straight to the sensor,
   which runs on 2.4 .. 5.5 V; 3.3 V is the usual choice (5 V works).
 * I2C pull-ups: 10 k on the board (to VIN), so A4 / A5 need nothing else.
 * Address: ADDR low = 0x44, high = 0x45 - two SHT31 on one bus.
 * ALERT is active high (push-pull), only in periodic mode.
 * Self-heating: keep the sensor away from the regulator and the MCU; the
   heater is for removing condensation and for a plausibility check, not for
   normal measuring. Accuracy of the real SHT31: +-2 % RH, +-0.3 C; the model
   gives exact values.

THE TEST TOOLS (SHT31 Advance, Test tab) - what they really measure
Every tool runs on the live model with your sketch: it changes the sensor's
inputs (and restores them) and watches the I2C traffic your Arduino really
makes - it never talks to your Arduino. Each tool shows one "Good for:" line and
one line on how it measures.
  I2C check       Good for: checking that the SHT31 answers and what your
                  sketch really told it. The sensor's state decoded (the
                  address and the ADDR level, the status word - marked when a
                  command or a CRC failed -, the last command, single shot /
                  periodic, the four alert limits as % RH / C, the ALERT pin, the
                  heater and how much it warms the sensor now, the busy NACKs,
                  the limit CRC errors), transactions, bytes, NACKs, the
                  measured SCL clock and the last transactions decoded (repeats
                  folded). With the demo: "write 2400 (single shot, high
                  repeatability)", "read -> 25.00 C, 50.00 % (CRC OK)".
  Timing          Good for: seeing how long a measurement takes and whether
                  your sketch reads it in time. Records for 1, 3 or 10 s every
                  measurement and every read: the measurement time, the period
                  (periodic mode), the sketch's read period, the data age at
                  each read and the busy NACKs (a read before the result is
                  ready), with the datasheet times. With the demo: a 15.5 ms
                  measurement per reading, read about 5 ms after it ended
                  (Adafruit waits 20 ms), a reading every 520 ms, no busy NACK.
  Step response   Good for: seeing how quickly a change reaches your sketch -
                  measurement, read period and, with the real response time, the
                  sensor itself. Steps the temperature (25 -> 35 C), the
                  humidity (50 -> 80 %) or the humidity with the real response
                  time (tau 8 s, 48 s = 6 tau per step) 1, 3 or 5 times and
                  plots every reading; per step: the first reading that shows it
                  (10 %), 90 % and settled (2 %). Step 1 waits until the
                  readings sit at the start value (e.g. the sensor still drying
                  after a SHOWER: "Settling at 50.0 % (the sketch reads 63.2 %)"),
                  so the chart starts flat. With the demo: the next reading
                  (within 520 ms); with the real response: 90 % after about
                  18.5 s, settled (2 %) after about 31.5 s.
  Dew point &     Good for: checking your dew point maths in four climates -
  heater          and seeing what the heater does to the readings. Holds room
                  25 C / 50 %, bathroom 28 / 90, fridge 4 / 85, desert 40 / 15
                  (5 s each) and computes the dew point (Magnus, Sensirion's
                  constants 243.12 / 17.62) from what your sketch read; the last
                  point (8 s) checks the heater: type HEATER ON first - the
                  sensor reads about +4 C and the dew point stays. With the demo:
                  4 / 4 within 0.3 C, then "OK: +4.0 C, dew point kept".

THE DEMO SKETCH ON THE SERIAL MONITOR (SHT31_Demo v1.1)
  HELP                    the command list
  STATUS                  the sensor's status word decoded (heater, alert, mode)
  HEATER ON | OFF         the sensor's heater
  ALERT ON [rh] | OFF     the sensor's own alert: writes the high limits (rh,
                          default 70 %; clear 2 % lower) and starts periodic mode
                          (4 / s, read with Fetch Data); prints when the alert
                          sets or clears
  HUMID rh                the LED's humidity alarm level (default 70 %)
Monitor quick buttons in the demo: STATUS, HEATER ON, HEATER OFF, HELP.
Every line the sketch prints has at most 80 characters (it fits the Serial Monitor's
Simple interface); longer answers are split, the second line indented.

EXPECTED MONITOR OUTPUT (U3 and U4)
  TEP SHT31 - drag the temperature and humidity sliders.
  TEP SHT31 Demo v1.1 - type HELP in the Serial Monitor
  Temperature: 25.0 C | Humidity: 50.0 %
  Dew point: 13.8 C
After dragging to 60 C / 78.4 % (as in the v1.0 check):
  Temperature: 60.0 C | Humidity: 78.4 %
  Dew point: 54.9 C
  Humidity alarm: above the limit (LED on)
After STATUS:
  Status: 0x8010 - heater OFF, alert pending, single shot, LED above 70 %

PROPERTIES (double-click the sensor > Edit Properties; the same on Simple and
Advance - the v1.0 properties and one new)
  TEMPERATURE     temperature in C, -40 .. 125 (default 25)
  HUMIDITY        relative humidity in %, 0 .. 100 (default 50)
  RESPONSE        v1.1: 1 = the real response time (tau 2 s / 8 s), 0 = at once
                  as v1.0 (default 0; the REAL TAU preset)
The panel style is chosen by the device (Simple / Advance), not by a property.
The Advance window settings (theme, text size, open at Run, size) are on its
Settings page. The demo's Serial Monitors: BAUD 9600, THEME TEPDARK, AUTOOPEN
YES, QUICK1-4 as above (see the Serial Monitor's article for all its
properties).

LINKS.INI (OPTIONAL)
The Help page cards of the Advance device open web pages. To point them
somewhere else without a new DLL, put a text file named links.ini next to
TEPSHT31.DLL with lines KEY=URL, for example:
  ARTICLE=https://www.theengineeringprojects.com/...
Keys: WEBSITE, FORUM, BUG_REPORT, FEATURE_REQUEST, ARTICLE, USER_GUIDE,
UPDATE_CHECK, DONATE. Only http:// and https:// links are used; lines starting
with # are comments.

TROUBLESHOOTING
* "SHT31 not found. Check power, SDA, SCL and ADDR.": check VIN / GND (the PWR
  LED must be lit and the board shows "I2C 0x44"), SDA -> A4, SCL -> A5, and
  that ADDR matches the address in begin() (0x44 = ADDR low).
* "Measurement or CRC error.": the sensor did not answer (power, wiring) or a
  CRC did not match; in your own sketch also: reading a single shot before it
  is ready (15 ms at high repeatability) - the sensor NACKs, the I2C check
  counts busy NACKs.
* The values change slowly: the REAL TAU preset / RESPONSE = 1 is on.
* The temperature is a few degrees too high: the heater is on (STATUS, the
  board's view shows HEATER +x C) - HEATER OFF.
* ALERT never fires: the SHT31 checks its limits only in periodic mode (ALERT
  ON in the demo); with single shot measurements the ALERT pin stays low.
* The part is not simulated / no panel: TEPSHT31.DLL is missing from MODELS and
  from the project folder. No monitor window: TEPSERIALMON.DLL is missing, or
  click OPEN MONITOR on the monitor part.
* Advance: the pop-up does not appear - click OPEN PANEL on the board, use
  Proteus's Debug menu, or turn "Open the panel at Run" on its Settings page
  back on.
* Simple: the red X does not close the panel /
…
Advertisement

Development1 release

  1. V1.1SHT31 Sensor Library for Proteus V1.1this page

    V1.1 is the only release in the Download Center so far. When a newer version is published, it appears above with its own download page.

Installation9 steps

From the download to a working project, in order. The steps follow what the package contains.

You will need

  • Proteus Design SuiteProteus 8 or newer (Labcenter), on Windows
  • Arduino IDE1.8 or 2.x, with the board of the tutorial chosen under Tools → Board
  • Any archive toolWindows, macOS and Linux extract ZIP files on their own

Steps

  1. 1

    Extract the archive

    Right-click sht31-tep-v1-1-f89371e942f7444a8c46b3fbdd245983.zip and choose Extract All (or open it with 7-Zip or WinRAR) into a folder you can find again. Keep its folder structure (SHT31-TEP-v1.1) as it is.

  2. 2

    Copy the library files into Proteus

    Move ArduinoV3TEP.LIB, TEPSERIALMON.LIB and TEPSHT31.LIB and ArduinoV3TEP.IDX into the LIBRARY folder of your Proteus installation: C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY for Proteus 8, or the matching Proteus 7 folder. Older versions keep it under ProgramData\Labcenter Electronics. If Proteus is open, close it first.

  3. 3

    Add the simulation model

    Copy TEPSERIALMON.DLL and TEPSHT31.DLL into the MODELS folder next to LIBRARY, so the component can run, not only be drawn.

  4. 4

    Restart Proteus and place the component

    Start Proteus, open a schematic, press P (Pick Devices) and search for the component by the name used in the tutorial. It appears with its pins ready to wire.

  5. 5

    Install the Arduino library

    In the Arduino IDE choose Sketch → Include Library → Add .ZIP Library and pick the library, or copy its folder into Documents\Arduino\libraries. Restart the IDE to see its examples.

  6. 6

    Open the sketch in the Arduino IDE

    Open SHT31_Demo.ino, genericdevice_uartregtest.ino and genericdevice_uarttest.ino and 9 more, select your board and port under Tools, then Verify. Sketch → Export Compiled Binary writes the HEX file a simulation needs.

  7. 7

    Load the HEX file

    In Proteus double-click the microcontroller, set Program File to SHT31_Demo.hex and run the simulation. For real hardware, flash the same file with your programmer.

  8. 8

    Open the example simulation

    Open SHT31-ArduinoUnoV3.pdsprj in Proteus to see the wiring exactly as in the tutorial. Check the controller's Program File path, then press Play.

  9. 9

    Follow the tutorial

    SHT31 Sensor Library for Proteus V1.1 (Temperature + Humidity Sensor + Arduino) explains every connection and setting in order; keep it open beside the files while you build.

How to add a library in Proteus 8

FAQs9 questionsContact TEP

How do I download SHT31 Sensor Library for Proteus V1.1?

Wait for the 30-second guest countdown on this page, then press the download button; the file comes straight from our storage. Members who are logged in skip the wait. If the browser opens the file instead of saving it, use its Save as option. The download link is made for you when the countdown ends and works for 15 minutes; a saved or shared link stops working, so share this page instead.

What is inside the archive?

SHT31 Sensor Library for Proteus V1.1 comes as a ZIP archive of 42 files (1.5 MB, 3.3 MB unpacked) holding Proteus library files, simulation model DLLs, a Proteus simulation, an Arduino sketch, an Arduino library and compiled HEX firmware. Open the File Structure tab for the full list of 42 files.

What should I do if the download does not start?

Check the browser's download list first; an ad blocker or a company firewall can also hold it back, so try another browser or network. If the file arrives incomplete, download it again. For an installation problem, read the Install tab or tell us in the comments with your software version and the exact error message.

Is this file free?

Yes. Every file in the TEP Download Center is free for learning, personal and student projects. If you share it, link back to this page or the tutorial so others find the latest version.

How do I check that the file arrived complete?

Compare its SHA-256 with the one on this page, 014c686e10f9c870a29de78e78dedbbb4d9eee6db616bc7de2eba828d8aa9b87. In PowerShell run Get-FileHash "sht31-tep-v1-1-f89371e942f7444a8c46b3fbdd245983.zip"; on macOS or Linux run shasum -a 256 "sht31-tep-v1-1-f89371e942f7444a8c46b3fbdd245983.zip". The same value means the file is exactly the one in our storage; a different one means the download broke off, so download it again.

Do I need WinRAR to open the ZIP file?

No. Windows, macOS and Linux open ZIP archives on their own (Extract All, or double-click). WinRAR and 7-Zip work too. Extract the whole archive before using the files.

Where do I put the LIB and IDX files?

Both files go into the LIBRARY folder of your Proteus installation (Proteus 8: C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY; Proteus 7 has the same folder under its own name). Restart Proteus afterwards and search for the component with P.

Which Proteus version does the library need?

The tutorial names the Proteus version the library was made and tested with. Most TEP libraries work in Proteus 7 and Proteus 8; if the component does not appear after a restart, check that both the LIB and the IDX file were copied and that Proteus was fully closed while copying.

How do I get the HEX file into the simulation?

Compile the sketch in the Arduino IDE (Sketch → Export Compiled Binary gives you the HEX next to the sketch), then in Proteus double-click the board, set Program File to that HEX and run.

preparing · sht31-tep-v1-1-f89371e942f7444a8c46b3fbdd245983.zip
Rating
Your download will be ready shortly
Preparing your download…

Members skip the wait. Log in or join TEP.

  • 4Total downloads
  • 4%Popularity
  • ProteusCategory
  • 0Comments
  • ssyedzainnasirUploaded by
  • 19 Sep 2026Uploaded at
Last 14 days4 downloads
SHA-256 014c686e10f9c870a29de78e78dedbbb4d9eee6db616bc7de2eba828d8aa9b87
DocumentationSHT31 Sensor Library for Proteus V1.1 (Temperature + Humidity Sensor + Arduino)
Need help with this file? Bug report Ask a question Download problemsGet updates
Advertisement

Comments

0

Join the conversation

Start the conversationAsk a question or share how you used this download.