สารบัญ:
- ขั้นตอนที่ 1: การเดินสายฮาร์ดแวร์ไปยัง Pi
- ขั้นตอนที่ 2: การเข้ารหัสโปรแกรมหลัก
- ขั้นตอนที่ 3: การสร้างฐานข้อมูล
- ขั้นตอนที่ 4: การเข้ารหัสฮาร์ดแวร์
- ขั้นตอนที่ 5: เยี่ยมมาก
วีดีโอ: Beargardian: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
เฮ้พวกสำหรับโรงเรียนฉันต้องการความคิดสำหรับโครงการ เลยคิดว่าต้องเป็นโปรเจ็กต์ที่มี Raspberry Pi และต้องเป็นของท้องถิ่นเท่านั้น ทันใดนั้น ฉันมีความคิดที่ดี และอย่าถามฉันว่าฉันได้แนวคิดนั้นมาได้อย่างไร แต่ฉันคิดเกี่ยวกับการอัพเกรดจอภาพสำหรับดูแลเด็ก ลองคิดดูสักนิดเกี่ยวกับแนวคิดนั้น จอภาพสำหรับทารกส่วนใหญ่มีฟังก์ชันเพื่อฟังเสียงในห้องของทารก
คุณสมบัติ
- การแสดงแสงสีเล็กๆ แบบปรับได้
- กล้องที่แสดงภาพสด
- ลำโพงสำหรับเล่นเพลง
- เซ็นเซอร์จับการเคลื่อนไหวของทารก
- ทั้งหมดที่แสดงบนเว็บไซต์
ข้อมูลสั้นๆ
ขออธิบายสิ่งนี้ในเวอร์ชันสั้น ๆ เราต้องการเว็บไซต์ และสำหรับโปรเจ็กต์นี้ ฉันใช้ Flask เราต้องการฐานข้อมูลด้วย และฉันกำลังใช้ mysql ซึ่งเป็นสคริปต์ที่รันฮาร์ดแวร์ และนี่คือ python(3) และสุดท้าย เราต้องการการตั้งค่าเซิร์ฟเวอร์ นั่นจะเป็น nginx บน PI
เราต้องการอะไร
- Raspberry Pi 3
- สเต็ปมอเตอร์ 28BYJ
- โมดูล stepper stepmotor driverchip ULN2003
- rgb นำด้วยตัวต้านทาน 3 ตัว 330Ohm
- กล้อง Pi NoIR V2
- เซ็นเซอร์อัลตราโซนิก HC-SR04
- ไมโครโมดูลจากardiuno
- MAX98357A
- ลำโพง 8Ohm
- แล้วอย่าลืมซื้อหมี
ตั้งค่าราสเบอร์รี่ pi ---------------------------------------------- -------------------------------------------------- --------------------------
ขั้นแรกเราต้องตั้งค่า Pi เริ่มเข้าสู่ระบบด้วย putty แล้ว หากคุณไม่มี putty ฉันแนะนำให้คุณดาวน์โหลดสิ่งนี้ เพียงพิมพ์ ip คงที่ของ Pi ด้วย ssh แล้วใช้งาน หากคุณต้องติดตั้ง Raspberry Pi แสดงว่าฉันได้รับข่าวร้าย ฉันไม่ได้อธิบายสิ่งนี้ในโครงการนี้
ติดตั้งแพ็คเกจ
sudo apt อัปเดต
sudo apt ติดตั้ง -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
สภาพแวดล้อมเสมือนจริง
python3 -m pip install --upgrade pip setuptools wheel virtualenv
mkdir {ชื่อโฟลเดอร์โครงการของคุณ} && cd {ชื่อโฟลเดอร์โครงการของคุณ} 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
ตอนนี้คุณต้องโคลนที่เก็บ git ในโฟลเดอร์โครงการของคุณ
github.com/NMCT-S2-Project-I/Project-I.git
หากคุณดูในโฟลเดอร์โครงการของคุณ คุณต้องเห็น 5 โฟลเดอร์
- conf
- สิ่งแวดล้อม
- เซ็นเซอร์
- sql
- เว็บ
ฐานข้อมูล
sudo systemctl สถานะ mysql
ss -lt | grep mysql sudo mysql
สร้างผู้ใช้ในฐานข้อมูลที่มีสิทธิ์ทั้งหมดและสร้างฐานข้อมูลของคุณ
สร้างผู้ใช้ 'user'@'localhost' ที่ระบุโดย 'password';
สร้างฐานข้อมูล yourdatabasename; ให้สิทธิ์ทั้งหมดในชื่อฐานข้อมูลของคุณ* กับ 'user'@'localhost' พร้อมตัวเลือกการอนุญาต
ไฟล์ Conf สำหรับเซิร์ฟเวอร์
ใน uwsgi-flask.ini คุณเปลี่ยน 'module = …' เป็น 'module= web:app' และเส้นทางไปยัง virtualenv ที่คุณสร้างขึ้น ในไฟล์อื่นๆ คุณต้องเปลี่ยนพาธไปยังพาธสัมบูรณ์จริงของไดเร็กทอรีของคุณ
เมื่อคุณคิดออกแล้ว คุณสามารถตั้งค่าไฟล์ให้ถูกที่
sudo cp conf/project1-*.service /etc/systemd/system/
sudo systemctl daemon-reload sudo systemctl start project1-* sudo systemctl status project1-*
ตอนนี้เราต้องตั้งค่านี้ให้พร้อมใช้งาน
sudo cp conf/nginx /etc/nginx/sites-available/project1
sudo rm /etc/nginx/sites-enabled/default sudo ln -s /etc/nginx/sites-available/project1 /etc/nginx/sites-enabled/project1 sudo systemctl restart nginx.service sudo nginx -t
หากทุกอย่างเป็นไปด้วยดีคุณควรมีสวัสดีชาวโลกด้วยคำสั่งนี้
wget -qO - localhost
เสร็จแล้ว ! นั่นเป็นส่วนที่ช่วยให้ระบบของคุณทำงานบน…
ขั้นตอนที่ 1: การเดินสายฮาร์ดแวร์ไปยัง Pi
ใช้ BCM
เสียง MAX98357A
- BCK เป็น GPIO 18
- ข้อมูลไปยัง GPIO 21
- LRCK เป็น GPIO 19
แสงสว่าง
- สีแดงเป็น GPIO 17
- สีเขียวเป็น GPIO 27
- สีน้ำเงินเป็น GPIO 22
โมดูลมอเตอร์ ULN2003
- พิน 1 ถึง GPIO 5
- พิน 2 ถึง GPIO 6
- พิน 3 ถึง GPIO 13
- พิน 4 ถึง GPIO 26
ไมโคร
D0 ถึง GPIO 21
เซ็นเซอร์อัลตราโซนิก
- ไตร่ตรองถึง GPIO 16
- ก้องไปที่ GPIO 20
ขั้นตอนที่ 2: การเข้ารหัสโปรแกรมหลัก
ฉันไม่ได้ลงรายละเอียดที่นี่ แต่คุณสามารถชำระเงินรหัสของฉันใน GitHub
เริ่มต้นด้วยฉันสร้าง html และ css, ดัชนี, ล็อกอิน, ลงทะเบียน, หน้าจอหลัก, เพลง, addmusic, addbear, light, กล้อง, การตั้งค่ากล้อง, เซ็นเซอร์, หน้าแดชบอร์ด ไฟล์ html ต้องอยู่ในเทมเพลตและไฟล์ css ในโฟลเดอร์ static/css คุณสามารถปรับแต่ง css ได้อย่างเต็มที่ตามที่คุณต้องการ
หากคุณทำส่วนนี้เสร็จแล้ว คุณต้องติดตั้งขวด Flask ใช้งานง่ายเพียงตัวอย่าง สวัสดีชาวโลก
#นำเข้าขวดแรก
จากการนำเข้าขวด * @app.route('/') def index(): return render_template('index.html')
ตอนนี้ในรหัสของฉันถูกกรอกไปแล้ว สิ่งเดียวที่คุณต้องทำคือเปลี่ยนผู้ใช้ฐานข้อมูลและรหัสผ่านจากคุณและแน่นอนว่าสร้างฐานข้อมูลเดียวกันกับที่คุณสามารถหาได้ใน GitHub
ขั้นตอนที่ 3: การสร้างฐานข้อมูล
สำหรับแฟนตัวจริง ฉันจะบอกคุณถึงวิธีสร้างฐานข้อมูลเดียวกัน
ขั้นแรกเราต้องสร้างฐานข้อมูลหากคุณไม่อยู่ในขั้นตอนที่หนึ่ง
สร้างฐานข้อมูล Beargardian
เมื่อคุณทำสิ่งนี้ คุณจะสร้างตารางใน mysql workbench หรือ phppadmin
ตารางผู้ใช้มี
- รหัสผู้ใช้
- ชื่อจริง
- นามสกุล
- อีเมล
- ชื่อทารก
- รหัสผ่านด้วย sha1
- โฟลเดอร์ผู้ใช้
- เพลงประกอบละคร (int)
- ไฟเพลย์ (int)
- การบันทึกการเล่น (int)
โต๊ะดนตรีมี
- musicID
- เพลง
- เส้นทาง
- โฟลเดอร์ผู้ใช้
- สถานะ
- ปริมาณ
โต๊ะบันทึกมี
- บันทึกID
- เส้นทาง
- โฟลเดอร์ผู้ใช้
- เวลา
- วัน
ตารางสีมี
- colorID
- สีแดง
- เขียว
- สีฟ้า
- ความสว่าง
- รหัสผู้ใช้
โต๊ะหมีมี
- bearID (ทศนิยม (8))
- รหัสผู้ใช้เริ่มต้น null
- ชื่อหมี
ตารางเซ็นเซอร์มี
- sensorID
- ระยะทาง
- ไมโคร
- bearID
- เวลา
- วัน
- เวลานอน
ตอนนี้คุณสร้างฐานข้อมูลสำเร็จแล้ว ไปที่ฮาร์ดแวร์กัน
ขั้นตอนที่ 4: การเข้ารหัสฮาร์ดแวร์
ฉันจะแสดงรหัสเล็กน้อยและบอกคุณว่าทำไมฉันถึงทำอย่างนั้น
เริ่มต้นด้วยการใช้ threading สิ่งที่ขาดไม่ได้ในโครงการนี้ threading คืออะไร อืม เป็นคำถามที่ดี ! การคุกคามใน python คือการเรียกใช้หลายโปรแกรมพร้อมกัน ตัวอย่างเช่น หากคุณเปลี่ยนสี คุณก็สามารถบันทึกได้เช่นกัน ใช้งานง่ายไม่ต้องกังวล
นำเข้า _threaddef function_name(something, something_else): รหัสที่จะเรียกใช้
_thread.start_new_thread(function_name, tuple_with_the_functions_variables)
หากคุณดูที่โปรแกรมของฉัน คุณเห็น logger.info('…') นี่คือฟังก์ชันการพิมพ์ แต่ดีกว่ามาก เพราะใน Pi คุณไม่สามารถพิมพ์สิ่งต่างๆ ออกมาได้ ดังนั้นฉันจึงสร้างไฟล์และพิมพ์ในนั้น โย่สามารถตั้งค่าล็อกไฟล์ด้วยรหัสนี้
logger = logging.getLogger(_name_)logger.setLevel(logging. INFO) # สร้างตัวจัดการไฟล์ตัวจัดการ = logging. FileHandler('logger.log') handler.setLevel(logging. INFO)
# สร้างรูปแบบการบันทึก
formatter = logging. Formatter('%(asctime)s - %(name)s - %(message)s') handler.setFormatter(formatter)
# เพิ่มตัวจัดการให้กับคนตัดไม้
logger.addHandler (ตัวจัดการ)
logger.info('เริ่มต้นฮาร์ดแวร์\n---------------------------------------')
เพิ่มเติมในโค้ดนั้นฉันอธิบายทุกอย่าง
แนะนำ:
การออกแบบเกมในการสะบัดใน 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 ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง