สารบัญ:

โคมไฟไร้สายพลังงานแสงอาทิตย์พร้อมแขนแม่เหล็กแบบยืดหยุ่น: 8 ขั้นตอน (พร้อมรูปภาพ)
โคมไฟไร้สายพลังงานแสงอาทิตย์พร้อมแขนแม่เหล็กแบบยืดหยุ่น: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: โคมไฟไร้สายพลังงานแสงอาทิตย์พร้อมแขนแม่เหล็กแบบยืดหยุ่น: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: โคมไฟไร้สายพลังงานแสงอาทิตย์พร้อมแขนแม่เหล็กแบบยืดหยุ่น: 8 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: 3 ข้อต้องรู้ ก่อนเลือก ไฟโซล่าเซลล์ | คุยกับลุงช่าง 2024, กรกฎาคม
Anonim
โคมไฟไร้สายพลังงานแสงอาทิตย์พร้อมแขนแม่เหล็กที่ยืดหยุ่นได้
โคมไฟไร้สายพลังงานแสงอาทิตย์พร้อมแขนแม่เหล็กที่ยืดหยุ่นได้
โคมไฟไร้สายพลังงานแสงอาทิตย์พร้อมแขนแม่เหล็กที่ยืดหยุ่นได้
โคมไฟไร้สายพลังงานแสงอาทิตย์พร้อมแขนแม่เหล็กที่ยืดหยุ่นได้

โปรเจ็กต์นี้สร้างจากโคมไฟและ nodeMCU ที่ชำรุด โคมไฟตกแต่งนี้สามารถปรับได้ในทุกทิศทางและติดบนวัสดุแม่เหล็กหรือวางบนโต๊ะ สามารถควบคุมได้ 2 โหมด ดังนี้

- โหมดควบคุมแบบไร้สาย ตามลิงค์ YouTube ด้านล่าง:

- โหมดควบคุมเชิงโต้ตอบ ตามลิงค์ YouTube ด้านล่าง:

ขั้นตอนที่ 1: บิลวัสดุ

รายการ BOM:

ภาพ
ภาพ

สำหรับโหมดโต้ตอบ ฉันใช้ MPU6050 เพื่อรับข้อมูลไจโรจาก NodeMCU เพื่อควบคุมสีของหลอดไฟ

ภาพวัสดุสำหรับโครงการนี้:

ภาพ
ภาพ

ขั้นตอนที่ 2: วงจร

วงจร
วงจร

นี่เป็นวงจรที่ง่ายมาก ตามแบบแผนของ Fritzing ด้านบน โดยมีประเภทแอโนดทั่วไป RGB Led 1 ตัว ตัวต้านทานกระแสไฟจำกัดสามตัว R100 และ MPU6050

แผ่นสะท้อนแสงใช้จากโคมไฟที่ชำรุดและเชื่อมต่อกับฐาน nodeMCU ด้วยสลักเกลียว 2 ตัวหรือติดด้วยกาวที่แข็งแรง

งานติดตั้ง:

ภาพ
ภาพ
ภาพ
ภาพ

แผนผังด้านล่าง:

ภาพ
ภาพ

ขั้นตอนที่ 3: ฐานแม่เหล็ก - แขนที่ยืดหยุ่นได้

ฐานแม่เหล็ก - แขนยืดได้
ฐานแม่เหล็ก - แขนยืดได้

แขนที่ยืดหยุ่นสามารถนำกลับมาใช้ใหม่ได้จากก๊อกน้ำที่มีความยืดหยุ่นที่หัก อะไรแบบนั้น:

ภาพ
ภาพ

ด้วยเคล็ดลับบางประการ เราพยายามเชื่อมต่อกับฐานแม่เหล็กถาวรที่ด้านล่างของแขนที่ยืดหยุ่นได้ ด้านบน เราทำรูเจาะสำหรับเชื่อมต่อกับแผงวงจรและเครื่องชาร์จแบตเตอรี่พลังงานแสงอาทิตย์/แบตเตอรี่ ด้วยฐานนี้ เราสามารถวางโคมไฟบนพื้นผิวเช่นโต๊ะ พื้น….; หรือติดบนวัสดุแม่เหล็ก เช่น เสาเหล็ก โครงสร้างเหล็ก

ขั้นตอนที่ 4: พลังงานแสงอาทิตย์ – เครื่องชาร์จแบตเตอรี่

พลังงานแสงอาทิตย์ - เครื่องชาร์จแบตเตอรี่
พลังงานแสงอาทิตย์ - เครื่องชาร์จแบตเตอรี่

มันมาจากหลอดไฟชาร์จที่ชำรุด ฉันเพิ่มสวิตช์เปิด/ปิดและสายไฟที่จ่ายให้กับ nodeMCU นอกจากนี้ยังมีเต้ารับพอร์ต USB และปลั๊กสำหรับชาร์จแบตเตอรี่อีกด้วย

ขั้นตอนที่ 5: เชื่อมต่อทั้งหมดเข้าด้วยกัน

เชื่อมต่อทั้งหมดเข้าด้วยกัน
เชื่อมต่อทั้งหมดเข้าด้วยกัน

เชื่อมต่อทุกส่วน: NodeMCU & รีเฟลกเตอร์, เซลล์แสงอาทิตย์ & เซลล์แบตเตอรี่, แขนที่ยืดหยุ่นได้เข้าด้วยกัน

เสร็จสิ้น

ภาพ
ภาพ

โหมดการชาร์จ

ภาพ
ภาพ

ขั้นตอนที่ 6: โปรแกรมควบคุมแบบโต้ตอบ

สีจะเปลี่ยนไปเมื่อเราปรับแขนยืดหยุ่นหรือหมุนหลอดไฟ

โคมไฟแบบโต้ตอบ

