Introduction: RP2350-LCD Weather Station With Color Warning Alerts

About: Arduino fan!

Create a simple and beginner-friendly weather station using the Waveshare RP2350-LCD πŸ“Ÿ and DHT11 🌑️ sensor in Visuino. The temperature and humidity values are shown on the LCD with color-coded warning indicators πŸ”΄πŸŸ’πŸ”΅.


Temperature displays green 🟒 when within range and red πŸ”΄ when outside, while humidity shows blue πŸ”΅ within range and red πŸ”΄ for warnings.

All limits can be easily adjusted inside the Visuino project βš™οΈ.


If you want to explore the project further, here’s an idea for an upgrade πŸ’‘:

add an optional piezo buzzer alarm πŸ”” that activates when temperature or humidity go out of the safe range. A great starting project for beginners learning Visuino, sensors, and the Waveshare RP2350 platform

Watch the video!

Step 1: What You Will Need

  1. Waveshare RP2350-LCD-0.96More here
  2. DHT11 Temperature and Humidity sensor
  3. Breadboard (Optionally)
  4. Jumper wires
  5. Visuino program: Download Visuino


Step 2: The Circuit

  1. Connect Waveshare RP2350-LCD-0.96 pin VBUS to DHT11 pin (VCC +)
  2. Connect Waveshare RP2350-LCD-0.96 pin GND to DHT11 pin (GND -)
  3. Connect Waveshare RP2350-LCD-0.96 pin GP2 to DHT11 pin (OUT)

Step 3: Start Visuino, and Select the Board Type

Start Visuino as shown in the first picture Click on the "Tools" button on the Arduino component (Picture 1) in Visuino When the dialog appears, select "Waveshare RP2350 + LCD Display 0.96" as shown on Picture 2

Step 4: In Visuino Add Components

  1. Add "Humidity and Thermometer DHT11/21/22/AM2301" component
  2. Add 2X "Compare Analog Range" component
  3. Add 2X "Digital To Color" component

Step 5: In Visuino Set LCD

Select Waveshare RP2350 + LCD Display 0.96" and in the editor

  1. Modules>Display>Orientation set to goLeft
  2. Modules>Display>Elements, click on [...] button, so that "Elements" window will open.
  3. In the Elements Dialog drag "Draw Text" from the right side to the left and in the properties window set "Fill Color" to aclBlack, "Text" to TEMP and "Y" to 5
  4. In the Elements Dialog drag "Text Field" from the right side to the left side to the left and in the properties window set "Size" to 2, "Y" to 20, select "Color" and click on the pin Icon and select "Alpha Color SinkPin", set "Color" to aclGreenYellow
  5. In the Elements Dialog drag another "Draw Text" from the right side to the left and in the properties window set "Fill Color" to aclBlack, "Text" to HUM and "Y" to 45
  6. In the Elements Dialog drag another "Text Field" from the right side to the left side to the left and in the properties window set "Size" to 2, "Y" to 60, select "Color" and click on the pin Icon and select "Alpha Color SinkPin", set "Color" to aclAqua
  7. In the Elements Dialog drag another "Draw Bitmap" from the right side to the left side to the left and in the properties window set "X" to 90 and "Y" to 5, select "Bitmap" and click on the 3 dots button and in the "Bitmap editor" load the bitmap that you attached here.

Close all the Dialogs

Step 6: In Visuino Set Components

  1. Select "CompareRange1" and in the properties window set "Is Outside Range" to True, "Range" > "Max" to 27 and "Range" > "Min" to 10

This means that If the Temperature will be below 10 or above 27 the output of the component will be True

  1. Select "CompareRange2" and in the properties window set "Is Outside Range" to True, "Range" > "Max" to 60 and "Range" > "Min" to 50

This means that If the Humidity will be below 50 or above 60 the output of the component will be True

  1. Select "DigitalToColor1" and in the properties window set "False Value" to clLime and "True Value" to clRed

This means that if the output from the "CompareRange1" is True the color will be set to red, if not the color will be Lime

  1. Select "DigitalToColor2" and in the properties window set "False Value" to clAqua and "True Value" to clRed

This means that if the output from the "CompareRange2" is True the color will be set to red, if not the color will be Blue

Step 7: In Visuino Connect Components

  1. Connect "HumidityThermometer1" pin [Sensor] to "Waveshare RP2350 + LCD Display 0.96" Digital pin [2]
  2. Connect "HumidityThermometer1" pin [Temperature] to "Text Field1" pin [In]
  3. Connect "HumidityThermometer1" pin [Temperature] to "CompareRange1" pin [In]
  4. Connect "HumidityThermometer1" pin [Humidity] to "Text Field2" pin [In]
  5. Connect "HumidityThermometer1" pin [Humidity] to "CompareRange2" pin [In]
  6. Connect "CompareRange1" pin [Out] to "DigitalToColor1" pin [In]
  7. Connect "CompareRange2" pin [Out] to "DigitalToColor2" pin [In]
  8. Connect "DigitalToColor1" pin [Out] to "Text Field1" pin [Color]
  9. Connect "DigitalToColor2" pin [Out] to "Text Field2" pin [Color]

Step 8: Generate, Compile, and Upload the Code

In Visuino, at the bottom click on the "Build" Tab, make sure the correct port is selected, then click on the "Compile/Build and Upload" button.

Step 9: Play

Congratulations! You have completed your Internet Time project with Visuino. Also attached is the Visuino project, that I created for this Tutorial. You can download and open it in Visuino: https://www.visuino.com