ตั้งค่าตั้งแต่เริ่มต้น Raspberry Pi เพื่อบันทึกข้อมูลจาก Arduino: 5 ขั้นตอน
ตั้งค่าตั้งแต่เริ่มต้น Raspberry Pi เพื่อบันทึกข้อมูลจาก Arduino: 5 ขั้นตอน
Anonim
ตั้งค่าตั้งแต่เริ่มต้น Raspberry Pi เพื่อบันทึกข้อมูลจาก Arduino
ตั้งค่าตั้งแต่เริ่มต้น Raspberry Pi เพื่อบันทึกข้อมูลจาก Arduino

บทช่วยสอนนี้มีไว้สำหรับผู้ที่ไม่มีประสบการณ์ในการติดตั้งฮาร์ดแวร์หรือซอฟต์แวร์ใหม่ นับประสา Python หรือ Linux

สมมติว่าคุณได้สั่งซื้อ Raspberry Pi (RPi) ด้วยการ์ด SD (อย่างน้อย 8GB ฉันใช้ 16GB ประเภท I) และแหล่งจ่ายไฟ (5V อย่างน้อย 2.5A) วันนี้ คุณตัดสินใจตั้งค่าและบันทึกข้อมูลจาก Arduinos เริ่มกันเลย!

บทช่วยสอนประกอบด้วยการตั้งค่า Raspberry Pi ตั้งแต่เริ่มต้น รวมถึงเดสก์ท็อประยะไกล การเตรียม Arduino พร้อมเซ็นเซอร์อุณหภูมิ 18B20 และการดำเนินการสคริปต์ Python ใน Raspberry Pi เพื่อรวบรวมและบันทึกข้อมูล ฉันอัปเดตโพสต์ด้วยการเพิ่มการแชร์ samba เพื่อโอนไฟล์ระหว่างคอมพิวเตอร์โฮสต์ (พีซีของคุณ) และ Raspberry Pi

ขั้นตอนที่ 1: เตรียม Raspberry Pi

เตรียมราสเบอร์รี่ Pi
เตรียมราสเบอร์รี่ Pi
เตรียมราสเบอร์รี่ Pi
เตรียมราสเบอร์รี่ Pi
เตรียมราสเบอร์รี่ Pi
เตรียมราสเบอร์รี่ Pi
เตรียมราสเบอร์รี่ Pi
เตรียมราสเบอร์รี่ Pi
  1. ดาวน์โหลดระบบปฏิบัติการสำหรับ RPi ฉันแนะนำ Raspbian เวอร์ชันเต็มเช่นนี้ ที่นี่
  2. สมมติว่าคุณมีคอมพิวเตอร์ทำงานบน Windows ให้ดาวน์โหลดซอฟต์แวร์ Rufus เพื่อเขียนภาพลงในการ์ด SD เลื่อนลงและรับรูฟัส 3.0 (มิถุนายน 2018)
  3. เปิดเครื่องรูดไฟล์ Raspbian (4.6 GB) และเลือกการ์ด SD เป้าหมายอย่างระมัดระวัง ใช้เวลาประมาณ 3 นาทีในการเขียนภาพลงในการ์ดให้เสร็จสมบูรณ์
  4. ใส่การ์ด SD ลงในช่อง, เสียบสายไฟเข้ากับพอร์ต micro USB, จอภาพพร้อมสาย HDMI, แป้นพิมพ์, เมาส์เป็นอุปกรณ์เสริม
  5. รอจนกว่า RPi จะบู๊ตและแสดงเดสก์ท็อป กดปุ่ม Window ไปที่ Accessories/Terminal และ Enter
  6. กำหนดค่า RPi ตามประเภท:

sudo raspi-config

7. เปลี่ยนสองสิ่งในการกำหนดค่า RPi:

  • ใน 1. เปลี่ยนรหัสผ่าน
  • ใน 2. ตัวเลือกเครือข่าย: เปลี่ยนชื่อโฮสต์ (บางอย่างที่ไม่เหมือนใคร ของฉันคือ rpi1001) และ wifi SSID และรหัสผ่าน
  • ใน 4. ตัวเลือกการระบุตำแหน่ง: เปลี่ยนเขตเวลา, คีย์บอร์ด, สถานที่
  • ใน 5. ตัวเลือกการเชื่อมต่อ: เปิดใช้งาน SSH (เพื่อเข้าสู่ระบบผ่านบรรทัดคำสั่ง), เปิดใช้งาน VNC (สำหรับเดสก์ท็อประยะไกล)
  • ใน 7: ตัวเลือกขั้นสูง: ขยายระบบไฟล์:
  • รีบูต
  • หลังจากบูทเครื่องแล้ว: จดที่อยู่ IP โดยเรียกใช้

sudo ifconfig

หากใช้อีเธอร์เน็ต IP ควรเป็นบล็อกแรก หากใช้ Wifi IP จะอยู่บนบล็อกที่สาม เช่น 192.168.1.40 ให้เรียกใช้คำสั่งนี้เพื่ออัปเดต Linux distro:

sudo apt-get update && sudo apt-get upgrade –y && sudo poweroff

อันสุดท้ายจะปิด RPi หลังจากเสร็จสิ้นการอัพเดต

8. หากคุณลืมโน้ต IP ของ RPi หรือเพิ่งเปลี่ยน ให้ใช้ PowerShell (พิมพ์ PowerShell เพื่อค้นหาช่องใน Windows)

ใน PowerShell เพื่อ ping Rpi: p ing rpi1001.local –4 รับสิ่งนี้ 192.168.1.40 rpi1001 เป็นชื่อโฮสต์ของฉันสำหรับ Rpi ของฉัน

9. ติดตั้ง VNCViewer ซอฟต์แวร์นี้ทำงานเหมือน TeamViewer หรือ Desktop Remote บน Windows (เฉพาะ Win 10 Pro เท่านั้นที่มีคุณลักษณะเดสก์ท็อประยะไกล)

ติดตั้งบนเครื่อง Windows ของคุณในช่องค้นหาที่ด้านบนของ VNCViewer พิมพ์ IP ของ RPi (192.168.1.40) หรือชื่อโฮสต์ของ RPi (ของฉันคือ rpi1001.local) และ Enter ป้อนชื่อของคุณ รหัสผ่านของ RPi เลือก 'จำรหัสผ่าน' หากต้องการ หากทุกอย่างเป็นไปด้วยดี คุณควรเห็นเดสก์ท็อป Rpi แบบป๊อปอัป

10. ในการถ่ายโอนไฟล์จากหรือไปยัง TeamView วิธีที่ง่ายที่สุดในการใช้การถ่ายโอนไฟล์ในตัวโดย VNCView:

และคุณสามารถใช้ Raspberry เพื่อรวบรวมข้อมูลสำหรับคุณ และเข้าสู่ระบบเพื่อรับข้อมูลเมื่อจำเป็น

ขั้นตอนที่ 2: เตรียมตัวอย่างง่ายๆ เพื่อรวบรวมข้อมูลจาก Arduino

เตรียมตัวอย่างง่ายๆ ในการรวบรวมข้อมูลจาก Arduino
เตรียมตัวอย่างง่ายๆ ในการรวบรวมข้อมูลจาก Arduino
เตรียมตัวอย่างง่ายๆ ในการรวบรวมข้อมูลจาก Arduino
เตรียมตัวอย่างง่ายๆ ในการรวบรวมข้อมูลจาก Arduino

สมมติว่าคุณต้องการเก็บอุณหภูมิจากเซ็นเซอร์ 4 ตัว ในตัวอย่างนี้ ฉันใช้ 18B20 ซึ่งเป็นเซ็นเซอร์อุณหภูมิยอดนิยม ตัวเลือกอื่นๆ ได้แก่ TMP35, 36 ตระกูลหรือเทอร์มิสเตอร์

