
สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12

WeatherCar โปรเจ็กต์ทำเองขนาดเล็กที่สามารถขับรถไปพร้อมกับรวบรวมข้อมูลที่เป็นประโยชน์!
ฉันทำโครงการนี้เป็นครั้งสุดท้ายสำหรับปีแรกของฉันใน Howest of Kortrijk โปรเจ็กต์นี้ยังไม่เสร็จสิ้นดี แต่เอกสารนี้ครอบคลุมถึงภายในทั้งหมดของรถคันนี้ โดยไม่สร้างฟูลเฟรม
ขั้นตอนที่ 1: ข้อกำหนด
คุณจะต้องใช้ส่วนประกอบเหล่านี้ทั้งหมดสำหรับโครงการนี้:
- ราสเบอร์รี่ PI
- มอเตอร์ 2 ตัว (12v)
- เซอร์โว
- DHT11
- BMP280
- โมดูล GPS GY-NEO6MV2
- 4 x ทรานซิสเตอร์ NPN
- ตัวต้านทาน 2 ตัว (1k และ 2k)
- ตัวขับมอเตอร์
- ก้อนแบตเตอรี่ 2 x 6v
- บอร์ดต้นแบบ
- ตัวควบคุมแรงดันไฟฟ้าแบบสเต็ปดาวน์
- ลวดทองแดงหุ้มฉนวน
- สายแบน
- สาย Micro-USB รุ่นเก่า
- ไม้อัด
ขั้นตอนที่ 2: การบัดกรี / เดินสาย



สำหรับขั้นตอนแรกเราจะเชื่อมต่อสายไฟทั้งหมดโดยตรง (ปล. คุณสามารถใช้เขียงหั่นขนมเพื่อทดสอบก่อนบัดกรีทุกอย่าง)
ฉันได้จัดทำแผนผังที่แสดงให้คุณเห็นว่าฉันต่อสายทุกอย่างอย่างไร แม้ว่าฉันไม่สามารถหาชิ้นส่วนที่เหมาะสมสำหรับไดรเวอร์มอเตอร์ของฉันได้ สำหรับตัวขับมอเตอร์ของฉัน ฉันใช้ทรานซิสเตอร์ 4 NPN เพื่อแปลงสัญญาณ 3.3v เป็นสัญญาณ 12v เพื่อควบคุมตัวขับมอเตอร์ นี่เป็นเพราะอันที่ฉันใช้รองรับเพียง 1 แรงดันไฟฟ้า (12v เพราะมอเตอร์ของฉันคือ 12v)
ขั้นตอนที่ 3: การตั้งค่า Raspberry Pi
หากคุณยังไม่มีการตั้งค่า คุณจะต้องทำสิ่งนี้ก่อน มิฉะนั้น คุณสามารถข้ามขั้นตอนนี้ได้ หากคุณมีโปรแกรมที่จำเป็นจากข้อมูลโค้ดล่าสุดในขั้นตอนนี้
ก่อนอื่นคุณต้องดาวน์โหลดเวอร์ชันเดสก์ท็อป Raspbian ซึ่งสามารถพบได้ที่นี่:
หลังจากที่คุณดาวน์โหลดสิ่งนี้ คุณจะต้องใช้ Etcher หรือ WinDiskImager เพื่อวางไฟล์รูปภาพลงในการ์ด SD จากราสเบอร์รี่ Pi ของคุณ (อาจใช้เวลาสักครู่)
เมื่อโปรแกรมเสร็จสิ้น ให้เปิด file explorer และเปิดไดรฟ์ที่เรียกว่า "boot" ที่นี่คุณจะพบไฟล์ข้อความ "cmdline.txt" เปิดสิ่งนี้และเพิ่ม ip=169.254.10.1 ที่ส่วนท้ายของไฟล์ ระวังอย่าเพิ่มข้อมูลใด ๆ เข้าไปในไฟล์เพราะอาจทำให้เกิดปัญหาได้
ตอนนี้ PI มีที่อยู่ IP เริ่มต้นแล้ว เรายังต้องเปิดใช้งาน SSH เพื่อให้สามารถเชื่อมต่อได้ คุณสามารถทำได้โดยสร้างไฟล์ใหม่ชื่อ "SSH" โดยไม่มีนามสกุล ซึ่งจะบอกให้ raspberry pi เปิดใช้งาน ssh ในการบู๊ตครั้งแรก
ด้วยวิธีนี้ เราสามารถเชื่อมต่อกับ raspberry pi โดยใช้สายอีเธอร์เน็ต เชื่อมต่อสายเคเบิลระหว่างพีซีของคุณและราสเบอร์รี่ PI ตอนนี้เราต้องการไคลเอ็นต์ SSH สำหรับสิ่งนี้ฉันใช้สีโป๊ว (https://www.putty.org/) เปิดผงสำหรับอุดรูแล้วใส่ 169.254.10.1 เป็นชื่อโฮสต์ อาจใช้เวลาสักครู่ก่อนที่คุณจะสามารถเชื่อมต่อได้
เมื่อคุณเชื่อมต่อแล้ว ให้เข้าสู่ระบบด้วยข้อมูลรับรองเหล่านี้:
เข้าสู่ระบบ: piรหัสผ่าน: raspberry
ตอนนี้เราสามารถตั้งค่าการเชื่อมต่ออินเทอร์เน็ตได้แล้ว ดำเนินการคำสั่งนี้และแทนที่ SSID และรหัสผ่านเครือข่ายด้วยชื่อและรหัสผ่าน wifi ของคุณ
echo "รหัสผ่าน" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant/wpa_supplicant.conf
wpa_cli -i wlan0 กำหนดค่าใหม่
ตอนนี้เรามีการเชื่อมต่ออินเทอร์เน็ตแล้ว เราก็สามารถติดตั้ง python และโปรแกรมที่จำเป็นอื่นๆ โดยใช้คำสั่งต่อไปนี้
sudo apt อัปเดต
sudo apt ติดตั้ง -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3
python3 -m pip install --upgrade pip setuptools wheel virtualenv
mkdir weathercar && cd weathercar
python3 -m venv --system-site-packages env
แหล่งที่มา env/bin/activate
python -m pip ติดตั้ง mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib flask-socketio
ขั้นตอนที่ 4: การตั้งค่าฐานข้อมูล
ตอนนี้คุณคือราสเบอร์รี่ pi มีโปรแกรมที่จำเป็นทั้งหมดแล้ว เรายังคงต้องกำหนดค่าฐานข้อมูล ที่เราสามารถทำได้โดยเริ่มต้น Mysql. ก่อน
sudo mariadb
แล้วก็
สร้างผู้ใช้ 'project1-admin'@'localhost' ระบุโดย 'adminpassword';สร้างผู้ใช้ 'project1-web'@'localhost' ระบุโดย 'webpassword';สร้างผู้ใช้ 'project1-sensor'@'localhost' ระบุโดย 'sensorpassword';
สร้างฐานข้อมูล weathercar_db;
ให้สิทธิ์ทั้งหมดใน weathercar.* เป็น 'project1-admin'@'localhost' ด้วยตัวเลือก GRANT;GRANT SELECT, INSERT, UPDATE, DELETE ON project1.* TO 'project1-web'@'localhost';GRANT SELECT, INSERT, UPDATE, ลบในโครงการ1.* TO 'project1-sensor'@'localhost';FLUSH PRIVILEGES;
ขั้นตอนที่ 5: รหัส
ในขั้นตอนนี้ เราจะทำการโคลนโค้ดที่จำเป็นลงบน raspberry pi ของคุณ เราจะทำสิ่งนี้:
ก่อนอื่นตรวจสอบให้แน่ใจว่าคุณอยู่ในโฮมไดเร็กตอรี่ของคุณโดยป้อน "cd"
ซีดี
ตอนนี้เราจะโคลนที่เก็บโดยใช้
โคลน git
ตอนนี้เราสามารถนำเข้าการตั้งค่าฐานข้อมูลโดยใช้:
sudo mariadb weathercar_db < /weathercar/sql/weathercar_db_historiek.sql sudo mariadb weathercar_db < /weathercar/sql/weathercar_db_sensoren.sql
เมื่อเราทำฐานข้อมูลเสร็จแล้ว เราก็สามารถตั้งค่าบริการของเราได้เลย
sudo cp weathercar/conf/project1-*.service /etc/systemd/system/sudo systemctl daemon-reloadsudo systemctl start project1-*sudo systemctl enable project1-*
ขั้นตอนที่ 6: เชื่อมต่อ

ใกล้จะถึงแล้ว อีกก้าวเดียวเท่านั้น และนั่นคือการรับที่อยู่ IP ที่ wifi ให้เรา
เราจะทำสิ่งนี้โดยใส่
ip addr
อึจะปรากฏขึ้น แต่คุณควรจะสามารถหา "wlan0" และอีกสองสามบรรทัด "inet 192.168.x.x"
ใส่ที่อยู่ IP นั้นในเบราว์เซอร์ของคุณและออกไป คุณกำลังเชื่อมต่อกับเว็บไซต์
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน

การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน

การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน

วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน

การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน

เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง