Components and supplies
Breadboard (generic)
Jumper wires (generic)
Arduino UNO
DHT22 Temperature Sensor
4-digit 7 -segment
Resistor 1k ohm
Resistor 10k ohm
Apps and platforms
Arduino IDE
Project description
Code
Code:
arduino
1/* Using the DHT22 sensor to take temperature 2 and humidity readings, then display it on the 3 4 digit 7 segment display. 4 5 Components: 6 - Arduino Uno 7 - DHT22 8 - 4 digit 7 segment display 9 - 1kOhm resistor (x 4) 10 - 10kOhm resistor (act as a Pull-up resistor) 11 12 Libraries: 13 - DHT.h 14 - Github repository: https://github.com/adafruit/DHT-sensor-library 15 16 Datasheet: https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf 17 18 Created on 9 June 2022 by c010rblind3ngineer 19*/ 20 21 22#include "DHT.h" 23#define DHTPIN 13 24#define DHTTYPE DHT22 25DHT dht(DHTPIN, DHTTYPE); //Initialize DHT sensor 26 27int pinA = 11; 28int pinB = 7; 29int pinC = 4; 30int pinD = 2; 31int pinE = 1; 32int pinF = 10; 33int pinG = 5; 34int pinDP = 3; 35 36int D1 = 12; 37int D2 = 9; 38int D3 = 8; 39int D4 = 6; 40 41 42void setup() { 43 // put your setup code here, to run once: 44 pinMode(pinA, OUTPUT); //11 45 pinMode(pinB, OUTPUT); //7 46 pinMode(pinC, OUTPUT); //4 47 pinMode(pinD, OUTPUT); //2 48 pinMode(pinE, OUTPUT); //1 49 pinMode(pinF, OUTPUT); //10 50 pinMode(pinG, OUTPUT); //5 51 pinMode(D1, OUTPUT); //12 52 pinMode(D2, OUTPUT); //9 53 pinMode(D3, OUTPUT); //8 54 pinMode(D4, OUTPUT); //6 55 56 dht.begin(); 57} 58 59void loop() { 60 // Give time for the sensor between measurements 61 delay(2000); 62 63 // Read temperature in Celsius 64 float tC = dht.readTemperature(false); 65 // Read humidity 66 float h = dht.readHumidity(); 67 68 // Display temperature digits on 4 digit 7 segment display 69 int tempd1 = int(tC / 10); 70 int tempd2 = int((int)tC % 10); 71 // Display humidity digits on 4 digit 7 segment display 72 int h1 = int(h / 10); 73 int h2 = int((int)h % 10); 74 75 // 'for' loop ensures the display is constantly ON within a period of time (approx. 10s)... 76 // ...before sensor takes another reading. 77 // Temperature reading 78 for (int i = 0; i < 2000; i++) { 79 digitalWrite(D1, LOW); 80 digitalWrite(D2, HIGH); 81 digitalWrite(D3, HIGH); 82 digitalWrite(D4, HIGH); 83 disp(tempd1); 84 delay(1); 85 86 digitalWrite(D1, HIGH); 87 digitalWrite(D2, LOW); 88 digitalWrite(D3, HIGH); 89 digitalWrite(D4, HIGH); 90 disp(tempd2); 91 delay(1); 92 93 digitalWrite(D1, HIGH); 94 digitalWrite(D2, HIGH); 95 digitalWrite(D3, LOW); 96 digitalWrite(D4, HIGH); 97 disp(11); 98 delay(1); 99 100 digitalWrite(D1, HIGH); 101 digitalWrite(D2, HIGH); 102 digitalWrite(D3, HIGH); 103 digitalWrite(D4, LOW); 104 disp(10); 105 delay(1); 106 } 107 displayoff(); 108 delay(1000); 109 110 // Humidity reading 111 for (int i = 0; i < 2000; i++) { 112 digitalWrite(D1, LOW); 113 digitalWrite(D2, HIGH); 114 digitalWrite(D3, HIGH); 115 digitalWrite(D4, HIGH); 116 disp(h1); 117 delay(1); 118 119 digitalWrite(D1, HIGH); 120 digitalWrite(D2, LOW); 121 digitalWrite(D3, HIGH); 122 digitalWrite(D4, HIGH); 123 disp(h2); 124 delay(1); 125 126 digitalWrite(D1, HIGH); 127 digitalWrite(D2, HIGH); 128 digitalWrite(D3, LOW); 129 digitalWrite(D4, HIGH); 130 disp(12); 131 delay(1); 132 133 digitalWrite(D1, HIGH); 134 digitalWrite(D2, HIGH); 135 digitalWrite(D3, HIGH); 136 digitalWrite(D4, LOW); 137 disp(13); 138 delay(1); 139 } 140 displayoff(); 141 142} 143 144void disp(int number) { 145 146 switch (number) { 147 case 0 : // display '0' on 7 segment 148 digitalWrite(pinA, HIGH); 149 digitalWrite(pinB, HIGH); 150 digitalWrite(pinC, HIGH); 151 digitalWrite(pinD, HIGH); 152 digitalWrite(pinE, HIGH); 153 digitalWrite(pinF, HIGH); 154 digitalWrite(pinG, LOW); 155 break; 156 157 case 1 : // display '1' on 7 segment 158 digitalWrite(pinA, LOW); 159 digitalWrite(pinB, HIGH); 160 digitalWrite(pinC, HIGH); 161 digitalWrite(pinD, LOW); 162 digitalWrite(pinE, LOW); 163 digitalWrite(pinF, LOW); 164 digitalWrite(pinG, LOW); 165 break; 166 167 case 2 : // display '2' on 7 segment 168 digitalWrite(pinA, HIGH); 169 digitalWrite(pinB, HIGH); 170 digitalWrite(pinC, LOW); 171 digitalWrite(pinD, HIGH); 172 digitalWrite(pinE, HIGH); 173 digitalWrite(pinF, LOW); 174 digitalWrite(pinG, HIGH); 175 break; 176 177 case 3 : // display '3' on 7 segment 178 digitalWrite(pinA, HIGH); 179 digitalWrite(pinB, HIGH); 180 digitalWrite(pinC, HIGH); 181 digitalWrite(pinD, HIGH); 182 digitalWrite(pinE, LOW); 183 digitalWrite(pinF, LOW); 184 digitalWrite(pinG, HIGH); 185 break; 186 187 case 4 : // display '4' on 7 segment 188 digitalWrite(pinA, LOW); 189 digitalWrite(pinB, HIGH); 190 digitalWrite(pinC, HIGH); 191 digitalWrite(pinD, LOW); 192 digitalWrite(pinE, LOW); 193 digitalWrite(pinF, HIGH); 194 digitalWrite(pinG, HIGH); 195 break; 196 197 case 5 : // display '5' on 7 segment 198 digitalWrite(pinA, HIGH); 199 digitalWrite(pinB, LOW); 200 digitalWrite(pinC, HIGH); 201 digitalWrite(pinD, HIGH); 202 digitalWrite(pinE, LOW); 203 digitalWrite(pinF, HIGH); 204 digitalWrite(pinG, HIGH); 205 break; 206 207 case 6 : // display '6' on 7 segment 208 digitalWrite(pinA, HIGH); 209 digitalWrite(pinB, LOW); 210 digitalWrite(pinC, HIGH); 211 digitalWrite(pinD, HIGH); 212 digitalWrite(pinE, HIGH); 213 digitalWrite(pinF, HIGH); 214 digitalWrite(pinG, HIGH); 215 break; 216 217 case 7 : // display '7' on 7 segment 218 digitalWrite(pinA, HIGH); 219 digitalWrite(pinB, HIGH); 220 digitalWrite(pinC, HIGH); 221 digitalWrite(pinD, LOW); 222 digitalWrite(pinE, LOW); 223 digitalWrite(pinF, LOW); 224 digitalWrite(pinG, LOW); 225 break; 226 227 case 8 : // display '8' on 7 segment 228 digitalWrite(pinA, HIGH); 229 digitalWrite(pinB, HIGH); 230 digitalWrite(pinC, HIGH); 231 digitalWrite(pinD, HIGH); 232 digitalWrite(pinE, HIGH); 233 digitalWrite(pinF, HIGH); 234 digitalWrite(pinG, HIGH); 235 break; 236 237 case 9 : // display '9' on 7 segment 238 digitalWrite(pinA, HIGH); 239 digitalWrite(pinB, HIGH); 240 digitalWrite(pinC, HIGH); 241 digitalWrite(pinD, LOW); 242 digitalWrite(pinE, LOW); 243 digitalWrite(pinF, HIGH); 244 digitalWrite(pinG, HIGH); 245 break; 246 247 case 10 : // display 'C' on 7 segment 248 digitalWrite(pinA, HIGH); 249 digitalWrite(pinB, LOW); 250 digitalWrite(pinC, LOW); 251 digitalWrite(pinD, HIGH); 252 digitalWrite(pinE, HIGH); 253 digitalWrite(pinF, HIGH); 254 digitalWrite(pinG, LOW); 255 break; 256 257 case 11 : // display 'o' on 7 segment 258 digitalWrite(pinA, HIGH); 259 digitalWrite(pinB, HIGH); 260 digitalWrite(pinC, LOW); 261 digitalWrite(pinD, LOW); 262 digitalWrite(pinE, LOW); 263 digitalWrite(pinF, HIGH); 264 digitalWrite(pinG, HIGH); 265 break; 266 267 case 12 : // display 'H' on 7 segment 268 digitalWrite(pinA, LOW); 269 digitalWrite(pinB, HIGH); 270 digitalWrite(pinC, HIGH); 271 digitalWrite(pinD, LOW); 272 digitalWrite(pinE, HIGH); 273 digitalWrite(pinF, HIGH); 274 digitalWrite(pinG, HIGH); 275 break; 276 277 case 13 : // display 'u' on 7 segment 278 digitalWrite(pinA, LOW); 279 digitalWrite(pinB, LOW); 280 digitalWrite(pinC, HIGH); 281 digitalWrite(pinD, HIGH); 282 digitalWrite(pinE, HIGH); 283 digitalWrite(pinF, LOW); 284 digitalWrite(pinG, LOW); 285 break; 286 } 287} 288 289void displayoff() { 290 digitalWrite(D1, HIGH); 291 digitalWrite(D2, HIGH); 292 digitalWrite(D3, HIGH); 293 digitalWrite(D4, HIGH); 294} 295
Code:
arduino
1/* Using the DHT22 sensor to take temperature 2 and humidity readings, then display it on the 3 4 digit 7 segment display. 4 5 Components: 6 - Arduino Uno 7 - DHT22 8 - 4 digit 7 segment display 9 - 1kOhm resistor (x 4) 10 - 10kOhm resistor (act as a Pull-up resistor) 11 12 Libraries: 13 - DHT.h 14 - Github repository: https://github.com/adafruit/DHT-sensor-library 15 16 Datasheet: https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf 17 18 Created on 9 June 2022 by c010rblind3ngineer 19*/ 20 21 22#include "DHT.h" 23#define DHTPIN 13 24#define DHTTYPE DHT22 25DHT dht(DHTPIN, DHTTYPE); //Initialize DHT sensor 26 27int pinA = 11; 28int pinB = 7; 29int pinC = 4; 30int pinD = 2; 31int pinE = 1; 32int pinF = 10; 33int pinG = 5; 34int pinDP = 3; 35 36int D1 = 12; 37int D2 = 9; 38int D3 = 8; 39int D4 = 6; 40 41 42void setup() { 43 // put your setup code here, to run once: 44 pinMode(pinA, OUTPUT); //11 45 pinMode(pinB, OUTPUT); //7 46 pinMode(pinC, OUTPUT); //4 47 pinMode(pinD, OUTPUT); //2 48 pinMode(pinE, OUTPUT); //1 49 pinMode(pinF, OUTPUT); //10 50 pinMode(pinG, OUTPUT); //5 51 pinMode(D1, OUTPUT); //12 52 pinMode(D2, OUTPUT); //9 53 pinMode(D3, OUTPUT); //8 54 pinMode(D4, OUTPUT); //6 55 56 dht.begin(); 57} 58 59void loop() { 60 // Give time for the sensor between measurements 61 delay(2000); 62 63 // Read temperature in Celsius 64 float tC = dht.readTemperature(false); 65 // Read humidity 66 float h = dht.readHumidity(); 67 68 // Display temperature digits on 4 digit 7 segment display 69 int tempd1 = int(tC / 10); 70 int tempd2 = int((int)tC % 10); 71 // Display humidity digits on 4 digit 7 segment display 72 int h1 = int(h / 10); 73 int h2 = int((int)h % 10); 74 75 // 'for' loop ensures the display is constantly ON within a period of time (approx. 10s)... 76 // ...before sensor takes another reading. 77 // Temperature reading 78 for (int i = 0; i < 2000; i++) { 79 digitalWrite(D1, LOW); 80 digitalWrite(D2, HIGH); 81 digitalWrite(D3, HIGH); 82 digitalWrite(D4, HIGH); 83 disp(tempd1); 84 delay(1); 85 86 digitalWrite(D1, HIGH); 87 digitalWrite(D2, LOW); 88 digitalWrite(D3, HIGH); 89 digitalWrite(D4, HIGH); 90 disp(tempd2); 91 delay(1); 92 93 digitalWrite(D1, HIGH); 94 digitalWrite(D2, HIGH); 95 digitalWrite(D3, LOW); 96 digitalWrite(D4, HIGH); 97 disp(11); 98 delay(1); 99 100 digitalWrite(D1, HIGH); 101 digitalWrite(D2, HIGH); 102 digitalWrite(D3, HIGH); 103 digitalWrite(D4, LOW); 104 disp(10); 105 delay(1); 106 } 107 displayoff(); 108 delay(1000); 109 110 // Humidity reading 111 for (int i = 0; i < 2000; i++) { 112 digitalWrite(D1, LOW); 113 digitalWrite(D2, HIGH); 114 digitalWrite(D3, HIGH); 115 digitalWrite(D4, HIGH); 116 disp(h1); 117 delay(1); 118 119 digitalWrite(D1, HIGH); 120 digitalWrite(D2, LOW); 121 digitalWrite(D3, HIGH); 122 digitalWrite(D4, HIGH); 123 disp(h2); 124 delay(1); 125 126 digitalWrite(D1, HIGH); 127 digitalWrite(D2, HIGH); 128 digitalWrite(D3, LOW); 129 digitalWrite(D4, HIGH); 130 disp(12); 131 delay(1); 132 133 digitalWrite(D1, HIGH); 134 digitalWrite(D2, HIGH); 135 digitalWrite(D3, HIGH); 136 digitalWrite(D4, LOW); 137 disp(13); 138 delay(1); 139 } 140 displayoff(); 141 142} 143 144void disp(int number) { 145 146 switch (number) { 147 case 0 : // display '0' on 7 segment 148 digitalWrite(pinA, HIGH); 149 digitalWrite(pinB, HIGH); 150 digitalWrite(pinC, HIGH); 151 digitalWrite(pinD, HIGH); 152 digitalWrite(pinE, HIGH); 153 digitalWrite(pinF, HIGH); 154 digitalWrite(pinG, LOW); 155 break; 156 157 case 1 : // display '1' on 7 segment 158 digitalWrite(pinA, LOW); 159 digitalWrite(pinB, HIGH); 160 digitalWrite(pinC, HIGH); 161 digitalWrite(pinD, LOW); 162 digitalWrite(pinE, LOW); 163 digitalWrite(pinF, LOW); 164 digitalWrite(pinG, LOW); 165 break; 166 167 case 2 : // display '2' on 7 segment 168 digitalWrite(pinA, HIGH); 169 digitalWrite(pinB, HIGH); 170 digitalWrite(pinC, LOW); 171 digitalWrite(pinD, HIGH); 172 digitalWrite(pinE, HIGH); 173 digitalWrite(pinF, LOW); 174 digitalWrite(pinG, HIGH); 175 break; 176 177 case 3 : // display '3' on 7 segment 178 digitalWrite(pinA, HIGH); 179 digitalWrite(pinB, HIGH); 180 digitalWrite(pinC, HIGH); 181 digitalWrite(pinD, HIGH); 182 digitalWrite(pinE, LOW); 183 digitalWrite(pinF, LOW); 184 digitalWrite(pinG, HIGH); 185 break; 186 187 case 4 : // display '4' on 7 segment 188 digitalWrite(pinA, LOW); 189 digitalWrite(pinB, HIGH); 190 digitalWrite(pinC, HIGH); 191 digitalWrite(pinD, LOW); 192 digitalWrite(pinE, LOW); 193 digitalWrite(pinF, HIGH); 194 digitalWrite(pinG, HIGH); 195 break; 196 197 case 5 : // display '5' on 7 segment 198 digitalWrite(pinA, HIGH); 199 digitalWrite(pinB, LOW); 200 digitalWrite(pinC, HIGH); 201 digitalWrite(pinD, HIGH); 202 digitalWrite(pinE, LOW); 203 digitalWrite(pinF, HIGH); 204 digitalWrite(pinG, HIGH); 205 break; 206 207 case 6 : // display '6' on 7 segment 208 digitalWrite(pinA, HIGH); 209 digitalWrite(pinB, LOW); 210 digitalWrite(pinC, HIGH); 211 digitalWrite(pinD, HIGH); 212 digitalWrite(pinE, HIGH); 213 digitalWrite(pinF, HIGH); 214 digitalWrite(pinG, HIGH); 215 break; 216 217 case 7 : // display '7' on 7 segment 218 digitalWrite(pinA, HIGH); 219 digitalWrite(pinB, HIGH); 220 digitalWrite(pinC, HIGH); 221 digitalWrite(pinD, LOW); 222 digitalWrite(pinE, LOW); 223 digitalWrite(pinF, LOW); 224 digitalWrite(pinG, LOW); 225 break; 226 227 case 8 : // display '8' on 7 segment 228 digitalWrite(pinA, HIGH); 229 digitalWrite(pinB, HIGH); 230 digitalWrite(pinC, HIGH); 231 digitalWrite(pinD, HIGH); 232 digitalWrite(pinE, HIGH); 233 digitalWrite(pinF, HIGH); 234 digitalWrite(pinG, HIGH); 235 break; 236 237 case 9 : // display '9' on 7 segment 238 digitalWrite(pinA, HIGH); 239 digitalWrite(pinB, HIGH); 240 digitalWrite(pinC, HIGH); 241 digitalWrite(pinD, LOW); 242 digitalWrite(pinE, LOW); 243 digitalWrite(pinF, HIGH); 244 digitalWrite(pinG, HIGH); 245 break; 246 247 case 10 : // display 'C' on 7 segment 248 digitalWrite(pinA, HIGH); 249 digitalWrite(pinB, LOW); 250 digitalWrite(pinC, LOW); 251 digitalWrite(pinD, HIGH); 252 digitalWrite(pinE, HIGH); 253 digitalWrite(pinF, HIGH); 254 digitalWrite(pinG, LOW); 255 break; 256 257 case 11 : // display 'o' on 7 segment 258 digitalWrite(pinA, HIGH); 259 digitalWrite(pinB, HIGH); 260 digitalWrite(pinC, LOW); 261 digitalWrite(pinD, LOW); 262 digitalWrite(pinE, LOW); 263 digitalWrite(pinF, HIGH); 264 digitalWrite(pinG, HIGH); 265 break; 266 267 case 12 : // display 'H' on 7 segment 268 digitalWrite(pinA, LOW); 269 digitalWrite(pinB, HIGH); 270 digitalWrite(pinC, HIGH); 271 digitalWrite(pinD, LOW); 272 digitalWrite(pinE, HIGH); 273 digitalWrite(pinF, HIGH); 274 digitalWrite(pinG, HIGH); 275 break; 276 277 case 13 : // display 'u' on 7 segment 278 digitalWrite(pinA, LOW); 279 digitalWrite(pinB, LOW); 280 digitalWrite(pinC, HIGH); 281 digitalWrite(pinD, HIGH); 282 digitalWrite(pinE, HIGH); 283 digitalWrite(pinF, LOW); 284 digitalWrite(pinG, LOW); 285 break; 286 } 287} 288 289void displayoff() { 290 digitalWrite(D1, HIGH); 291 digitalWrite(D2, HIGH); 292 digitalWrite(D3, HIGH); 293 digitalWrite(D4, HIGH); 294} 295
Repository link:
Repository link:
Downloadable files
Schematic:
Schematic:
Circuit:
Circuit:
Repository link:
https://github.com/c010rblind3ngineer/4-Digit-7-Segment-DHT22
Circuit:
Circuit:
Repository link:
https://github.com/c010rblind3ngineer/4-Digit-7-Segment-DHT22
Comments
Only logged in users can leave comments
c010rblind3ngineer
0 Followers
•0 Projects
Table of contents
Intro
0
0