#รวม
// ที่อยู่อุปกรณ์ทาส MPU6050
const uint8_t MPU6050SlaveAddress = 0x68;
// เลือกพิน SDA และ SCL สำหรับการสื่อสาร I2C - พินเริ่มต้นใน WIRE LIBRARY: SCL - D1 & SDA - D2 บน NODEMCU
// const uint8_t SCL = D1;
// const uint8_t SDA = D2;
const int R = 14;
const int G = 12;
const int B = 13;
// MPU6050 ที่อยู่ลงทะเบียนการกำหนดค่าเล็กน้อย
const uint8_t MPU6050_REGISTER_SMPLRT_DIV = 0x19;
const uint8_t MPU6050_REGISTER_USER_CTRL = 0x6A;
const uint8_t MPU6050_REGISTER_PWR_MGMT_1 = 0x6B;
const uint8_t MPU6050_REGISTER_PWR_MGMT_2 = 0x6C;
const uint8_t MPU6050_REGISTER_CONFIG = 0x1A;
const uint8_t MPU6050_REGISTER_GYRO_CONFIG = 0x1B;
const uint8_t MPU6050_REGISTER_ACCEL_CONFIG = 0x1C;
const uint8_t MPU6050_REGISTER_FIFO_EN = 0x23;
const uint8_t MPU6050_REGISTER_INT_ENABLE = 0x38;
const uint8_t MPU6050_REGISTER_ACCEL_XOUT_H = 0x3B;
const uint8_t MPU6050_REGISTER_SIGNAL_PATH_RESET = 0x68;
int16_t AccelX, AccelY, AccelZ, อุณหภูมิ, GyroX, GyroY, GyroZ;
การตั้งค่าเป็นโมฆะ () {
โหมดพิน (R, เอาต์พุต);
โหมดพิน (G, เอาต์พุต);
โหมดพิน (B, เอาต์พุต);
//Serial.begin(9600);
Wire.begin (SDA, SCL);
MPU6050_Init();
}
วงเป็นโมฆะ () {
uint16_t ขวาน, Ay, Az, T, Gx, Gy, Gz;
uint16_t แดง, เขียว, น้ำเงิน;
Read_RawValue(MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// รับค่าสัมบูรณ์
ขวาน = myAbs (AccelX);
Ay = myAbs (AccelY);
Az = myAbs (AccelZ);
// สเกลในช่วง
สีแดง = แผนที่(ขวาน, 0, 16384, 0, 1023);
สีเขียว = แผนที่(Ay, 0, 16384, 0, 1023);
สีน้ำเงิน = แผนที่(Az, 0, 16384, 0, 1023);
// Serial พิมพ์เพื่อตรวจสอบ
//Serial.print("สีแดง: "); Serial.print (สีแดง);
//Serial.print("เขียว: "); Serial.print (สีเขียว);
//Serial.print("สีน้ำเงิน: "); Serial.print (สีน้ำเงิน);
// เขียนอนาล็อกไปที่ LED
analogWrite (R, สีแดง); // NS
analogWrite (G, สีเขียว); // NS
analogWrite (B, สีน้ำเงิน); // NS
ล่าช้า(200);
}
เป็นโมฆะ I2C_Write (uint8_t deviceAddress, uint8_t regAddress, ข้อมูล uint8_t){
Wire.beginTransmission(ที่อยู่อุปกรณ์);
Wire.write (regAddress);
Wire.write (ข้อมูล);
Wire.endTransmission();
}
// อ่านทะเบียนทั้งหมด 14 รายการ
เป็นโมฆะ Read_RawValue (uint8_t deviceAddress, uint8_t regAddress) {
Wire.beginTransmission(ที่อยู่อุปกรณ์);
Wire.write (regAddress);
Wire.endTransmission();
Wire.requestFrom(deviceAddress, (uint8_t)14);
AccelX = (((int16_t)Wire.read()<<8) | Wire.read());
AccelY = (((int16_t)Wire.read()<<8) | Wire.read());
AccelZ = (((int16_t)Wire.read()<<8) | Wire.read());
อุณหภูมิ = (((int16_t)Wire.read()<<8) | Wire.read());
GyroX = (((int16_t)Wire.read()<<8) | Wire.read());
GyroY = (((int16_t)Wire.read()<<8) | Wire.read());
GyroZ = (((int16_t)Wire.read()<<8) | Wire.read());
}
// กำหนดค่า MPU6050
เป็นโมฆะ MPU6050_Init(){
ล่าช้า (150);
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_SMPLRT_DIV, 0x07);
I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_PWR_MGMT_1, 0x01);
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_PWR_MGMT_2, 0x00);
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_CONFIG, 0x00);
I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_GYRO_CONFIG, 0x00);//set +/-250 องศา/วินาทีเต็มสเกล
I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // set +/- 2g เต็มสเกล
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_FIFO_EN, 0x00);
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_INT_ENABLE, 0x01);
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_SIGNAL_PATH_RESET, 0x00);
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_USER_CTRL, 0x00);
}
// ค่าสัมบูรณ์
float myAbs (ลอยเข้า){
ผลตอบแทน (ใน)>0?(ใน):-(ใน);
}

ดู rawINTERACTIVE LAMP PROGRAM โฮสต์ด้วย ❤ โดย GitHub

ขั้นตอนที่ 7: โปรแกรมควบคุมไร้สายและแอปพลิเคชัน Android

โปรแกรมควบคุมไร้สายและแอพพลิเคชั่น Android
โปรแกรมควบคุมไร้สายและแอพพลิเคชั่น Android

อีกวิธีหนึ่งคือเราสามารถใช้ Android App เพื่อควบคุม RGB LED กับ Android ในเครือข่าย WiFi ลิงก์แอป Android:NODEMCU ควบคุม RGB LED APP

สำหรับโปรแกรม Arduino คุณสามารถอ้างถึง:

microcontrollerkits.blogspot.com/2016/05/es…

หลังจากอัปโหลดโปรแกรมไปยัง NodeMCU แล้ว การรันครั้งแรกจะให้ที่อยู่ IP ของ NodeMCU แก่เราในการพิมพ์แบบอนุกรม ในกรณีของฉันคือ: 192.164.1.39 ที่พอร์ต 80

ภาพ
ภาพ

ตอนนี้เราควบคุมโคมไฟไร้สายด้วยแล็ปท็อป/แท็บเล็ต/โทรศัพท์มือถือได้โดยป้อนที่อยู่ด้านบนลงใน internet explorer

ภาพ
ภาพ

หรือใช้แอพ Android:

ภาพ
ภาพ

ขั้นตอนที่ 8: รูปภาพบางส่วน

แนะนำ: