Heltec V.3 LoRa TX,RX ด้วย MicroPython

Somsak Lima
2 min readSep 29, 2024

--

ขอย้ำว่าตัวอย่างนี้ไม่ใช่ LoRaWAN เป็นตัวอย่างการใช้ Chip LoRa ของ Semtech SX1262 ด้วย Heltec V.3 LoRa

ดัดแปลงจาก Lib https://github.com/ehong-tl/micropySX126X เนื่องจากตัวอย่างใน Lib ดังกล่าวไม่ได้แสดงข้อความออกมาทาง จอ OLED

โครงสร้างไฟล์จะมีดังนี้

ตัวส่ง Sender

from sx1262 import SX1262
from machine import Pin
import time,ssd1306, machine
import ubinascii

sx = SX1262(spi_bus=1, clk=9, mosi=10, miso=11, cs=8, irq=14, rst=12, gpio=13)
sx.begin(freq=923, bw=500.0, sf=12, cr=8, syncWord=0x12,
power=-5, currentLimit=60.0, preambleLength=8,
implicit=False, implicitLen=0xFF,
crcOn=True, txIq=False, rxIq=False,
tcxoVoltage=1.7, useRegulatorLDO=False, blocking=True)

pin21 = machine.Pin(21, machine.Pin.OUT)
pin21.value(1) #heltec V3

# init ic2 object
i2c = machine.SoftI2C(scl=machine.Pin(18), sda=machine.Pin(17), freq=20000) #heltec V3
oled=ssd1306.SSD1306_I2C(128,64,i2c,60)
counter = 0
print("start sending")

while True:
payload = f'Hello {counter}'
sx.send(payload.encode('ascii'))
print(payload)
oled.fill(0)
oled.text('Sending packet:' , 0, 0)
oled.text(f'{payload}' , 0, 10)
oled.show()
counter += 1
time.sleep(5)

ตัวรับ Receiver

from sx1262 import SX1262
from machine import Pin,SoftI2C
import time
import machine, ssd1306, time

pin21 = machine.Pin(21, machine.Pin.OUT)
pin21.value(1) #heltec V3

# init ic2 object
i2c = machine.SoftI2C(scl=machine.Pin(18), sda=machine.Pin(17), freq=20000) #heltec V3
oled=ssd1306.SSD1306_I2C(128,64,i2c,60)

sx = SX1262(spi_bus=1, clk=9, mosi=10, miso=11, cs=8, irq=14, rst=12, gpio=13)
# LoRa
sx.begin(freq=923, bw=500.0, sf=12, cr=8, syncWord=0x12,
power=-5, currentLimit=60.0, preambleLength=8,
implicit=False, implicitLen=0xFF,
crcOn=True, txIq=False, rxIq=False,
tcxoVoltage=1.7, useRegulatorLDO=False, blocking=True)


oled.text("Start listening",0,0)
oled.show()
time.sleep(5)

while True:
msg, err = sx.recv()
if len(msg) > 0:
oled.fill(0)
oled.show()
error = SX1262.STATUS[err]
print(msg)
print(error)
oled.text(msg,0,0)
oled.show()

--

--

Somsak Lima
Somsak Lima

Written by Somsak Lima

สนับสนุนและส่งเสริมให้ผู้สนใจสามารถใช้งานเทคโนโลยี LoRa และ LoRaWAN ได้ โดยนำความรู้ที่ได้ไปต่อยอดเพื่อใช้งาน

No responses yet