Published
- 3 min read
CPE241 Summery
IoT Devices and Basic Libraries with Example Code
1. DHT22
(Temperature and Humidity Sensor)
-
Library:
DHT sensor library by Adafruit -
Install:
yarn add adafruit/DHT-sensor-library -
Code:
#include <DHT.h> #define DHTPIN 2 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); } void loop() { float temperature = dht.readTemperature(); float humidity = dht.readHumidity(); Serial.print("Temp: "); Serial.print(temperature); Serial.print(" Humidity: "); Serial.println(humidity); delay(2000); }
2. HC-SR04
(Ultrasonic Distance Sensor)
- Library:
NewPing - Install:
yarn add NewPing - Code:
with library
#include <NewPing.h>
#define TRIG_PIN 9
#define ECHO_PIN 10
#define MAX_DISTANCE 200
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
Serial.begin(9600);
}
void loop() {
int distance = sonar.ping_cm();
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(500);
}
no library
#define trigPin D4
#define echoPin D3
long duration;
long distance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(115200);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration / 58;
Serial.print("Distance : ");
Serial.println(distance);
delay(2000);
}
3. LDR Analog
(Light Dependent Resistor)
-
Library: None (uses basic analog read)
-
Code:
#define LDR_PIN A0 void setup() { Serial.begin(9600); } void loop() { int lightValue = analogRead(LDR_PIN); Serial.print("Light Value: "); Serial.println(lightValue); delay(1000); }
4. BH1750
(Digital Light Sensor)
- Library:
BH1750 - Install:
yarn add BH1750 - Code:
#include <Wire.h>
#include <BH1750.h>
BH1750 lightMeter;
#define SDA D2
#define SCL D1
void setup() {
Serial.begin(115200);
Wire.begin(SDA, SCL);
lightMeter.begin();
}
void loop() {
float lux = lightMeter.readLightLevel();
Serial.print("Light: ");
Serial.print(lux);
Serial.println(" lx");
delay(1000);
}
5. OLED
(Display)
- Library:
Adafruit SSD1306 - Install:
yarn add adafruit/Adafruit_SSD1306 - Code:
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 OLED(-1);
void setup() {
OLED.begin(SSD1306_SWITCHCAPVCC, 0x3C);
}
void loop() {
OLED.clearDisplay();
OLED.setTextColor(WHITE);
OLED.setCursor(0, 0);
OLED.setTextSize(1);
OLED.println("CPE241");
OLED.setCursor(0, 10);
OLED.setTextSize(2);
OLED.println("I O T");
OLED.display(); //
}
6. Adafruit NeoPixel
(RGB LED)
- Library:
Adafruit NeoPixel - Install:
yarn add adafruit/Adafruit_NeoPixel - Code:
#include <Adafruit_NeoPixel.h>
#define NUMSLEDs 2
#define PINSLEDs 10
Adafruit_NeoPixel SLEDs = Adafruit_NeoPixel(NUMSLEDs, PINSLEDs, NEO_GRB + NEO_KHZ800);
void setup() {
SLEDs.begin();
SLEDs.show();
SLEDs.setBrightness(255);
}
void loop() {
SLEDs.setPixelColor(0, SLEDs.Color(0 , 0 , 0));
SLEDs.setPixelColor(1, SLEDs.Color(0, 0, 0));
SLEDs.show();
}
7. Servo Motor
- Library:
Servo - Install: Built-in Arduino library
- Code:
#include <Servo.h>
#define PIN_SERVO D3
Servo myServo;
void setup() {
myServo.attach(PIN_SERVO);
}
void loop() {
myServo.write(0);
delay(1000);
myServo.write(90);
delay(1000);
myServo.write(180);
delay(1000);
}
8. Stepper Motor
-
Library:
Stepper -
Install: Built-in Arduino library
-
Code:
#include <Stepper.h> const int stepsPerRevolution = 200; Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); void setup() { myStepper.setSpeed(60); } void loop() { myStepper.step(stepsPerRevolution); delay(1000); myStepper.step(-stepsPerRevolution); delay(1000); }
9. AP
(Access Point)
-
Library:
ESP8266WiFiorWiFifor ESP32 -
Install:
yarn add ESP8266WiFi -
Code:
#include <ESP8266WiFi.h> const char* ssid = "ESP8266-AP"; const char* password = "12345678"; void setup() { WiFi.softAP(ssid, password); Serial.begin(115200); Serial.println("AP Started"); } void loop() { }
10. Web Server
- Library:
ESP8266WebServerorWebServerfor ESP32 - Install:
yarn add ESP8266WebServer - Code:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
ESP8266WebServer server(80);
void setup() {
WiFi.softAP("ESP8266-AP", "12345678");
server.on("/", []() {
String html = "<html><body><h1>Hello, World!</h1><p>This is an ESP8266 web server.</p></body></html>";
server.send(200, "text/html", html);
});
server.begin();
Serial.begin(115200);
Serial.println("Server started.");
}
void loop() {
server.handleClient();
}
11. IoT Platform
(e.g., Blynk)
-
Library:
BlynkSimpleEsp8266 -
Install:
yarn add blynk-library -
Code:
#define BLYNK_TEMPLATE_ID "YourTemplateID" #define BLYNK_DEVICE_NAME "YourDeviceName" #define BLYNK_AUTH_TOKEN "YourAuthToken" #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> char auth[] = BLYNK_AUTH_TOKEN; char ssid[] = "YourNetworkName"; char pass[] = "YourPassword"; void setup() { Blynk.begin(auth, ssid, pass); } void loop() { Blynk.run(); }