สารบัญ:

การควบคุมอัจฉริยะของพัดลม Raspberry Pi โดยใช้ Python & Thingspeak: 7 ขั้นตอน
การควบคุมอัจฉริยะของพัดลม Raspberry Pi โดยใช้ Python & Thingspeak: 7 ขั้นตอน

วีดีโอ: การควบคุมอัจฉริยะของพัดลม Raspberry Pi โดยใช้ Python & Thingspeak: 7 ขั้นตอน

วีดีโอ: การควบคุมอัจฉริยะของพัดลม Raspberry Pi โดยใช้ Python & Thingspeak: 7 ขั้นตอน
วีดีโอ: แนะนำวิธีการใช้งานเครื่องอ่านหนังสือจาก Rasberrypi PITextReader 2024, กรกฎาคม
Anonim
การควบคุมอัจฉริยะของพัดลม Raspberry Pi โดยใช้ Python & Thingspeak
การควบคุมอัจฉริยะของพัดลม Raspberry Pi โดยใช้ Python & Thingspeak

ภาพรวมโดยย่อ

โดยค่าเริ่มต้น พัดลมจะเชื่อมต่อโดยตรงกับ GPIO ซึ่งหมายถึงการทำงานที่คงที่ แม้ว่าพัดลมจะทำงานเงียบสนิท แต่การทำงานต่อเนื่องนั้นไม่เป็นผลจากการใช้ระบบทำความเย็นแบบแอคทีฟอย่างมีประสิทธิภาพ ในขณะเดียวกัน การทำงานอย่างต่อเนื่องของพัดลมก็อาจสร้างความรำคาญได้ นอกจากนี้ หากปิด Raspberry Pi พัดลมจะยังคงทำงานหากเสียบปลั๊ก

บทความนี้จะสาธิตวิธีการเปลี่ยนระบบระบายความร้อนที่มีอยู่ให้เป็นระบบอัจฉริยะโดยใช้การปรับแต่งที่ง่ายและไม่ซับซ้อน ซึ่งจะเปิดใช้งานเมื่อโปรเซสเซอร์ต้องการจริงๆ เท่านั้น พัดลมจะเปิดเฉพาะเมื่อมีการใช้งานหนักเท่านั้น จึงช่วยลดการสิ้นเปลืองพลังงานและเสียงรบกวนของพัดลม ยังยืดอายุพัดลมโดยปิดไว้เมื่อไม่ต้องการ

สิ่งที่คุณจะได้เรียนรู้

วิธีการใช้สคริปต์ Python เพื่อควบคุมพัดลมตามอุณหภูมิปัจจุบันของ CPU Raspberry โดยใช้การควบคุมการเปิด-ปิดด้วยอุณหภูมิฮิสเทรีซิส วิธีขนส่งข้อมูลจาก RaspberryPi ของคุณไปยัง Things Speak Cloud

เสบียง

ส่วนประกอบที่คุณต้องการสำหรับโครงการนี้มีดังนี้

  • คอมพิวเตอร์ Raspberry Pi 4 รุ่น B 4GB
  • ทรานซิสเตอร์ NPN S8050330ohms ตัวต้านทาน
  • เคสโลหะอลูมิเนียมเกราะพร้อมพัดลมคู่สำหรับ Raspberry Pi
  • สายจัมเปอร์
  • เขียงหั่นขนม

ขั้นตอนที่ 1: สร้างวงจร

การสร้างวงจร
การสร้างวงจร
การสร้างวงจร
การสร้างวงจร

วงจรค่อนข้างง่าย กำลังจ่ายไปยังพัดลมถูกตัดออกโดยใช้ทรานซิสเตอร์ NPN ในการกำหนดค่านี้ ทรานซิสเตอร์ทำหน้าที่เป็นสวิตช์ด้านต่ำ ตัวต้านทานจำเป็นต้องจำกัดกระแสผ่าน GPIO เท่านั้น GPIO ของ Raspberry Pi มีเอาต์พุตกระแสไฟสูงสุด 16mA ฉันใช้ 330 โอห์ม ซึ่งให้กระแสเบสที่ประมาณ (5-0.7)/330 = 13mA ฉันเลือกทรานซิสเตอร์ NPN S8050 ดังนั้นการสลับโหลด 400mA จากพัดลมทั้งสองจึงไม่มีปัญหา

ขั้นตอนที่ 2: บันทึกอุณหภูมิ CPU ด้วย ThingSpeak

บันทึกอุณหภูมิ CPU ด้วย ThingSpeak
บันทึกอุณหภูมิ CPU ด้วย ThingSpeak

ThingSpeak เป็นแพลตฟอร์มสำหรับโครงการที่ใช้แนวคิด Internet of Things แพลตฟอร์มนี้ช่วยให้คุณสร้างแอปพลิเคชันตามข้อมูลที่รวบรวมจากเซ็นเซอร์ คุณสมบัติหลักของ ThingSpeak ได้แก่ การรวบรวมข้อมูลแบบเรียลไทม์ การประมวลผลข้อมูล และการแสดงภาพ ThingSpeak API ไม่เพียงแต่ช่วยให้คุณส่ง จัดเก็บ และเข้าถึงข้อมูลเท่านั้น แต่ยังมีวิธีทางสถิติต่างๆ ในการประมวลผลอีกด้วย

ThingSpeak สามารถรวมอุปกรณ์และบริการยอดนิยมต่างๆ เช่น:

  • Arduino
  • ราสเบอร์รี่ pii
  • oBridge / RealTime.io
  • อิเล็กโทรดไฟฟ้า
  • แอปพลิเคชั่นมือถือและเว็บ
  • สังคมออนไลน์
  • การวิเคราะห์ข้อมูลใน MATLAB

ก่อนที่เราจะเริ่มต้น คุณต้องมีบัญชีที่ ThingSpeak

  1. ไปที่ลิงค์ต่อไปนี้และลงทะเบียนกับ ThingSpeak
  2. หลังจากเปิดใช้งานบัญชีของคุณแล้ว ให้ลงชื่อเข้าใช้
  3. ไปที่ช่อง -> ช่องของฉัน
  4. คลิกที่ปุ่มช่องใหม่
  5. ป้อนชื่อ คำอธิบาย และฟิลด์ของข้อมูลที่คุณต้องการอัปโหลด
  6. คลิกที่ปุ่มบันทึกช่องเพื่อบันทึกการตั้งค่าทั้งหมดของคุณ

เราต้องการคีย์ API ซึ่งเราจะเพิ่มลงในโค้ดไพ ธ อนในภายหลังเพื่ออัปโหลดอุณหภูมิ CPU ของเราไปยัง Thingspeak cloud

คลิกที่แท็บ API Keys เพื่อรับ Write API Key

เมื่อคุณมีคีย์ API เขียนแล้ว เราก็เกือบจะพร้อมที่จะอัปโหลดข้อมูลของเราแล้ว

ขั้นตอนที่ 3: รับอุณหภูมิ CPU จาก Raspberry Pi โดยใช้ Python

สคริปต์นี้ยึดตามการดึงอุณหภูมิโปรเซสเซอร์ ซึ่งเกิดขึ้นทุกวินาที สามารถรับได้จากเทอร์มินัลโดยการรันคำสั่ง vcgencmd ด้วยพารามิเตอร์ Measure_temp

vcgencmd วัด_temp

ไลบรารี Subprocess.check_output() ใช้เพื่อดำเนินการคำสั่งจากนั้นใช้นิพจน์ทั่วไปเพื่อดึงค่าจริงจากสตริงที่ส่งคืน

จากการนำเข้ากระบวนการย่อย check_output

จากการนำเข้าใหม่ findalldef get_temp(): temp = check_output(["vcgencmd", "measure_temp"]).decode() temp = float(findall('\d+\.\d+', temp)[0]) return(temp) พิมพ์ (get_temp())

หลังจากดึงค่าอุณหภูมิแล้ว ข้อมูลจะต้องถูกส่งไปยังคลาวด์ ThingSpeak ใช้คีย์ API เขียนของคุณเพื่อเปลี่ยนตัวแปร myApi ในโค้ด Python ด้านล่าง

จากคำขอนำเข้า urllib

จากการนำเข้า findall อีกครั้งจากเวลาที่นำเข้าสลีปจากกระบวนการย่อย การนำเข้า check_output myAPI = '##################' baseURL = 'https://api.thingspeak.com/update?api_key=% s' % myAPIdef get_temp(): temp = check_output(["vcgencmd", "measure_temp"]).decode() temp = float(findall('\d+\.\d+', temp)[0]) return(ชั่วคราว) ลอง: ในขณะที่ True: temp = get_temp() conn = request.urlopen(baseURL + '&field1=%s' % (temp)) print(str(temp)) conn.close() sleep(1) ยกเว้น KeyboardInterrupt: print ("กดออก Ctrl+C")

ขั้นตอนที่ 4: การควบคุมพัดลมตามอุณหภูมิ

สคริปต์ Python ที่แสดงด้านล่างใช้ตรรกะที่เปิดพัดลมเมื่ออุณหภูมิสูงกว่า tempOn และปิดเมื่ออุณหภูมิลดลงต่ำกว่าเกณฑ์เท่านั้น วิธีนี้จะทำให้พัดลมไม่เปิดและปิดอย่างรวดเร็ว

นำเข้า RPi. GPIO เป็น GPIO

นำเข้า sys จาก re นำเข้า findall จากเวลาที่นำเข้าสลีปจากกระบวนการย่อย นำเข้า check_output def get_temp(): temp = check_output(["vcgencmd", "measure_temp"]).decode() temp = float(findall('\d+\.\d+ ', temp)[0]) return(temp) ลอง: GPIO.setwarnings(False) tempOn = 50 threshold = 10 controlPin = 14 pinState = False GPIO.setmode(GPIO. BCM) GPIO.setup(controlPin, GPIO. OUT, initial=0) ในขณะที่ True: temp = get_temp() if temp > tempOn and not pinState or temp < tempOn - threshold and pinState: pinState = not pinState GPIO.output(controlPin, pinState) print(str(temp) + " " + str(pinState)) sleep(1) ยกเว้น KeyboardInterrupt: print("Exit pressed Ctrl+C") ยกเว้น: print("Other Exception") print("--- Start Exception Data:") traceback.print_exc(limit=2, file=sys.stdout) print("--- End Exception Data:") ในที่สุด: print("CleanUp") GPIO.cleanup() print("End of program")

ขั้นตอนที่ 5: รหัส Python สุดท้าย

รหัสหลามหลักสามารถพบได้ในบัญชี GitHub ของฉันในลิงค์ต่อไปนี้ อย่าลืมใส่คีย์ API เขียนของคุณเอง

  1. เข้าสู่ระบบบอร์ด Raspberry PI ของคุณ
  2. เรียกใช้คำสั่งต่อไปนี้บนเทอร์มินัล

python3 cpu.py

ขั้นตอนที่ 6: การตรวจสอบข้อมูลผ่าน Thingspeak Cloud

การตรวจสอบข้อมูลผ่าน Thingspeak Cloud
การตรวจสอบข้อมูลผ่าน Thingspeak Cloud

อีกสักครู่ เปิดช่องของคุณบน ThingSpeak แล้วคุณจะเห็นอุณหภูมิที่อัปโหลดไปยังคลาวด์ของ Thingspeak แบบเรียลไทม์

ขั้นตอนที่ 7: เรียกใช้สคริปต์ Python เมื่อเริ่มต้น

เมื่อต้องการทำสิ่งนี้ ที่ส่วนท้ายของไฟล์ /etc/rc.local:

sudo nano /etc/rc.local

คุณต้องวางสคริปต์ start คำสั่งไว้หน้าบรรทัด exit 0:

sudo python /home/pi/cpu.py &

จำเป็นต้องมีสัญลักษณ์ & ที่ส่วนท้ายของคำสั่ง เนื่องจากเป็นแฟล็กเพื่อเริ่มกระบวนการในเบื้องหลัง หลังจากรีบูต สคริปต์จะทำงานโดยอัตโนมัติและพัดลมจะเปิดขึ้นเมื่อตรงตามเงื่อนไขที่ระบุ

แนะนำ: