สารบัญ:

TfCD - บวก: 7 ขั้นตอน
TfCD - บวก: 7 ขั้นตอน

วีดีโอ: TfCD - บวก: 7 ขั้นตอน

วีดีโอ: TfCD - บวก: 7 ขั้นตอน
วีดีโอ: Guidelines for Climate Risk Management : Introduction to TCFD and Governance​ 2024, กรกฎาคม
Anonim
Image
Image
วัตถุดิบ
วัตถุดิบ

พลัสเป็นไฟอัจฉริยะแบบมินิมอล ซึ่งไม่เพียงแต่แจ้งเตือนผู้คนเกี่ยวกับสภาพอากาศ แต่ยังสร้างประสบการณ์ที่สนุกสนานให้กับผู้ใช้ด้วยการเปลี่ยนแปลงของสีของแสงโดยการหมุนเครื่องหมายบวก รูปร่างของมันทำให้ผู้ใช้มีโอกาสที่จะรวมโมดูลบวกหลายโมดูลหรือสร้างโคมไฟขนาดใหญ่ที่มีชิ้นส่วนบวกจำนวนมากที่เพื่อนวางไว้ โครงการไฟส่องสว่างนี้เป็นส่วนหนึ่งของหลักสูตร Advanced Concept Design (ACD) ที่มหาวิทยาลัย TU Delft และเทคโนโลยีที่นำไปใช้โดยการใช้ TfCD ในทางปฏิบัติเป็นแหล่งที่มาของแรงบันดาลใจ

ขั้นตอนที่ 1: ส่วนผสม

วัตถุดิบ
วัตถุดิบ
วัตถุดิบ
วัตถุดิบ

1 ราสเบอร์รี่ pi ศูนย์ w

1 Groove Adxl345 มาตรความเร่ง

4 Ws2812b LED

1 บอร์ดสร้างต้นแบบ

ตัวเครื่องพิมพ์ 3 มิติและตัดด้วยเลเซอร์

ขั้นตอนที่ 2: ฮาร์ดแวร์

ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์

ไฟ LED

LED Neopixel มี 4 พินชื่อ: +5V, GND, Data In และ Data out

  1. Pin 4 ของ raspberry pi เชื่อมต่อกับ +5V ของ LED ทั้งหมด
  2. Pin 6 ของ raspberry pi เชื่อมต่อกับ GND ของ LEDS. ทั้งหมด
  3. ข้อมูลในพินของ LED ตัวแรกเชื่อมต่อกับพิน 12 บนราสเบอร์รี่ pi
  4. พิน Data out ของ LED ตัวแรกเชื่อมต่อกับ Data ในส่วนที่สองและต่อไปเรื่อยๆ

โปรดดูแผนภาพการเดินสายไฟเพื่อความเข้าใจที่ดีขึ้น

มาตรความเร่ง

มาตรความเร่งมี 4 พินชื่อ: VCC, GND, SDA และ SCL

  1. Pin 1 ของ raspberry pi เชื่อมต่อกับ VCC
  2. Pin 3 ของ raspberry pi เชื่อมต่อกับ SCL
  3. Pin 5 ของ raspberry pi เชื่อมต่อกับ SDA
  4. Pin 9 ของ raspberry pi เชื่อมต่อกับ GND

สร้าง

  1. เพื่อความสะดวก ไฟ LED สามารถบัดกรีบนบอร์ดสร้างต้นแบบได้ เราได้ตัดสินใจตัดกระดานให้มีรูปร่างเป็นเครื่องหมายบวก เพื่อให้พอดีกับเคสที่ออกแบบ 3 มิติ
  2. เมื่อเราบัดกรีไฟ LED บนบอร์ดแล้ว เราจะบัดกรีสายจัมเปอร์เพื่อทำการเชื่อมต่อระหว่างส่วนหัวขนาด 0.1 นิ้วกับไฟ LED ขั้วต่อส่วนหัวจะใช้เพื่อลดการเชื่อมต่อราสเบอร์รี่ pi และนำกลับมาใช้ใหม่สำหรับโครงการในอนาคต

ขั้นตอนที่ 3: ซอฟต์แวร์

ซอฟต์แวร์
ซอฟต์แวร์

อิมเมจระบบปฏิบัติการ Raspberry Pi

ก่อนอื่นเราต้องทำให้ Raspberry Pi ใช้งานได้ ในการทำเช่นนี้เราทำตามขั้นตอนเหล่านี้:

  1. ดาวน์โหลด Raspbian เวอร์ชันล่าสุดได้จากที่นี่ คุณสามารถดาวน์โหลดได้โดยตรงหรือผ่านทาง torrents คุณจะต้องใช้โปรแกรมเขียนรูปภาพเพื่อเขียนระบบปฏิบัติการที่ดาวน์โหลดลงในการ์ด SD (การ์ด micro SD ในกรณีของรุ่น Raspberry Pi B+ และ Raspberry Pi Zero)
  2. ดังนั้นให้ดาวน์โหลด "win32 disk imager" จากที่นี่ ใส่การ์ด SD ลงในแล็ปท็อป/พีซี และเรียกใช้โปรแกรมเขียนรูปภาพ เมื่อเปิดขึ้นมา ให้เรียกดูและเลือกไฟล์รูปภาพ Raspbian ที่ดาวน์โหลดมา เลือกอุปกรณ์ที่ถูกต้อง นั่นคือไดรฟ์ที่เป็นตัวแทนของการ์ด SD หากไดรฟ์ (หรืออุปกรณ์) ที่เลือกแตกต่างจากการ์ด SD ไดรฟ์อื่นที่เลือกจะเสียหาย ดังนั้นจงระวัง
  3. หลังจากนั้นคลิกที่ปุ่ม "เขียน" ที่ด้านล่าง ตัวอย่างเช่น ดูภาพด้านล่าง โดยที่ไดรฟ์ SD การ์ด (หรือ micro SD) จะแสดงด้วยตัวอักษร "G:\" ขณะนี้ระบบปฏิบัติการพร้อมใช้งานตามปกติแล้ว อย่างไรก็ตาม ในบทช่วยสอนนี้ เราจะใช้ Raspberry Pi ในโหมดหัวขาด ซึ่งหมายความว่าไม่มีจอภาพและคีย์บอร์ดติดอยู่!
  4. หลังจากเบิร์นการ์ด SD อย่านำออกจากคอมพิวเตอร์ของคุณ! ใช้โปรแกรมแก้ไขข้อความเพื่อเปิดไฟล์ config.txt ที่อยู่ในการ์ด SD ไปที่ด้านล่างและเพิ่ม dtoverlay=dwc2เป็นบรรทัดสุดท้าย:
  5. บันทึกไฟล์ config.txt เป็นข้อความธรรมดาแล้วเปิด cmdline.txt หลังจาก rootwait (คำสุดท้ายในบรรทัดแรก) ให้เพิ่มช่องว่างแล้ว modules-load=dwc2, g_ether
  6. ตอนนี้เอาการ์ด SD ออกจากพีซีของคุณแล้วใส่ลงใน Raspberry Pi แล้วเชื่อมต่อกับพีซีของคุณโดยใช้สาย USB เมื่อระบบปฏิบัติการบูทขึ้นแล้ว คุณควรเห็นอุปกรณ์ Ethernet Gadget ใหม่ถูกค้นพบ
  7. คุณสามารถใช้ ssh [email protected] เพื่อเชื่อมต่อกับบอร์ดและควบคุมจากระยะไกล สำหรับคำแนะนำโดยละเอียดเพิ่มเติมเกี่ยวกับการทำงานแบบหัวขาด ไปที่นี่ ไดร์เวอร์ Neopixel

ไลบรารี rpi_ws281x เป็นคีย์ที่ทำให้สามารถใช้ NeoPixels กับ Raspberry Pi ได้

ขั้นแรกเราต้องติดตั้งเครื่องมือที่จำเป็นในการคอมไพล์ไลบรารี ในการรัน Raspberry Pi: sudo apt-get update && sudo apt-get install build-essential python-dev git scons swig ตอนนี้ให้รันคำสั่งเหล่านี้เพื่อดาวน์โหลดและคอมไพล์ไลบรารี:

git clone https://github.com/jgarff/rpi_ws281x.git && cd rpi_ws281x && scons สุดท้ายหลังจากรวบรวมไลบรารีเรียบร้อยแล้ว เราสามารถติดตั้งสำหรับ python โดยใช้:

cd python && sudo python setup.py install ตอนนี้มีรหัสหลามที่ขับ LED โค้ดนี้ค่อนข้างง่ายพร้อมความคิดเห็นบางส่วนที่จะช่วยคุณได้ จากการนำเข้า neopixel * # การกำหนดค่า NeoPixel LED_PIN = 18 # พิน GPIO ของ Raspberry Pi เชื่อมต่อกับพิกเซล LED_BRIGHTNESS = 255 # ตั้งค่าเป็น 0 สำหรับความมืดที่สุดและ 255 สำหรับ LED_COUNT ที่สว่างที่สุด = 4 # จำนวนแถบพิกเซล LED = Adafruit_NeoPixel (LED_COUNT, LED_PIN, 800000, 5, เท็จ, LED_BRIGHTNESS, 0, ws. WS2811_STRIP_GRB) # เริ่มต้นไลบรารี strip.begin() strip.setPixelColor(0, Color(255, 255, 255)) strip.show()

ADXL345 ไดร์เวอร์

เซ็นเซอร์มาตรความเร่งที่เราเลือกมีอินเทอร์เฟส I2C สำหรับสื่อสารกับโลกภายนอก โชคดีสำหรับเรา Raspberry Pi ยังมีอินเทอร์เฟซ I2C เราเพียงแค่ต้องเปิดใช้งานเพื่อใช้ในโค้ดของเราเอง

เรียกใช้เครื่องมือกำหนดค่า Raspbian โดยใช้ sudo raspi-config เมื่อเรียกใช้แล้ว ให้ไปที่ตัวเลือกการเชื่อมต่อ ตัวเลือกขั้นสูง จากนั้นเปิดใช้งาน I2C ติดตั้งโมดูลหลามที่เกี่ยวข้องเพื่อให้เราสามารถใช้อินเทอร์เฟซ I2C ในไพ ธ อนได้:

sudo apt-get install python-smbus i2c-tools รหัสหลามต่อไปนี้ช่วยให้เราสื่อสารกับเซ็นเซอร์มาตรความเร่งและอ่านค่าลงทะเบียนเพื่อจุดประสงค์ของเราเอง นำเข้า smbus นำเข้า struct # Accelerometer configurations bus = smbus. SMBus (1) address = 0x53 gain = 3.9e-3 bus.write_byte_data (ที่อยู่, 45, 0x00) # ไปที่โหมดสแตนด์บาย bus.write_byte_data (ที่อยู่, 44, 0x06) # แบนด์วิดท์ 6.5Hz bus.write_byte_data(ที่อยู่, 45, 0x08) # ไปที่โหมดการวัด # อ่านข้อมูลจากเซ็นเซอร์ buf = bus.read_i2c_block_data(ที่อยู่, 50, 6) # แกะข้อมูลจาก int16_t ไปยัง python integer data = struct.unpack_from (">ฮะ", บัฟเฟอร์(bytearray(buf)), 0)

x = float(data[0]) * กำไร

y = float(data[1]) * ได้รับ

z = float(ข้อมูล[2]) * กำไร

เครื่องตรวจจับการเคลื่อนไหว

คุณลักษณะหนึ่งของแสงที่เราทำคือสามารถตรวจจับการเคลื่อนไหว (หรือไม่มี) เพื่อเข้าสู่โหมดโต้ตอบ (โดยที่แสงเปลี่ยนไปตามการหมุน) และโหมดพยากรณ์อากาศ (ซึ่งแสงเปลี่ยนไปตามการพยากรณ์อากาศ สำหรับวันนี้). รหัสต่อไปนี้ใช้ฟังก์ชันก่อนหน้าเพื่ออ่านค่าความเร่งสำหรับ 3 แกนและเตือนเราเมื่อมีการเคลื่อนไหว

เร่ง = getAcceleration ()

dx = abs(prevAccel[0] - accel[0])

dy = abs(prevAccel[1] - เร่ง[1])

dz = abs(prevAccel[2] - เร่ง[2])

ถ้า dx > moveThreshold หรือ dy To > moveThreshold หรือ dz > moveThreshold:

พิมพ์ 'ย้าย'

ย้าย = จริง

อื่น:

ย้าย = เท็จ

API อากาศ

ในการรับพยากรณ์อากาศ เราสามารถใช้ Yahoo Weather สิ่งนี้เกี่ยวข้องกับการพูดคุยกับ Yahoo Weather Rest API ซึ่งอาจค่อนข้างซับซ้อน โชคดีสำหรับเรา ส่วนที่ยากได้รับการดูแลในรูปแบบของโมดูล weather-api สำหรับ python แล้ว

  1. ก่อนอื่นเราต้องติดตั้งโมดูลนี้โดยใช้: sudo apt install python-pip && sudo pip install weather-api
  2. โปรดเยี่ยมชมเว็บไซต์ของผู้เขียนเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับโมดูลนี้

เมื่อติดตั้งโค้ดต่อไปนี้จะได้รับสภาพอากาศในขณะนี้

จากการนำเข้าสภาพอากาศ Weatherweather = Weather()

ที่ตั้ง = weather.lookup_by_location('dublin')

สภาพ = location.condition()

พิมพ์(เงื่อนไข.ข้อความ())

วางมันทั้งหมดเข้าด้วยกัน

รหัสทั้งหมดสำหรับโครงการที่เชื่อมต่อส่วนต่างๆ ข้างต้นมีอยู่ที่นี่

เริ่มต้นสคริปต์ python โดยอัตโนมัติเมื่อบูตเครื่อง

เพื่อให้สามารถใส่ raspberry pi ลงในกล่องและเรียกใช้โค้ดของเราทุกครั้งที่เราเชื่อมต่อกับแหล่งจ่ายไฟ เราต้องตรวจสอบให้แน่ใจว่าโค้ดเริ่มทำงานโดยอัตโนมัติระหว่างการบู๊ต ในการดำเนินการนี้ เราใช้เครื่องมือที่เรียกว่า cron

  1. ก่อนอื่นให้เรียกใช้เครื่องมือ cron โดยใช้: sudo crontab -e
  2. ขั้นตอนก่อนหน้านี้จะเปิดไฟล์การกำหนดค่าซึ่งเราเพิ่มบรรทัดต่อไปนี้:

    @reboot หลาม /home/pi/light.py &

ขั้นตอนที่ 4: การสร้างแบบจำลองและการพิมพ์ 3 มิติ

การสร้างแบบจำลองและการพิมพ์ 3 มิติ
การสร้างแบบจำลองและการพิมพ์ 3 มิติ
การสร้างแบบจำลองและการพิมพ์ 3 มิติ
การสร้างแบบจำลองและการพิมพ์ 3 มิติ

โมเดล 3 มิติของ Plus ได้รับการสร้างใน Solidworks และบันทึกเป็นรูปแบบ. Stl จากนั้นสำหรับการพิมพ์โมเดล 3 มิติ ไฟล์. Stl จะถูกนำเข้าในซอฟต์แวร์ Cura แต่ละด้านของเครื่องหมายบวกใช้เวลา 2:30 น. ในการผลิต ดังนั้น full Plus แต่ละครั้งจึงใช้เวลาประมาณ 5 ชั่วโมงในการพิมพ์ และสำหรับด้านที่โปร่งใส ลูกแก้วก็ถูกตัดด้วยเลเซอร์

ขั้นตอนที่ 5: การประกอบ

การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ

ด้วยชิ้นส่วนที่พิมพ์ 3 มิติ อุปกรณ์อิเล็กทรอนิกส์และซอฟต์แวร์อยู่ในมือ ในที่สุด เราก็สามารถประกอบผลิตภัณฑ์ขั้นสุดท้ายได้

  1. แผ่นด้านบนและด้านล่างที่พิมพ์ 3 มิติ เราพบว่าโปร่งใสกว่าที่คาดไว้ ชั้นของอลูมิเนียมฟอยล์ช่วยแก้ปัญหาแสงรั่วได้
  2. อย่างไรก็ตาม แผ่นเหล่านี้สามารถนำไฟฟ้าได้และอาจทำให้เกิดการลัดวงจรภายในวงจรที่ไม่มีการป้องกันของเรา ดังนั้นกระดานไวท์บอร์ดอีกชั้นจึงติดกาวอยู่ด้านบน
  3. ส่วนลูกแก้วแบบกระจายติดกาวที่แผ่นด้านข้างด้านใดด้านหนึ่ง
  4. มีการเจาะรูในแผงพิมพ์ 3 มิติด้านใดด้านหนึ่ง เพื่อให้เราสามารถผ่านสายไฟได้
  5. เมื่อเสียบสายไฟเข้าไปในรูแล้ว เราก็บัดกรีมันเข้ากับบอร์ดสร้างต้นแบบของเรา
  6. เราแนบเซ็นเซอร์กับราสเบอร์รี่ pi แล้วเสียบเข้ากับขั้วต่อ
  7. เราแนบ 2 ชิ้นเข้าด้วยกันเพื่อให้ได้ผลิตภัณฑ์ขั้นสุดท้ายของเรา
  8. คุณสามารถเลือกกาว 2 ชิ้นเพื่อให้การเชื่อมต่อถาวรมากขึ้น อย่างไรก็ตาม โปรดทราบว่าอาจเป็นเรื่องยากที่จะเข้าไปในกล่องหลังจากที่ปิดแล้ว หากคุณต้องการเปลี่ยนรหัสในภายหลัง

แนะนำ: