- วัสดุที่จำเป็น
- การเชื่อมต่อ Raspberry Pi กับ LoRa
- การเชื่อมต่อ Arduino กับ LoRa
- pyLoRa สำหรับ Raspberry Pi
- การกำหนดค่า Raspberry Pi สำหรับโมดูล LoRa
- การเขียนโปรแกรม Raspberry Pi สำหรับ LoRa
- Arduino Code สำหรับ LoRa เพื่อสื่อสารกับ Raspberry Pi
- ทดสอบการสื่อสาร LoRa ระหว่าง Raspberry Pi และ Arduino
LoRaได้รับความนิยมมากขึ้นเรื่อย ๆ จากการถือกำเนิดของ IoT, Connected Cars, M2M, Industry 4.0 เป็นต้นเนื่องจากความสามารถในการสื่อสารในระยะทางไกลโดยใช้พลังงานน้อยมากนักออกแบบจึงควรใช้เพื่อส่ง / รับข้อมูลจากสิ่งที่ขับเคลื่อนด้วยแบตเตอรี่ เราได้กล่าวถึงพื้นฐานของ LoRa และวิธีใช้ LoRa กับ Arduino แล้ว แม้ว่าเทคโนโลยีนี้มีไว้สำหรับ LoRa Node เพื่อสื่อสารกับเกตเวย์ LoRa แต่ก็มีหลายสถานการณ์ที่ LoRa Node ต้องสื่อสารกับ LoRa Node อื่นเพื่อแลกเปลี่ยนข้อมูลในระยะทางไกล ดังนั้นในบทช่วยสอนนี้เราจะเรียนรู้ วิธีใช้โมดูล LoRa SX1278 กับ Raspberry piเพื่อสื่อสารกับ SX1278 อื่นที่เชื่อมต่อกับไมโครคอนโทรลเลอร์เช่น Arduino วิธีนี้มีประโยชน์ในหลาย ๆ ที่เนื่องจาก Arduino สามารถทำหน้าที่เป็นเซิร์ฟเวอร์เพื่อดึงข้อมูลจากเซ็นเซอร์และส่งไปยัง Pi ในระยะทางไกลผ่าน LoRa จากนั้น Pi ที่ทำหน้าที่เป็นไคลเอนต์จะสามารถรับข้อมูลเหล่านี้และอัปโหลดไปยัง เนื่องจากสามารถเข้าถึงอินเทอร์เน็ตได้ ฟังดูน่าสนใจใช่มั้ย? มาเริ่มกันเลย
วัสดุที่จำเป็น
- SX1278 433MHz โมดูล LoRa - 2 Nos
- เสาอากาศ LoRa 433MHz - 2Nos
- Arduino UNO- หรือรุ่นอื่น ๆ
- ราสเบอร์รี่ Pi 3
สันนิษฐานว่า Raspberry Pi ของคุณมีแฟลชระบบปฏิบัติการอยู่แล้วและสามารถเชื่อมต่ออินเทอร์เน็ตได้ หากไม่เป็นเช่นนั้นให้ทำตามบทแนะนำการเริ่มต้นใช้งาน Raspberry Pi ก่อนดำเนินการต่อ ที่นี่เราจะใช้ Rasbian เจสซีติดตั้ง Raspberry Pi 3
คำเตือน: ใช้โมดูล LoRa SX1278 ของคุณกับเสาอากาศ 433 MHz เสมอ มิฉะนั้นโมดูลอาจได้รับความเสียหาย
การเชื่อมต่อ Raspberry Pi กับ LoRa
ก่อนที่เราจะเข้าสู่แพ็คเกจซอฟต์แวร์เรามาเตรียมฮาร์ดแวร์ให้พร้อม SX1278เป็น 16 ขา โมดูล Loraที่ติดต่อสื่อสารโดยใช้ SPI บน 3.3V ลอจิก Raspberry pi ยังทำงานในระดับลอจิก 3.3V และยังมีพอร์ต SPI ในตัวและตัวควบคุม 3.3V เราจึงสามารถเชื่อมต่อโมดูล LoRa กับ Raspberry Pi ได้โดยตรง ตารางการเชื่อมต่อแสดงไว้ด้านล่างราสเบอร์รี่ Pi | Lora - โมดูล SX1278 |
3.3V | 3.3V |
พื้น | พื้น |
GPIO 10 | MOSI |
GPIO 9 | มิโซะ |
GPIO 11 | SCK |
GPIO 8 | Nss / เปิดใช้งาน |
GPIO 4 | DIO 0 |
GPIO 17 | DIO 1 |
GPIO 18 | DIO 2 |
GPIO 27 | DIO 3 |
GPIO 22 | RST |
คุณยังสามารถใช้แผนภาพวงจรด้านล่างเพื่ออ้างอิง โปรดทราบว่าแผนภาพวงจรถูกสร้างขึ้นโดยใช้โมดูล RFM9xซึ่งคล้ายกับโมดูล SX1278มากดังนั้นลักษณะที่ปรากฏอาจแตกต่างกันในภาพด้านล่าง
การเชื่อมต่อค่อนข้างตรงไปตรงมาปัญหาเดียวที่คุณอาจประสบคือ SX1278 ไม่รองรับ breadboard ดังนั้นคุณต้องใช้สายเชื่อมต่อโดยตรงเพื่อทำการเชื่อมต่อหรือใช้เขียงหั่นขนมขนาดเล็กสองตัวดังที่แสดงด้านล่าง มีเพียงไม่กี่คนที่แนะนำให้จ่ายไฟให้กับโมดูล LoRa ด้วยรางไฟ 3.3V แยกต่างหากเนื่องจาก Pi อาจไม่สามารถจ่ายกระแสไฟได้เพียงพอ อย่างไรก็ตาม Lora เป็นโมดูลพลังงานต่ำควรใช้กับราง 3.3V ของ Pi ฉันได้ทดสอบแบบเดียวกันและพบว่ามันใช้งานได้โดยไม่มีปัญหาใด ๆ แต่ยังคงใช้เกลือเล็กน้อย การตั้งค่าการเชื่อมต่อLoRa กับ Raspberry pi ของฉันมีลักษณะดังนี้ด้านล่าง
การเชื่อมต่อ Arduino กับ LoRa
การเชื่อมต่อสำหรับโมดูล Arduino ยังคงเหมือนเดิมกับที่เราใช้ในบทช่วยสอนก่อนหน้านี้ ข้อแตกต่างเพียงอย่างเดียวคือแทนที่จะใช้ไลบรารีจาก Sandeep Mistry เราจะใช้ไลบรารี Rspreal ตามหัว Radio ซึ่งเราจะพูดถึงในภายหลังในโครงการนี้ วงจรให้ด้านล่าง
อีกครั้งคุณสามารถใช้ขา 3.3V บน Arduino Uno หรือใช้ตัวควบคุม 3.3V แยกต่างหาก ในโครงการนี้ฉันได้ใช้ตัวควบคุมแรงดันไฟฟ้าในตัว ตารางการเชื่อมต่อพินมีให้ด้านล่างเพื่อช่วยให้คุณทำการเชื่อมต่อได้อย่างง่ายดาย
โมดูล LoRa SX1278 | บอร์ด Arduino UNO |
3.3V | 3.3V |
Gnd | Gnd |
En / Nss | D10 |
G0 / DIO0 | D2 |
SCK | D13 |
มิโซะ | D12 |
MOSI | D11 |
RST | D9 |
เนื่องจากโมดูลไม่พอดีกับเขียงหั่นขนมฉันจึงใช้สายเชื่อมต่อโดยตรงเพื่อทำการเชื่อมต่อ เมื่อทำการเชื่อมต่อแล้วการตั้งค่าArduino LoRaจะมีลักษณะดังนี้ด้านล่าง
pyLoRa สำหรับ Raspberry Pi
มีแพ็คเกจ python มากมายที่คุณสามารถใช้กับ LoRa ได้ นอกจากนี้ Raspberry Pi ยังใช้เป็น LoRaWAN เพื่อรับข้อมูลจากโหนด LoRa หลายโหนด แต่ในโครงการนี้เรามีเป้าหมายที่จะทำการสื่อสารแบบ Peer to Peer ระหว่างโมดูล Raspberry Pi สองโมดูลหรือระหว่าง Raspberry Pi และ Arduino ดังนั้นฉันจึงตัดสินใจใช้แพ็คเกจ pyLoRa มีโมดูล rpsreal LoRa Arduino และ rpsreal LoRa Raspberry pi ซึ่งสามารถใช้กับ Arduino และสภาพแวดล้อม Raspberry Pi สำหรับตอนนี้เรามาเน้นที่สภาพแวดล้อม Raspberry Pi
การกำหนดค่า Raspberry Pi สำหรับโมดูล LoRa
อย่างที่บอกว่าก่อนหน้านี้ Lora โมดูลการทำงานกับการสื่อสาร SPI ดังนั้นเราต้องเปิดใช้งานบน SPI Pi แล้วติดตั้ง pylora แพคเกจทำตามขั้นตอนด้านล่างเพื่อทำเช่นเดียวกันหลังจากเปิดหน้าต่างเทอร์มินัลของ Pi อีกครั้งฉันใช้สีโป๊วเพื่อเชื่อมต่อกับ Pi ของฉันคุณสามารถใช้วิธีที่สะดวกของคุณ
ขั้นตอนที่ 1: เข้าสู่หน้าต่างการกำหนดค่าโดยใช้คำสั่งต่อไปนี้ เพื่อรับหน้าต่างด้านล่าง
sudo raspi-config
ขั้นตอนที่ 2: ไปที่ตัวเลือกการเชื่อมต่อและเปิดใช้งาน SPI ดังที่แสดงในภาพด้านล่าง เราต้องเปิดใช้งานอินเทอร์เฟซ SPIเพราะอย่างที่เราพูดถึง LCD และ PI สื่อสารผ่านโปรโตคอล SPI
ขั้นตอนที่ 3:บันทึกการเปลี่ยนแปลงและกลับไปที่หน้าต่างเทอร์มินัล ตรวจสอบให้แน่ใจว่าได้อัปเดต pip และ python จากนั้นติดตั้งแพ็คเกจ RPi.GPIO โดยใช้คำสั่งต่อไปนี้
pip ติดตั้ง RPi.GPIO
คลาสแพ็กเกจนี้จะช่วยให้เราควบคุมพิน GPIO บน Pi หากติดตั้งสำเร็จหน้าจอของคุณจะมีลักษณะเช่นนี้
ขั้นตอนที่ 4:ดำเนินการติดตั้งแพ็คเกจ spidev ในทำนองเดียวกันโดยใช้คำสั่งต่อไปนี้ Spidev เป็นการผูกไพ ธ อนสำหรับ Linux ซึ่งสามารถใช้เพื่อทำการสื่อสาร SPI บน Raspberry Pi
pip ติดตั้ง spidev
หากการติดตั้งสำเร็จเทอร์มินัลควรมีลักษณะดังนี้ด้านล่าง
ขั้นตอนที่ 5:ถัดไปให้ติดตั้งแพ็คเกจ pyLoRaโดยใช้คำสั่ง pip ต่อไปนี้ แพคเกจนี้ติดตั้งรุ่นวิทยุที่เกี่ยวข้องกับ LoRa
pip ติดตั้ง pyLoRa
หากการติดตั้งสำเร็จคุณจะเห็นหน้าจอต่อไปนี้
แพ็คเกจ PyLoRa ยังรองรับการสื่อสารแบบเข้ารหัสซึ่งสามารถใช้กับ Arduino และ Raspberry Pi ได้อย่างราบรื่น ซึ่งจะช่วยเพิ่มความปลอดภัยของข้อมูลในการสื่อสารของคุณ แต่คุณต้องติดตั้งแพ็คเกจแยกต่างหากหลังจากขั้นตอนนี้ซึ่งฉันไม่ได้ทำเนื่องจากการเข้ารหัสไม่อยู่ในขอบเขตของบทช่วยสอนนี้ คุณสามารถติดตามลิงก์ Github ด้านบนเพื่อดูรายละเอียดเพิ่มเติม
หลังจากขั้นตอนนี้คุณสามารถเพิ่มข้อมูลเส้นทางแพคเกจเพื่อปี่และลองกับโปรแกรมหลามได้รับในตอนท้ายแต่ฉันไม่สามารถเพิ่มเส้นทางได้สำเร็จดังนั้นจึงต้องดาวน์โหลดไลบรารีด้วยตนเองและใช้แบบเดียวกันกับโปรแกรมของฉันโดยตรง ผมจึงต้องดำเนินการตามขั้นตอนต่อไปนี้
ขั้นตอนที่ 6:ดาวน์โหลดและติดตั้งแพ็คเกจ python-rpi.gpio และแพ็คเกจ spidevโดยใช้คำสั่งด้านล่าง
sudo apt-get ติดตั้ง python-rpi.gpio python3-rpi.gpio sudo apt-get install python-spidev python3-spidev
หน้าต่างเทอร์มินัลควรแสดงสิ่งนี้หลังจากการติดตั้งทั้งสองครั้ง
ขั้นตอนที่ 7:ติดตั้งคอมไพล์ด้วยแล้วใช้เพื่อโคลนไดเร็กทอรี python สำหรับ Raspberry Pi ของเรา คุณสามารถทำได้โดยใช้คำสั่งต่อไปนี้
sudo apt-get ติดตั้ง git sudo git clone
เมื่อขั้นตอนนี้เสร็จสมบูรณ์แล้วคุณควรจะหาไดเรกทอรีย่อย SX127x ในโฟลเดอร์บ้านราสเบอร์รี่ ซึ่งจะมีไฟล์ที่จำเป็นทั้งหมดที่เชื่อมโยงกับไลบรารี
การเขียนโปรแกรม Raspberry Pi สำหรับ LoRa
ในการสื่อสาร LoRa แบบเพียร์ทูเพียร์โมดูลที่ส่งข้อมูลเรียกว่าเซิร์ฟเวอร์และโมดูลที่รับข้อมูลเรียกว่าไคลเอนต์ ในกรณีส่วนใหญ่ Arduino จะใช้ในภาคสนามโดยมีเซ็นเซอร์เพื่อวัดข้อมูลและ Pi จะใช้เพื่อรับข้อมูลเหล่านี้ ดังนั้นฉันจึงตัดสินใจใช้Raspberry Pi เป็นไคลเอนต์และ Arduino เป็นเซิร์ฟเวอร์ในบทช่วยสอนนี้ โปรแกรมไคลเอนต์ราสเบอร์รี่ Pi สมบูรณ์สามารถพบได้ที่ด้านล่างของหน้านี้ ที่นี่ฉันจะพยายามอธิบายบรรทัดสำคัญในโปรแกรม
ข้อควรระวัง:ตรวจสอบว่าไฟล์โปรแกรมอยู่ในไดเร็กทอรีเดียวกับที่มีโฟลเดอร์ไลบรารี SX127x คุณสามารถคัดลอกโฟลเดอร์นี้และใช้งานได้ทุกที่หากคุณต้องการพอร์ตโครงการ
โปรแกรมค่อนข้างง่ายเราต้องตั้งค่าโมดูล LoRa ให้ทำงานใน 433Mhz จากนั้นฟังแพ็กเก็ตที่เข้ามา หากเราได้รับสิ่งใดก็ตามเราจะพิมพ์ลงบนคอนโซล เช่นเคยเราเริ่มต้นโปรแกรมด้วยการนำเข้าไลบรารี python ที่จำเป็น
จากเวลานำเข้า sleep จาก SX127x.LoRa import * จาก SX127x.board_config import BOARD BOARD.setup ()
ในกรณีนี้จะใช้แพ็กเกจเวลาเพื่อสร้างความล่าช้าแพ็คเกจ Lora จะใช้สำหรับการสื่อสาร LoRa และ board_config ใช้เพื่อตั้งค่าบอร์ดและพารามิเตอร์ LoRa นอกจากนี้เรายังติดตั้งคณะกรรมการโดยใช้ BOARD.setup () ฟังก์ชั่น
ต่อไปเราจะสร้างคลาส Python LoRa ที่มีคำจำกัดความสามคำ เนื่องจากเราเพียงแค่เยื้องเพื่อให้โปรแกรมทำงานในฐานะไคลเอนต์ราสเบอร์รี่คลาสจึงมีเพียงสามฟังก์ชันเท่านั้นคือคลาส init คลาสเริ่มต้นและคลาส on_rx_done คลาส init เริ่มต้นโมดูล LoRa ใน 433MHz ด้วยแบนด์วิดท์ 125kHz ตามที่ตั้งไว้ในเมธอด set_pa_config แล้วมันยังทำให้โมดูลในโหมดสลีปเพื่อประหยัดการใช้พลังงาน
# ค่าเริ่มต้นช่วงกลางหลังจากเริ่มต้นคือ 434.0MHz, Bw = 125 kHz, Cr = 4/5, Sf = 128chips / สัญลักษณ์ CRC บน 13 dBm lora.set_pa_config (pa_select = 1) def __init __ (self, verbose = False): super (LoRaRcvCont, self).__ init __ (verbose) self.set_mode (MODE.SLEEP) self.set_dio_mapping (* 6)
ฟังก์ชั่นเริ่มต้นเป็นที่ที่เรากำหนดค่าโมดูลที่เป็นตัวรับและได้รับเช่น RSSI (ที่ได้รับความแรงของสัญญาณบ่งชี้) สถานะความถี่ในการดำเนินงาน ฯลฯ เราตั้งค่าโมดูลให้ทำงานในโหมดตัวรับสัญญาณต่อเนื่อง (RXCONT) จากโหมดสลีปจากนั้นใช้ลูป while เพื่ออ่านค่าเช่น RSSI และสถานะโมเด็ม เรายังล้างข้อมูลในบัฟเฟอร์อนุกรมไปยังเทอร์มินัล
เริ่มต้น def (ตัวเอง): self.reset_ptr_rx () self.set_mode (MODE.RXCONT) ในขณะที่ True: sleep (.5) rssi_value = self.get_rssi_value () status = self.get_modem_status () sys.stdout.flush ()
ในที่สุด on_rx_done ฟังก์ชั่นได้รับการดำเนินการหลังจากแพ็คเก็ตที่เข้ามาจะถูกอ่านในฟังก์ชันนี้ค่าที่ได้รับจะถูกย้ายไปยังตัวแปรที่เรียกว่า payload จากบัฟเฟอร์ Rx หลังจากตั้งค่าแฟล็กการรับสูง จากนั้นค่าที่ได้รับจะถูกถอดรหัสด้วย utf-8 เพื่อพิมพ์ข้อมูลที่ผู้ใช้อ่านได้บนเชลล์ เรายังทำให้โมดูลกลับเข้าสู่โหมดสลีปจนกว่าจะได้รับค่าอื่น
def on_rx_done (ตัวเอง): พิมพ์ ("\ nReceived:") self.clear_irq_flags (RxDone = 1) payload = self.read_payload (nocheck = True) พิมพ์ (ไบต์ (payload).decode ("utf-8", 'ละเว้น')) self.set_mode (MODE.SLEEP) self.reset_ptr_rx () self.set_mode (MODE.RXCONT)
ส่วนที่เหลือของโปรแกรมที่เป็นเพียงการพิมพ์ค่าที่ได้รับบนคอนโซลและยุติโปรแกรมโดยใช้แป้นพิมพ์ขัดจังหวะเราตั้งค่าบอร์ดอีกครั้งในโหมดสลีปแม้ว่าจะปิดโปรแกรมเพื่อประหยัดพลังงาน
ลอง: lora.start () ยกเว้น KeyboardInterrupt: sys.stdout.flush () พิมพ์ ("") sys.stderr.write ("KeyboardInterrupt \ n") ในที่สุด: sys.stdout.flush () พิมพ์ ("") lora set_mode (MODE.SLEEP) BOARD.teardown ()
Arduino Code สำหรับ LoRa เพื่อสื่อสารกับ Raspberry Pi
ดังที่ได้กล่าวไว้ก่อนหน้านี้รหัส rpsreal รองรับทั้ง Arduino และ Pi และด้วยเหตุนี้การสื่อสารระหว่าง Arduino และ Pi จึงเป็นไปได้ ทำงานบนพื้นฐานของห้องสมุด Radiohead จาก AirSpayce ดังนั้นคุณต้องติดตั้งไลบรารีหัววิทยุก่อนเข้ากับ Arduino IDE ของคุณ
โดยไปที่หน้า Github และดาวน์โหลดไลบรารีในโฟลเดอร์ ZIP จากนั้นวางไว้ในโฟลเดอร์ไลบรารีของ Arduino IDE ของคุณ ตอนนี้รีสตาร์ท Arduino IDE แล้วคุณจะพบไฟล์ตัวอย่างสำหรับไลบรารีหัววิทยุที่นี่เราจะตั้งโปรแกรม Arduino ให้ทำงานเป็นเซิร์ฟเวอร์ LoRaเพื่อส่งแพ็กเก็ตทดสอบเช่น 0 ถึง 9 โค้ดที่สมบูรณ์เพื่อทำเช่นเดียวกันสามารถพบได้ที่ด้านล่างของหน้านี้เช่นเคย ที่นี่ฉันจะอธิบายบรรทัดสำคัญบางส่วนในโปรแกรม
เราเริ่มโปรแกรมโดยการนำเข้าไลบรารี SPI (ติดตั้งโดยค่าเริ่มต้น) เพื่อใช้โปรโตคอล SPI จากนั้นไลบรารี RH_RF95 จาก Radio head เพื่อทำการสื่อสาร LoRa จากนั้นเราจะกำหนดพินของ Arduino ที่เราเชื่อมต่อกับ Chip select (CS), Reset (RST) และ Interrupt (INT) pin ของ LoRa กับ Arduino ในที่สุดเราก็กำหนดว่าโมดูลควรทำงานในความถี่ 434MHz และเริ่มต้นโมดูล LoRa
# รวม
ภายในฟังก์ชั่น การตั้งค่า เราจะรีเซ็ตโมดูล LoRa โดยดึงพินรีเซ็ตไปที่ต่ำเป็นเวลา 10 มิลลิวินาทีเพื่อเริ่มต้นใหม่ จากนั้นเราเริ่มต้นด้วยโมดูลที่เราสร้างขึ้นก่อนหน้านี้โดยใช้ไลบรารีหัววิทยุ จากนั้นเราจะตั้งค่าความถี่และการส่งผ่านพลังงานสำหรับเซิร์ฟเวอร์ Loraการส่งที่สูงขึ้นจะทำให้แพ็กเก็ตของคุณเคลื่อนที่ได้ไกลขึ้น แต่จะใช้พลังงานมากขึ้น
การตั้งค่าเป็นโมฆะ () { // เริ่มต้น Serial Monitor Serial.begin (9600); // รีเซ็ต PinMode โมดูล LoRa (RFM95_RST, OUTPUT); digitalWrite (RFM95_RST, LOW); ล่าช้า (10); digitalWrite (RFM95_RST, สูง); ล่าช้า (10); // เริ่มต้นโมดูล LoRa ในขณะที่ (! rf95.init ()) { Serial.println ("LoRa radio init failed"); ในขณะที่ (1); } // ตั้งค่าความถี่เริ่มต้น 434.0MHz if (! rf95.setFrequency (RF95_FREQ)) { Serial.println ("setFrequency failed"); ในขณะที่ (1); } rf95.setTxPower (18); // กำลังส่งของโมดูล Lora }
ภายในฟังก์ชัน ลูป ไม่มีที่สิ้นสุดเราต้องส่งแพ็กเก็ตข้อมูลผ่านโมดูล LoRa ข้อมูลนี้อาจเป็นอะไรก็ได้เช่นค่าเซ็นเซอร์ของคำสั่งผู้ใช้ แต่เพื่อความง่ายเราจะส่งค่าถ่าน 0 ถึง 9 สำหรับทุก ๆ ช่วงเวลา 1 วินาทีจากนั้นเริ่มต้นค่ากลับเป็น 0 หลังจากถึง 9 โปรดทราบว่าค่าสามารถส่งได้เฉพาะในรูปแบบอาร์เรย์ถ่านเท่านั้นและประเภทของข้อมูลควรเป็นหน่วยที่ 8_t ครั้งละ 1 ไบต์ รหัสในการทำเช่นเดียวกันแสดงอยู่ด้านล่าง
เป็นโมฆะ loop () { Serial.print ("ส่ง:"); ถ่าน radiopacket = ถ่าน (ค่า)}; rf95.send ((uint8_t *) radiopacket, 1); ล่าช้า (1,000); ค่า ++; ถ้า (ค่า> '9') ค่า = 48; }
ทดสอบการสื่อสาร LoRa ระหว่าง Raspberry Pi และ Arduino
ตอนนี้เรามีทั้งฮาร์ดแวร์และโปรแกรมของเราพร้อมแล้วเราก็ต้องอัปโหลดรหัส Arduino ไปยังบอร์ด UNO และควรเปิดใช้งานร่าง python บน pi การตั้งค่าการทดสอบของฉันกับทั้งฮาร์ดแวร์ที่เชื่อมต่อมีลักษณะดังนี้ด้านล่าง
เมื่อลูกค้าหลามร่างมีการเปิดตัวใน Pi (ใช้เฉพาะหลาม 3) ถ้าทุกอย่างทำงานอย่างถูกต้องคุณจะเห็นแพ็คเก็ตที่ได้รับใน Arduino ปี่แม้ว่าหน้าต่างเปลือก คุณควรสังเกต "รับ: 0" ถึง 9 เหมือนที่แสดงในภาพด้านล่าง
รหัส Raspberry pi ที่สมบูรณ์พร้อมไลบรารีที่จำเป็นทั้งหมดสามารถดาวน์โหลดได้จากที่นี่
ตอนนี้คุณสามารถย้ายเซิร์ฟเวอร์ Arduino และตรวจสอบช่วงของโมดูลได้ นอกจากนี้ยังสามารถแสดงค่า RSSI บนเชลล์ได้หากจำเป็น การทำงานทั้งหมดของโครงการสามารถพบได้ในวิดีโอที่ลิงก์ด้านล่าง ตอนนี้เรารู้วิธีสร้างการสื่อสาร LoRa พลังงานต่ำทางไกลระหว่าง Arduino และ Raspberry pi แล้วเราสามารถดำเนินการเพิ่มเซ็นเซอร์บนฝั่ง Arduino และแพลตฟอร์มคลาวด์ในฝั่ง Pi เพื่อสร้างแพ็คเกจ IoT ที่สมบูรณ์
หวังว่าคุณจะเข้าใจโครงการและสนุกกับการสร้างมัน หากคุณมีปัญหาในการใช้งานให้ใช้ส่วนความคิดเห็นด้านล่างหรือฟอรัมสำหรับคำถามด้านเทคนิคอื่น ๆ