สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: สร้างวงจร
- ขั้นตอนที่ 2: บันทึกอุณหภูมิ CPU ด้วย ThingSpeak
- ขั้นตอนที่ 3: รับอุณหภูมิ CPU จาก Raspberry Pi โดยใช้ Python
- ขั้นตอนที่ 4: การควบคุมพัดลมตามอุณหภูมิ
- ขั้นตอนที่ 5: รหัส Python สุดท้าย
- ขั้นตอนที่ 6: การตรวจสอบข้อมูลผ่าน Thingspeak Cloud
- ขั้นตอนที่ 7: เรียกใช้สคริปต์ Python เมื่อเริ่มต้น
วีดีโอ: การควบคุมอัจฉริยะของพัดลม Raspberry Pi โดยใช้ Python & Thingspeak: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
ภาพรวมโดยย่อ
โดยค่าเริ่มต้น พัดลมจะเชื่อมต่อโดยตรงกับ 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
ThingSpeak เป็นแพลตฟอร์มสำหรับโครงการที่ใช้แนวคิด Internet of Things แพลตฟอร์มนี้ช่วยให้คุณสร้างแอปพลิเคชันตามข้อมูลที่รวบรวมจากเซ็นเซอร์ คุณสมบัติหลักของ ThingSpeak ได้แก่ การรวบรวมข้อมูลแบบเรียลไทม์ การประมวลผลข้อมูล และการแสดงภาพ ThingSpeak API ไม่เพียงแต่ช่วยให้คุณส่ง จัดเก็บ และเข้าถึงข้อมูลเท่านั้น แต่ยังมีวิธีทางสถิติต่างๆ ในการประมวลผลอีกด้วย
ThingSpeak สามารถรวมอุปกรณ์และบริการยอดนิยมต่างๆ เช่น:
- Arduino
- ราสเบอร์รี่ pii
- oBridge / RealTime.io
- อิเล็กโทรดไฟฟ้า
- แอปพลิเคชั่นมือถือและเว็บ
- สังคมออนไลน์
- การวิเคราะห์ข้อมูลใน MATLAB
ก่อนที่เราจะเริ่มต้น คุณต้องมีบัญชีที่ ThingSpeak
- ไปที่ลิงค์ต่อไปนี้และลงทะเบียนกับ ThingSpeak
- หลังจากเปิดใช้งานบัญชีของคุณแล้ว ให้ลงชื่อเข้าใช้
- ไปที่ช่อง -> ช่องของฉัน
- คลิกที่ปุ่มช่องใหม่
- ป้อนชื่อ คำอธิบาย และฟิลด์ของข้อมูลที่คุณต้องการอัปโหลด
- คลิกที่ปุ่มบันทึกช่องเพื่อบันทึกการตั้งค่าทั้งหมดของคุณ
เราต้องการคีย์ 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 เขียนของคุณเอง
- เข้าสู่ระบบบอร์ด Raspberry PI ของคุณ
- เรียกใช้คำสั่งต่อไปนี้บนเทอร์มินัล
python3 cpu.py
ขั้นตอนที่ 6: การตรวจสอบข้อมูลผ่าน Thingspeak Cloud
อีกสักครู่ เปิดช่องของคุณบน ThingSpeak แล้วคุณจะเห็นอุณหภูมิที่อัปโหลดไปยังคลาวด์ของ Thingspeak แบบเรียลไทม์
ขั้นตอนที่ 7: เรียกใช้สคริปต์ Python เมื่อเริ่มต้น
เมื่อต้องการทำสิ่งนี้ ที่ส่วนท้ายของไฟล์ /etc/rc.local:
sudo nano /etc/rc.local
คุณต้องวางสคริปต์ start คำสั่งไว้หน้าบรรทัด exit 0:
sudo python /home/pi/cpu.py &
จำเป็นต้องมีสัญลักษณ์ & ที่ส่วนท้ายของคำสั่ง เนื่องจากเป็นแฟล็กเพื่อเริ่มกระบวนการในเบื้องหลัง หลังจากรีบูต สคริปต์จะทำงานโดยอัตโนมัติและพัดลมจะเปิดขึ้นเมื่อตรงตามเงื่อนไขที่ระบุ
แนะนำ:
IOT - โพสต์ข้อมูลไปที่ Thingspeak โดยใช้ ESP8266: 3 ขั้นตอน
IOT | โพสต์ข้อมูลไปที่ Thingspeak โดยใช้ ESP8266: ปัจจุบัน IoT กำลังเป็นที่นิยมและมีเครื่องจำนวนมากมีข้อมูลที่จะอัปโหลดผ่านคลาวด์และวิเคราะห์ข้อมูล เซ็นเซอร์ขนาดเล็กอัปเดตข้อมูลบนคลาวด์และแอคทูเอเตอร์ในส่วนอื่นทำหน้าที่เกี่ยวกับข้อมูลนั้น ฉันจะอธิบายหนึ่งในตัวอย่างหนึ่งของ IoT ฉันบทความนี้และฉัน
การควบคุมการเคลื่อนไหวด้วย Raspberry Pi และ LIS3DHTR, มาตรความเร่ง 3 แกน, โดยใช้ Python: 6 ขั้นตอน
การควบคุมการเคลื่อนไหวด้วย Raspberry Pi และ LIS3DHTR, มาตรความเร่งแบบ 3 แกน, การใช้ Python: ความงามอยู่รอบตัวเรา แต่โดยปกติเราต้องเดินอยู่ในสวนถึงจะรู้ - Rumiในฐานะกลุ่มการศึกษาที่ดูเหมือนเราเป็น เราทุ่มเทพลังงานส่วนใหญ่ในการทำงานก่อนพีซีและโทรศัพท์มือถือของเรา เราจึงมักปล่อยให้สุขภาพของเรา
การอัปโหลดค่าเซ็นเซอร์สั่นสะเทือนไปยัง IOT ThingSpeak โดยใช้ NodeMCU: 4 ขั้นตอน
การอัปโหลดค่าเซ็นเซอร์สั่นสะเทือนไปยัง IOT ThingSpeak โดยใช้ NodeMCU: มีเครื่องจักรที่สำคัญหรืออุปกรณ์ราคาแพงจำนวนมากซึ่งได้รับความเสียหายเนื่องจากการสั่นสะเทือน ในกรณีเช่นนี้ จำเป็นต้องใช้เซ็นเซอร์การสั่นสะเทือนเพื่อค้นหาว่าเครื่องหรืออุปกรณ์มีการสั่นสะเทือนหรือไม่ การระบุวัตถุที่
Neopixel Ws2812 Rainbow LED เรืองแสงพร้อม M5stick-C - เรียกใช้ Rainbow บน Neopixel Ws2812 โดยใช้ M5stack M5stick C โดยใช้ Arduino IDE: 5 ขั้นตอน
Neopixel Ws2812 Rainbow LED เรืองแสงพร้อม M5stick-C | เรียกใช้ Rainbow บน Neopixel Ws2812 โดยใช้ M5stack M5stick C การใช้ Arduino IDE: สวัสดีทุกคนในคำแนะนำนี้ เราจะเรียนรู้วิธีใช้ neopixel ws2812 LED หรือแถบนำหรือเมทริกซ์นำหรือวงแหวน LED พร้อมบอร์ดพัฒนา m5stack m5stick-C พร้อม Arduino IDE และเราจะทำ ลายรุ้งกับมัน
การควบคุมวิทยุ RF 433MHZ โดยใช้ HT12D HT12E - การสร้างรีโมทคอนโทรล Rf โดยใช้ HT12E & HT12D ด้วย 433mhz: 5 ขั้นตอน
การควบคุมวิทยุ RF 433MHZ โดยใช้ HT12D HT12E | การสร้างการควบคุมระยะไกล Rf โดยใช้ HT12E & HT12D ด้วย 433mhz: ในคำแนะนำนี้ฉันจะแสดงวิธีสร้างรีโมทคอนโทรล RADIO โดยใช้โมดูลตัวรับส่งสัญญาณ 433mhz พร้อมการเข้ารหัส HT12E & IC ถอดรหัส HT12D ในคำแนะนำนี้ คุณจะสามารถส่งและรับข้อมูลโดยใช้ส่วนประกอบราคาถูกมาก เช่น HT