İndirme Dosyaları

Merhabalar arkadaşlar bu sayfamızda Lora modülleri ile ilgili PDF bilgi kağıtları ve kurulum dosyalarını bulabilirsiniz.

3in1 PCB ile LoRa modüllerini programlayabilmek için şu kodu arduinoya yükleyin. Sonrasında aşağıdaki “RF Setting” programını indirip bilgisayarınızda açın.

#include <SoftwareSerial.h>

SoftwareSerial fixSerial(3, 4); //PCB versiyon 4.3 den sonra bu şekilde olmalı

#define M0 7
#define M1 6

void setup() {
  Serial.begin(9600);
  fixSerial.begin(9600);

  pinMode(M0, OUTPUT);
  pinMode(M1, OUTPUT);
  digitalWrite(M0, LOW);        // E22 Modülleri için Aktif edin
  //digitalWrite(M0, HIGH);       // E32 Modülleri için Aktif edin
  digitalWrite(M1, HIGH);
}

void loop() {
  if (Serial.available()) {
    fixSerial.write(Serial.read());
  }

  if (fixSerial.available()) {
    Serial.write(fixSerial.read());
  }
}

3in1 PCB niz varsa Parametre ayarları için USB Stick almaya gerek YOKTUR.

USB STiCK (e15 t2)

STM32 Cubeide RF Setting Kodları:

Bu kodları stm32 kartınıza yükleyip RF setting programı üzerinden Lora modüllerininizin parametre ayarlarını verebilirsiniz. Bu kod Nucleo 64 board f401RE üzerinden yazıldı mantık yine arduinodaki gibi uart2 pc ye, diğer uartta lora modülüne bağlı bu şekilde masaüstü RF setting programı ile Lora modülü arasında bir haberleşme köprüsü oluşturuyoruz.

Özet olarak Kod şu şekilde:

#include "main.h"

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */

/* USER CODE END Includes */

/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */

/* USER CODE END PTD */

/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
#define M0_Low()	HAL_GPIO_WritePin ( M0_GPIO_Port, M0_Pin, GPIO_PIN_RESET )
#define M0_High()	HAL_GPIO_WritePin ( M0_GPIO_Port, M0_Pin, GPIO_PIN_SET )

#define M1_Low()	HAL_GPIO_WritePin ( M1_GPIO_Port, M1_Pin, GPIO_PIN_RESET )
#define M1_High()	HAL_GPIO_WritePin ( M1_GPIO_Port, M1_Pin, GPIO_PIN_SET )
/* USER CODE END PD */

/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */

/* USER CODE END PM */

/* Private variables ---------------------------------------------------------*/
UART_HandleTypeDef huart2;
UART_HandleTypeDef huart6;
DMA_HandleTypeDef hdma_usart2_rx;
DMA_HandleTypeDef hdma_usart6_rx;

/* USER CODE BEGIN PV */

extern DMA_HandleTypeDef hdma_usart2_rx;
extern DMA_HandleTypeDef hdma_usart6_rx;
#define RxBufferSize	64
uint8_t Uart2_RxBuffer[RxBufferSize];
uint8_t Uart6_RxBuffer[RxBufferSize];

/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_DMA_Init(void);
static void MX_USART2_UART_Init(void);
static void MX_USART6_UART_Init(void);
/* USER CODE BEGIN PFP */

/* USER CODE END PFP */

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{
  if(huart->Instance == USART2)
  {
	  HAL_UARTEx_ReceiveToIdle_DMA(&huart2,Uart2_RxBuffer,RxBufferSize);
	  __HAL_DMA_DISABLE_IT(&hdma_usart2_rx,DMA_IT_HT);
	  for(int i=Size;i<RxBufferSize;i++)
		  Uart2_RxBuffer[i]=0;
	  HAL_UART_Transmit_IT(&huart6,Uart2_RxBuffer,Size);
  }
  else if(huart->Instance == USART6)
  {
	  HAL_UARTEx_ReceiveToIdle_DMA(&huart6,Uart6_RxBuffer,RxBufferSize);
	  __HAL_DMA_DISABLE_IT(&hdma_usart6_rx,DMA_IT_HT);
	  for(int i=Size;i<RxBufferSize;i++)
		  Uart6_RxBuffer[i]=0;
	  HAL_UART_Transmit_IT(&huart2,Uart6_RxBuffer,Size);
  }

}

/* USER CODE END 0 */

/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_DMA_Init();
  MX_GPIO_Init();
  MX_USART2_UART_Init();
  MX_USART6_UART_Init();
  /* USER CODE BEGIN 2 */

  HAL_UARTEx_ReceiveToIdle_DMA( &huart2,Uart2_RxBuffer,RxBufferSize );
  __HAL_DMA_DISABLE_IT( &hdma_usart2_rx,DMA_IT_HT );

  HAL_UARTEx_ReceiveToIdle_DMA( &huart6,Uart6_RxBuffer,RxBufferSize );
  __HAL_DMA_DISABLE_IT( &hdma_usart6_rx,DMA_IT_HT );

  M0_Low();     //E22 modülleri için aktif et
  //M0_High();  //E32 modülleri için aktif et
  M1_High();


  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

Kodun proje halini indirmek isterseniz: (ziplenmiş .7z)

İndirme Dosyaları:

Arduino 2.1.0 güncellemesinden sonra Arduino NANO larda driver sorunu yaşıyorsanız aşağıdaki bu 2 güncel driveri yükleyin