สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
สิ่งที่เราต้องการ:
- Raspberry Pi กับ Raspbian
- เซ็นเซอร์สัมผัสจาก adafruit
- แหล่งพลังงาน (แบตเตอรี่/กระแสตรง)
- อีเธอร์เน็ตหรือ WiFi สำหรับ Raspberry Pi
- คอมพิวเตอร์เครื่องอื่น
ขั้นตอนที่ 1: การตั้งค่าฮาร์ดแวร์ Raspberry Pi ของเรา
ขั้นแรกให้เชื่อมต่อเซ็นเซอร์สัมผัสของเรากับพิน GPIO บน Raspberry Pi ของเรา ใช้สายเคเบิลที่ยืดหยุ่นได้
ระบุ 3 พินบนเซ็นเซอร์ของเรา:
- GND - เชื่อมต่อกับพินกราวด์
- VCC - เชื่อมต่อกับพิน 5V
- SIG - เชื่อมต่อกับขาสัญญาณ
เราจะใช้ 5V, กราวด์ และ GPIO 18 บนราสเบอร์รี่ pi ของเราในตัวอย่างนี้
ขั้นตอนที่ 2: การตั้งค่าสภาพแวดล้อมของเราบน Raspberry Pi
รับที่อยู่ IP ของราสเบอร์รี่ Pi ของเรา
จากนั้นเชื่อมต่อกับ raspberry pi ของเราโดยใช้ ssh:
ssh username@ipaddress
จากนั้นพิมพ์รหัสผ่านของเรา
เมื่อเราเข้าไปแล้วให้ติดตั้ง apache2 เป็นเว็บเซิร์ฟเวอร์ของเราโดยพิมพ์ใน:
sudo apt-get ติดตั้ง apache2
ขั้นตอนที่ 3: ออกแบบโค้ด Python เพื่ออ่านอินพุตจากเซนเซอร์ของเรา
ออกแบบ
ในโค้ดตัวอย่างของเรา เราใช้คำสั่งที่แตกต่างกันสองสามคำสั่ง
เพื่อแสดงว่าเรามีความสุข เรากด 2 ครั้ง
เพื่อแสดงว่าเราเศร้า เราแตะสั้นๆ หนึ่งครั้งและกดค้างหนึ่งครั้ง
เพื่อบ่งบอกว่าเราสับสน เราแตะสั้นๆ หนึ่งครั้ง รอจังหวะ จากนั้นแตะสั้นๆ 2 ครั้ง เพื่อระบุว่าเรามีความสุข เราแตะสั้นๆ หนึ่งครั้ง เว้นช่องว่างสั้นๆ หนึ่งครั้ง และกดค้างหนึ่งครั้ง
เพื่อบ่งบอกว่าเราเบื่อ เรา 3 ก๊อกสั้นๆ
กำลังแปลคำสั่งเหล่านี้เป็นคำสั่งสตริง:(t สำหรับการแตะสั้น, T สำหรับการกดแบบยาว, g สำหรับช่องว่างสั้น, G สำหรับช่องว่างยาว)
มีความสุข: TgT
เศร้า: tgT
สับสน: tGtgt
เบื่อ: tgtgt
จากนั้นเราจะให้โค้ดของเราแสดงอารมณ์ปัจจุบันของเราเป็นไฟล์ html ที่เป็นมิตรกับเบราว์เซอร์สำหรับให้บริการ
รหัส
นำเข้า RPi. GPIO เป็น GPIOนำเข้าเวลา
GPIO. การล้างข้อมูล ()
GPIO.setmode(GPIO. BCM) GPIO.setup(18, GPIO. IN)
touch_count = 0
touch_state = 0 touch_duration = 0 gap_duration = 0 current_cmd = ""
def cmd ():
global current_cmd if current_cmd[-3:] == "TgT": current_cmd = "" mood("Sad") if current_cmd[-3:] == "tgT": current_cmd = "" mood("Happy") ถ้า current_cmd [-5:] == "tGtgt": current_cmd = "" อารมณ์ ("สับสน") ถ้า current_cmd[-5:] == "tgtgt": current_cmd = "" อารมณ์ ("เบื่อ")
def อารมณ์ (อารมณ์):
ไฟล์ = open("index.html", "w") html = """
นักข่าวอารมณ์แบบพกพา
เฮ้ อารมณ์ล่าสุดของฉันคือ
{}
"""
file.write(html.format(อารมณ์))
ในขณะที่(1):
time.sleep(0.001) if(GPIO.input(18)): if touch_state==0: if gap_duration > 2000: gap_duration = 0 if gap_duration > 200: current_cmd = current_cmd + "G" อื่น: current_cmd = current_cmd + "g " gap_duration = 0 touch_state = 1 touch_count = touch_count + 1 ถ้า touch_state==1: touch_duration = touch_duration + 1 อื่น ๆ: ถ้า gap_duration 200: current_cmd = current_cmd + "T" อื่น: current_cmd = current_cmd + "t" touch_duration = 0 cmd()
GPIO. การล้างข้อมูล ()
ตั้งค่าให้ทำงานกับเว็บเซิร์ฟเวอร์ของเรา
พิมพ์หรืออัปโหลดไฟล์ python ด้านบนไปยังตำแหน่งเว็บเซิร์ฟเวอร์ของเรา
ซึ่งมีค่าเริ่มต้นเป็น /var/www/html
cd /var/www/html
sudo nano touch.py
แล้วพิมพ์โค้ดด้านบน
ขั้นตอนที่ 4: เริ่มเซิร์ฟเวอร์ของเราเพื่อดูการใช้งานจริง
cd /var/www/html
sudo python touch.py
จากนั้นพิมพ์ที่อยู่ IP สำหรับ Raspberry Pi ของเรา จากนั้นเราควรเห็นนักข่าวอารมณ์ของเราทำงาน!
ลองใช้คำสั่งสัมผัสประเภทต่างๆ และหน้าควรรีเฟรชอัตโนมัติเพื่อสะท้อนถึงสิ่งนั้น!