สายไฟรวมอยู่ด้านบน ยุค 18B20 แบ่งปันสาย (หรือบัส) และนี่คือรหัส Arduino บน Github ไฟล์แนบในไฟล์ด้านล่างประกอบด้วยรหัสและแผนผังการเดินสายด้วย

ติดตั้งไดรเวอร์ USB สำหรับ Arduino ใน Windows ด้วย Arduino 'โคลน' ส่วนใหญ่ใช้ไดรเวอร์ USB CH341 คนขับอยู่ที่นี่

ติดตั้งไดรเวอร์เมื่อเสียบ Arduino กับ USB ของ Windows ควรรู้จักไดรเวอร์และกำหนดพอร์ต COM (ของฉันคือ COM4)

Serial Monitor ควรแสดงผลเหมือนภาพด้านบน

ขั้นตอนที่ 3: บูตเครื่อง RPi โดยถอดปลั๊กและเสียบปลั๊กไฟเข้ากับ RPi เริ่ม VNCViewer เข้าสู่ระบบ RPi. ของคุณ

บูตเครื่อง RPi โดยถอดปลั๊กและเสียบปลั๊กไฟเข้ากับ RPi เริ่ม VNCViewer เข้าสู่ระบบ RPi. ของคุณ
บูตเครื่อง RPi โดยถอดปลั๊กและเสียบปลั๊กไฟเข้ากับ RPi เริ่ม VNCViewer เข้าสู่ระบบ RPi. ของคุณ
บูตเครื่อง RPi โดยถอดปลั๊กและเสียบปลั๊กไฟเข้ากับ RPi เริ่ม VNCViewer เข้าสู่ระบบ RPi. ของคุณ
บูตเครื่อง RPi โดยถอดปลั๊กและเสียบปลั๊กไฟเข้ากับ RPi เริ่ม VNCViewer เข้าสู่ระบบ RPi. ของคุณ
บูตเครื่อง RPi โดยถอดปลั๊กและเสียบปลั๊กไฟเข้ากับ RPi เริ่ม VNCViewer เข้าสู่ระบบ RPi. ของคุณ
บูตเครื่อง RPi โดยถอดปลั๊กและเสียบปลั๊กไฟเข้ากับ RPi เริ่ม VNCViewer เข้าสู่ระบบ RPi. ของคุณ
บูตเครื่อง RPi โดยถอดปลั๊กและเสียบปลั๊กไฟเข้ากับ RPi เริ่ม VNCViewer เข้าสู่ระบบ RPi. ของคุณ
บูตเครื่อง RPi โดยถอดปลั๊กและเสียบปลั๊กไฟเข้ากับ RPi เริ่ม VNCViewer เข้าสู่ระบบ RPi. ของคุณ

โอนสคริปต์ Python โดยใช้เครื่องมือ VNCViewer มีแบนเนอร์อยู่ใกล้ด้านบนของ VNCViewer ให้มองหาปุ่มลูกศรสองปุ่ม ในการถ่ายโอนข้อมูลจาก RPi ไปยัง Windows ให้ใช้สัญลักษณ์การถ่ายโอนไฟล์ใน VNC ที่ด้านบนขวา (ใกล้กับสัญลักษณ์ Wifi) บนเดสก์ท็อปของ RPi

Raspberry ทำงานบน Linux และมีการติดตั้ง Python 2 และ 3 ตามค่าเริ่มต้น คุณเพียงแค่ต้องติดตั้งไลบรารี่ Python ที่เรียกว่า pyserial เพื่อรวบรวมข้อมูลที่พิมพ์จากซีเรียลไลน์

ในการติดตั้ง python Serial ให้พิมพ์บรรทัดนี้ไปที่ Linux terminal

sudo apt-get ติดตั้ง python3-serial

  • ใน Windows: พิมพ์ PowellShell นี้:
  • pip.exe ติดตั้ง pyserlal

จากนั้นดาวน์โหลดสคริปต์และบันทึกลงในเดสก์ท็อปของ RPi

ในการรันสคริปต์ ขั้นแรกให้ทำให้สามารถเรียกใช้งานได้โดย:

sudo chown u+x recordSerial.py

อัปโหลดโค้ด Arduino ไปยังบอร์ด Arduino จากนั้นเสียบสาย USB กับ USB ตรวจสอบพอร์ตโดย:

  • บน Linux ให้พิมพ์สิ่งนี้ลงในเทอร์มินัล: ls /dev/ttyUSB*
  • บน Wndows: ไปที่ Device Manager ตรวจสอบ COM #

หากสคริปต์ถูกแก้ไขบน Windows คุณอาจต้องเรียกใช้สคริปต์ Python เพื่อ dos2unix เพื่อลบอักขระลงท้ายบรรทัดแปลก ๆ โดย Windows ติดตั้งโดย

sudo apt-get ติดตั้ง dos2unix

และแปลงสคริปต์โดยเรียกใช้สิ่งนี้ในเทอร์มินัล

dos2unix recordSerial.py

แก้ไขพอร์ตจริงในสคริปต์โดยโปรแกรมแก้ไขข้อความ:

sudo nano recordSerial.py

จากนั้นเรียกใช้./recordSerial.py yourfilename.txt

สคริปต์ Python จะบันทึกข้อมูลจาก RAM ลงในดิสก์ทุกๆ 10 บรรทัด ซึ่งสามารถปรับเปลี่ยนได้

หากต้องการหยุดบันทึก ให้กด Ctrl + C

สคริปต์สามารถเรียกใช้บน Windows (ดับเบิลคลิก) ชื่อของข้อมูลบันทึกเป็นค่าเริ่มต้นซึ่งรวมถึงการประทับเวลา

หากคุณเป็น PowerShell คุณสามารถป้อนชื่อไฟล์ที่คุณกำหนดเองได้

python.exe recordSerial.py น่ากลัว.txt

ไม่ใช่ 18B20 ทั้งหมดเหมือนกัน อ่านข่าว!

ฉันผลักรหัสไปที่ GitHub เช่นกัน

หวังว่าบทช่วยสอนนี้จะเป็นประโยชน์!

ขั้นตอนที่ 4: ติดตั้ง Samba เพื่อแชร์โฟลเดอร์

ติดตั้ง Samba เพื่อแชร์โฟลเดอร์
ติดตั้ง Samba เพื่อแชร์โฟลเดอร์
ติดตั้ง Samba เพื่อแชร์โฟลเดอร์
ติดตั้ง Samba เพื่อแชร์โฟลเดอร์
ติดตั้ง Samba เพื่อแชร์โฟลเดอร์
ติดตั้ง Samba เพื่อแชร์โฟลเดอร์

ขั้นตอนนี้จะนำคุณไปสู่การตั้งค่าพื้นฐานบางอย่างเพื่อให้มีโฟลเดอร์ที่ใช้ร่วมกันที่โฮสต์บน Raspberry Pi ที่สามารถเข้าถึงได้จากคอมพิวเตอร์เครื่องอื่น

ขั้นแรก ติดตั้ง samba ซึ่งเป็นโปรแกรมสำหรับแชร์และจัดการโฟลเดอร์แชร์ในเครือข่าย:

sudo apt-get ติดตั้ง samba

สร้างโฟลเดอร์ที่ใช้ร่วมกัน

mkdir ~/Desktop/sambaShare

แก้ไขไฟล์การกำหนดค่าสำหรับแซมบ้าโดย:

sudo samba /etc/samba/smb.conf

เพิ่มบรรทัดต่อไปนี้ต่อท้ายไฟล์:

[sambaShare] ความคิดเห็น = แชร์โฟลเดอร์บนเส้นทาง RPI การวิจัย = /home/pi/Desktop/sambaShare เรียกดูได้ = ใช่ อ่านอย่างเดียว = ไม่สามารถเขียนได้ = ใช่ สาธารณะ = ใช่ สร้างหน้ากาก = 0777 rectory mask = 0777 แขก ok = ใช่

หากคุณมีปัญหาในการเขียนบน windows ให้บังคับโดยเพิ่มบรรทัดนี้ต่อท้ายไฟล์: force user = pi

บน Linux คุณอาจต้องใช้ผู้ใช้รูท (ฉันจะโพสต์ปัญหาเมื่อพบ)

ถัดไป เพิ่มผู้ใช้ใน samba และสร้างรหัสผ่านด้วย:

sudo smbpasswd -a pi

จากนั้นป้อนรหัสผ่านสำหรับแซมบ้า (อาจเหมือนหรือต่างจากรหัสผ่านสำหรับผู้ใช้ pi ในระบบ)

ทดสอบว่าไฟล์ปรับแต่งไม่เป็นไร

testparm

กด Ctrl+X เพื่อบันทึก จากนั้นเริ่มบริการ samba ใหม่โดย:

sudo systemctl รีสตาร์ท smbd

บนคอมพิวเตอร์โฮสต์ สมมติว่า Linux:

ถ้าไม่ใช่ ติดตั้ง samba plus sambaclient และ cifs เพื่อรองรับการแชร์ไดรฟ์ โปรดดำเนินการดังกล่าวโดยเรียกใช้:

sudo apt-get ติดตั้ง samba smbclient cifs-utils

ตรวจสอบว่าโฟลเดอร์ที่แชร์บน RPI พร้อมหรือไม่โดย:

sudo smbclient -L yourRPI_IP

หากคุณเห็นแชร์ไดรฟ์ ให้สร้างจุดเชื่อมต่อบน Linux:

sudo mkdir /mnt/researchRPi

sudo chown ผู้ใช้:usergroup -R /mnt/researchRPI

ผู้ใช้ usergroup คือผู้ใช้ Linux และชื่อกลุ่มของคุณ

จากนั้นเมานต์แชร์โดย:

sudo mount -f cifs -o username=pi //your_rpi_IP/sambaShare /mnt/researchRPi

ป้อนรหัสผ่านของคุณ และสร้างซอฟต์ลิงก์ไปยังเดสก์ท็อปของคุณ:

sudo ln -s /mnt/researchRPi ~/Desktop/researchRPi

หากคุณมีปัญหากับสิทธิ์ในการอ่าน-เขียนในโฟลเดอร์แชร์ ให้ทดลองด้วยสิทธิ์ที่ไม่รัดกุม:

บน PI:

sudo chmod -R 776 ~/Desktop/sambaShare

บน Windows มันง่ายยิ่งขึ้นไปอีก

ไปที่ My Computer และแมปโฟลเดอร์ จากนั้นป้อน IP ของ RPI โฟลเดอร์ที่แชร์จะปรากฏขึ้น ฉันเชื่อว่ามีบางอย่างบน Mac ที่คุณสามารถเรียกดูโฟลเดอร์ที่แชร์บนเครือข่ายได้

ขั้นตอนที่ 5: ข้อมูลอ้างอิงที่เป็นประโยชน์

ด้านล่างนี้เป็นข้อมูลอ้างอิงที่มีประโยชน์บางส่วน:

  1. มีวิธีการอื่นที่นี่โดยใช้ไลบรารี pyserial และ numpy
  2. ภาพรวมของการสื่อสารทางอิเล็กทรอนิกส์เริ่มต้นจากการติดตั้ง Arduino IDE ข้อมูลอ้างอิงที่ดีหากคุณต้องการดำน้ำลึก
  3. การเขียนสั้นๆ แต่เป็นรูปธรรม ตัวเลือกที่สั้นและเพียงพอสำหรับทางเลือกอื่นในการบันทึกข้อมูล

แนะนำ: