Home

Published

- 3 min read

CPE241 Summery

img of 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: ESP8266WiFi or WiFi for 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: ESP8266WebServer or WebServer for 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();
    }