繼 ESP8266 LoRa網(wǎng)關(guān)第一步:SPI 和 ESP8266 LoRa網(wǎng)關(guān)第二步:寄存器讀寫之后预明,我們需要將SX127X的物理層驅(qū)動(dòng)集成到工程中浙值。
驅(qū)動(dòng)代碼
先說結(jié)果查牌,雖然將某些國內(nèi)作者提供的LoRa驅(qū)動(dòng)源碼集成后师痕,程序沒有跑飛躲舌。但是根據(jù)SPI總線跟蹤的波形進(jìn)行分析会通,其總線驅(qū)動(dòng)工作不正常口予。所以,我不得不重新調(diào)試涕侈。所以沪停,還需要做些基礎(chǔ)的工作。
更新
將SPI總線CLK從10MHz調(diào)低到2MHz裳涛,同時(shí)將邏輯分析儀的采樣頻率調(diào)高木张,發(fā)現(xiàn)驅(qū)動(dòng)源碼的SPI總線波形是正確的。所以端三,進(jìn)過適當(dāng)修正后舷礼,可以利用。
應(yīng)用代碼
選擇ESP8266/LoRa代碼基礎(chǔ)
國內(nèi)的產(chǎn)品或許因?yàn)楸阋私即常再I的人真不少妻献。但是固件就差強(qiáng)人意了蛛株。之前,我著重調(diào)研基于ARM的相關(guān)代碼基礎(chǔ)育拨。我基本上會(huì)以STM32/Keil MDK5/C代碼為基礎(chǔ)谨履,或者以ARM mbed C++為基礎(chǔ)。
ESP8266不是ARM內(nèi)核至朗,所以采用Arduino/eLua/MicroPython比較合理屉符。由于ESP8266聯(lián)網(wǎng)特性,所以用來做單通道網(wǎng)關(guān)更加合理锹引,而不是作為設(shè)備終端矗钟。
找到兩個(gè)開源作者:
- Matthijs Kooijman,著作有Building Wireless Sensor Network with Arduino嫌变。開源作品:arduino-lmic/arduino-dsmr/arduino-max
- Thomas Telkamp吨艇,開源作品:single_chan_pkt-fwd/arduino-lmic/packet_forwarder/sx127x_tx_rx/
兩位作者圍繞著IBM LMIC(LoRaMAC In C)做了一大堆移植,同時(shí)對(duì)接TTN(The Things Networks)腾啥。TTN是LoRa聯(lián)盟成員东涡,可以對(duì)接大量的報(bào)文轉(zhuǎn)發(fā)器網(wǎng)關(guān)。
所以倘待,在SPI驅(qū)動(dòng)疮跑,SX127X寄存器訪問完成的基礎(chǔ)上,配合Matthijs/Thomas的LMIC設(shè)計(jì)凸舵,可以完成簡單的單通道設(shè)計(jì)祖娘。但是還需要更多時(shí)間。