วันศุกร์ที่ 28 กันยายน พ.ศ. 2561

อธิบายโปรแกรมHow To Make Arduino Based Home Automation Project via Bluetooth?




How To Make Arduino Based Home Automation Project via Bluetooth?


Circuit Diagram

Arduino Based Home Automation Circuit Diagram

ส่วนHardware (input,Output)
1.Bluetooth Module:
The Bluetooth Module used in this project is HC- 05. As seen in the image below, this Bluetooth module has 4 – pins for VCC (5V), ground, TX and RX.
Bluetooth Module
This Bluetooth can be used with Bluetooth enabled phone (or tablet or laptop) and the range of this module is approximately 10 meters.
2. 4-Channel Relay Board:
A 4 – channel relay board is used in this project to control four different loads. It has all the necessary components and connections like base current limiting resistor, flyback diode, LED indicators and header for connecting it to other devices.
Relay Board
Caution: We should be very careful when using a relay with AC mains.

Code

ส่วนหัวโปรแกรม #include <SoftwareSerial.h> //ฟังชั่นพิเศษ กำหนม library ที่เราเรียกใช้งาน
const int rxPin = 4; //กำหนดตัวแปร rxPin = ขา 4
const int txPin = 2; //กำหนดตัวแปร rxPin = ขา 2
SoftwareSerial mySerial(rxPin, txPin);
const int Loads[] = {9, 10, 11, 12};
int state = 0;
int flag = 0;
ส่วนตัวโปรแกรมมี 2 ส่วน
1.void setup() //เป็นฟังชั่นแรกเมื่อ Arduino ทำงาน
{
for (int i=0;i<4;i++) //สั่งให้ทำซ้ำไปเรื่อยๆ
{
pinMode(Loads[i], OUTPUT); //กำหนดให้ Loads เป้น OUTPUT
}
mySerial.begin(9600); //กำหนมความเร็วในการส่งข้อมูล
for (int i=0;i<4;i++) //ทำซ้ำไปเรื่อยจนครบตามเงื่อนไข
{
digitalWrite(Loads[i], LOW); สั่งให้ loads เป็น LOW
}
}
2.void loop() //การทำงานซ้ำไปเรื่อยๆ
{
if(mySerial.available() > 0) เช็คขอมูลในเงื่อนไขว่าเป็นจริงหรือไม่
{
state = mySerial.read(); อ่านค่าที่ได้รับ
flag=0;
}
switch(state)
{
case '0':digitalWrite(Loads[0], HIGH); เมื่อกดสวิต 1 ให้ loads เป็น 1
flag=1;
break;
case '1':digitalWrite(Loads[0], LOW); เมื่อกดสวิต 2 ให้ loads เป็น 0
flag=1;
break;
case '2':digitalWrite(Loads[1], HIGH);
flag=1;
break;
case '3':digitalWrite(Loads[1], LOW);
flag=1;
break;
case '4':digitalWrite(Loads[2], HIGH);
flag=1;
break;
case '5':digitalWrite(Loads[2], LOW);
flag=1;
break;
case '6':digitalWrite(Loads[3], HIGH);
flag=1;
break;
case '7':digitalWrite(Loads[3], LOW);
flag=1;
break;
case '8':digitalWrite(Loads[0], LOW);
digitalWrite(Loads[1], LOW); กำหนดให้สั่งเป็น LOW ทั้งหมด
digitalWrite(Loads[2], LOW);
digitalWrite(Loads[3], LOW);
flag=1;
break;
}
}
จบการทำงานของโปรแกรม..
Flowchart

วันอาทิตย์ที่ 16 กันยายน พ.ศ. 2561

Mini Project ควบคุมมอเตอร์และไฟ Led.










อุปกรณ์
1.Arduino r3
2.lcd
3.Switch


#include <LiquidCrystal.h>
const int rs = 12, en = 13, d4 = 6, d5 = 5, d6 = 4, d7 = 3;
LiquidCrystal lcd(rs,en,d4,d5,d6,d7);

int BS1 = 0;
int BS2 = 0;
int BS3 = 0;
void setup() {
  pinMode(A0, OUTPUT);
  pinMode(A1, OUTPUT);
  pinMode(A2, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);

  pinMode(0, INPUT);
  pinMode(1, INPUT);
  pinMode(2, INPUT);

  lcd.begin(16, 2);
}
void loop() {
  BS1 = digitalRead(0);
  BS2 = digitalRead(1);
  BS3 = digitalRead(2);

 if(BS1 == LOW){
  digitalWrite(A0,HIGH);
  for (int i=0; i <= 355; i++){   
  digitalWrite(11,HIGH);
  delay(8);
  digitalWrite(11,LOW);
  delay(16);
  lcd.setCursor(5,1);
  lcd.print(" Speed 5% ");
  }
  digitalWrite(A1,HIGH);
  digitalWrite(A0,LOW);
    for (int i=0; i <= 355; i++){
   digitalWrite(11,HIGH);
  delay(10);
  digitalWrite(11,LOW);
  delay(10);
  lcd.setCursor(5,1);
  lcd.print(" Speed 50% ");
    }
    digitalWrite(A1,LOW);
     digitalWrite(A2,HIGH);
      for (int i=0; i <= 355; i++){
  digitalWrite(11,HIGH);
  delay(19);
  digitalWrite(11,LOW);
  delay(1);
  lcd.setCursor(5,1);
  lcd.print(" Speed 90% ");
  }
  }

   if(BS2 == LOW){
   for (int i=0; i <= 20; i++){
    lcd.setCursor(3,1);
  lcd.print(" StephLED.1 ");


  digitalWrite(7,HIGH);
  digitalWrite(A0,HIGH);
  delay(100);
  digitalWrite(7,LOW);
  digitalWrite(A1,LOW);
  delay(100);
  digitalWrite(8,HIGH);
  digitalWrite(A2,HIGH);
  delay(100);
  digitalWrite(8,LOW);
  digitalWrite(A1,LOW);
  delay(100);
  digitalWrite(9,HIGH);
  digitalWrite(A0,HIGH);
  delay(100);
  digitalWrite(9,LOW);
  digitalWrite(A2,LOW);
  delay(100);
  digitalWrite(10,HIGH);
  digitalWrite(A1,HIGH);
  delay(100);
  digitalWrite(10,LOW);
  digitalWrite(A0,LOW);
  delay(100);
   }
   }
 if(BS3 == LOW){
   for (int i=0; i <= 20; i++){
    lcd.setCursor(3,1);
  lcd.print(" StephLED.2 ");

  digitalWrite(10,HIGH);
  digitalWrite(A1,HIGH);
  delay(90);
  digitalWrite(10,LOW);
  digitalWrite(A1,LOW);
  delay(90);
  digitalWrite(9,HIGH);
  digitalWrite(A0,HIGH);
  delay(90);
  digitalWrite(9,LOW);
  digitalWrite(A0,LOW);
  delay(90);
  digitalWrite(8,HIGH);
  digitalWrite(A2,HIGH);
  delay(90);
  digitalWrite(8,LOW);
  digitalWrite(A2,LOW);
  delay(90);
  digitalWrite(7,HIGH);
  digitalWrite(A1,HIGH);
  delay(90);
  digitalWrite(7,LOW);
  digitalWrite(A1,LOW);
  delay(90);


   }
 }
   else  {
   digitalWrite(11,LOW);

  lcd.setCursor(4,1);
  lcd.print(" Welcome...");
   }
  }
               (https://youtu.be/QPJOPPAU6vM)

18.MINI project Arduino Wifi Car Controlled


Posts

MINI project Arduino Wifi Car Controlled

 Arduino Wifi Car Controlled




อุปกรณ์    1.ARDUINO UNO R3    2.L298N  MOTOR DRIVER    3.ESP-01S ESP8266-01S โมดูล Serial Wifi ESP 8266 รุ่น ESP-01S    4.DC MOTOR    5.Character LCD Display    6.ล้อ








CODE



#include<TEE_ESP_WIFI.h>
#include <SoftwareSerial.h>
#define pinEN 9
#define ESP_Rx 10
#define ESP_Tx 11
#define LED 7
String ssid="SUTHIWAS_EARTH";
String pwd ="12345678";
ESP wifi(ESP_Rx,ESP_Tx,pinEN); //บรรทัดที่1
void print_debug(String data) //บรรทัดที่2
{Serial.print(data);} //บรรทัดที่3

// Motor A

int dir1PinA = 2;

int dir2PinA = 3;

int speedPinA = 6; //   เพื่อให้ PWM สามารถควบคุมความเร็วมอเตอร์ 


// Motor B

int dir1PinB = 4;

int dir2PinB = 5;

int speedPinB = 7; // เพื่อให้ PWM สามารถควบคุมความเร็วมอเตอร์

//LCD
#include <LiquidCrystal.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()
{
 pinMode(LED, OUTPUT); //บรรทัดที่4
 digitalWrite(LED,LOW); //บรรทัดที่5
 Serial.begin(9600); //บรรทัดที่6
 wifi.begin(9600); //บรรทั…
Recent posts

https://learn.adafruit.com/secret-knock-activated-drawer-lock?view=all

Overview by Steve Hoefer Nothing says "There's something valuable here!" than the sight of a lock. But what if the lock was invisible and the unlocking key could be transmitted through solid matter? No one would even know there was a lock, much less how to pick it.

That's what the Secret Knock Activated Drawer Lock does. It hides all of the lock mechanism away and can only be unlocked by something you know: a secret pattern of knocks.

A solenoid locks secures the drawer while a piezo buzzer listens for knocks. A Trinket compares the knock pattern to the stored secret knock and if they match the solenoid latch retracts and the drawer can be opened. Setting your own custom knock is as simple as holding down a button and tapping the new rhythm.

The project is relatively straight forward and you should be able to complete it in an afternoon. 

As always, read and understand this guide completely before starting the project. Parts & Tools by Steve Hoefer This project only r…