Go to file
YunHorn Technology 78944ec1c7 rename readme.md 2022-10-14 09:02:15 +08:00
Core MDK ok 2022-10-13 19:04:27 +08:00
LoRaWAN MDK ok 2022-10-13 19:04:27 +08:00
MDK-ARM MDK ok 2022-10-13 19:04:27 +08:00
STM32CubeIDE MDK ok 2022-10-13 19:04:27 +08:00
desktop.ini MDK ok 2022-10-13 19:04:27 +08:00
readme.md rename readme.md 2022-10-14 09:02:15 +08:00
readme.txt MDK ok 2022-10-13 19:04:27 +08:00

readme.md

/**


  • @file Vibration Sensor for Consumer Product Detection and Industry Level Machine Fault Analysis
  • @author Yunhorn (r) Technology Limited Application Team *
    • @brief Yunhorn (r) SmarToilets (r) Product configuration file. *

  • @attention
  • Copyright (c) 2022 Yunhorn Technology Limited.
  • Copyright (c) 2022 Shenzhen Yunhorn Technology Co., Ltd.
  • All rights reserved.
  • This software is licensed under terms that can be found in the LICENSE file
  • in the root directory of this software component.
  • If no LICENSE file comes with this software, it is provided AS-IS.

*/

============ STM32WL E5 E5 E5 ======================================= BUT1_PIN PA.0
BUT2_PIN PA.1
BUT3_PIN N/A

#define BUT1_Pin GPIO_PIN_0 #define BUT1_GPIO_Port GPIOA #define BUT1_EXTI_IRQn EXTI0_IRQn

#define BUT2_Pin GPIO_PIN_1 //MEMS-INT1-ACTIVITY-NO-ACTIVITY INT #define BUT2_GPIO_Port GPIOA #define BUT2_EXTI_IRQn EXTI1_IRQn

----- I2C1 -------------------------------------- SCL PB.06
SDA PB.07

----- I2C2 -------------------------------------- SCL PA.12
SDA PA.11

EN-3V3 PB.04

============ STM32WL E5 E5 E5 =======================================

============ STM32WL 55 ======================================== BUT1_PIN PA.0 CN10 Pin nbr 1 [PC.13 CN7 Pin nbr 23] BUT2_PIN PA.1 CN10 Pin nbr 36 BUT3_PIN PC.6 CN10 Pin nbr 12 //// ADXL345-INT2

#define BUT1_Pin GPIO_PIN_0 #define BUT1_GPIO_Port GPIOA #define BUT1_EXTI_IRQn EXTI0_IRQn

#define BUT3_Pin GPIO_PIN_6 #define BUT3_GPIO_Port GPIOC #define BUT3_EXTI_IRQn EXTI9_5_IRQn

#define BUT2_Pin GPIO_PIN_1 #define BUT2_GPIO_Port GPIOA #define BUT2_EXTI_IRQn EXTI1_IRQn ============ STM32WL 55 ========================================

============ STM32WL55JC confirmed =============

===================================

GNG GND=== CN7 PIN 20 VCC 3.3 ====CN7 PIN 16

SSD 1306 STM32WL55JC ----- I2C1 -------------------------------------- SCL PB.08 === CN10 pin 27 SDA PB.07 === CN10 pin 37

----- I2C2 -------------------------------------- SCL PA.12 === CN10 pin 3 SDA PA.15 === CN7 pin 17

----- I2C3 -------------------------------------- SCL PB.13 === CN7 pin 38 SDA PB.4 === CN7 pin 34

--------------------SPI STM32WL55JC --------------------SPI1 ------------------------------- CLK PA.05 ==== CN10 pin 11

MISO PA.06 ====- CN10 pin 13

MOSI PA.07 ==== CN10 pin 15

===================================

===================================

/*!

  • LoRaWAN Adaptive Data Rate
  • @note Please note that when ADR is enabled the end-device should be static */ #define LORAWAN_ADR_STATE LORAMAC_HANDLER_ADR_OFF //LORAMAC_HANDLER_ADR_ON

/** @addtogroup STM32WLXX_NUCLEO_LOW_LEVEL_BUTTON_Functions

  • @{ */

/**

  • @brief Configures Yunhorn GPIO INT1/INT2 or Sensor with EXTI Line.
  • @param DryContactSensor: Specifies the Dry Contact Sensors to be configured.
  •     This parameter can be one of following parameters:
    
  •       @arg DRY_CONTACT_S1     // REED SWITCH OR WATER LEAKAGE 
    
  •       @arg DRY_CONTACT_S2
    
  •       @arg DRY_CONTACT_S3
    
  • @param DRY_CONTACT_Mode: Specifies Button mode.
  • This parameter can be one of following parameters:
  • @arg DRY_CONTACT_MODE_GPIO: DRY_CONTACT will be used as simple IO
    
  • @arg DRY_CONTACT_MODE_EXTI: DRY_CONTACT will be connected to EXTI line with interrupt
    
  •                        generation capability  
    
  • @retval BSP status */ int32_t BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef ButtonMode) { GPIO_InitTypeDef gpio_init_structure = {0}; static BSP_EXTI_LineCallback button_callback[BUTTONn] = {BUTTON_SW1_EXTI_Callback, BUTTON_SW2_EXTI_Callback, BUTTON_SW3_EXTI_Callback}; static uint32_t button_interrupt_priority[BUTTONn] = {BSP_BUTTON_USER_IT_PRIORITY, BSP_BUTTON_USER_IT_PRIORITY, BSP_BUTTON_USER_IT_PRIORITY}; static const uint32_t button_exti_line[BUTTONn] = {BUTTON_SW1_EXTI_LINE, BUTTON_SW2_EXTI_LINE, BUTTON_SW3_EXTI_LINE};

/* Enable the BUTTON Clock */ BUTTONx_GPIO_CLK_ENABLE(Button);

gpio_init_structure.Pin = BUTTON_PIN[Button]; gpio_init_structure.Pull = GPIO_PULLUP; gpio_init_structure.Speed = GPIO_SPEED_FREQ_HIGH;

if(ButtonMode == BUTTON_MODE_GPIO) { /* Configure Button pin as input / gpio_init_structure.Mode = GPIO_MODE_INPUT; HAL_GPIO_Init(BUTTON_PORT[Button], &gpio_init_structure); } else / (ButtonMode == BUTTON_MODE_EXTI) / { / Configure Button pin as input with External interrupt */ gpio_init_structure.Mode = GPIO_MODE_IT_FALLING;

HAL_GPIO_Init(BUTTON_PORT[Button], &gpio_init_structure);

(void)HAL_EXTI_GetHandle(&hpb_exti[Button], button_exti_line[Button]);
(void)HAL_EXTI_RegisterCallback(&hpb_exti[Button],  HAL_EXTI_COMMON_CB_ID, button_callback[Button]);

/* Enable and set Button EXTI Interrupt to the lowest priority */
HAL_NVIC_SetPriority((BUTTON_IRQn[Button]), button_interrupt_priority[Button], 0x00);
HAL_NVIC_EnableIRQ((BUTTON_IRQn[Button]));

}

return BSP_ERROR_NONE; }

/**

  • @brief Push Button DeInit.
  • @param Button: Button to be configured
  •     This parameter can be one of following parameters:
    
  •       @arg BUTTON_SW1
    
  •       @arg BUTTON_SW2
    
  •       @arg BUTTON_SW3
    
  • @note PB DeInit does not disable the GPIO clock
  • @retval BSP status */ int32_t BSP_PB_DeInit(Button_TypeDef Button) { HAL_NVIC_DisableIRQ((BUTTON_IRQn[Button])); HAL_GPIO_DeInit(BUTTON_PORT[Button], BUTTON_PIN[Button]);

return BSP_ERROR_NONE; }

/**

  • @brief Returns the selected Button state.
  • @param Button: Specifies the Button to be checked.
  •     This parameter can be one of following parameters:
    
  •       @arg BUTTON_SW1
    
  •       @arg BUTTON_SW2
    
  •       @arg BUTTON_SW3
    
  • @retval The Button GPIO pin value. */ int32_t BSP_PB_GetState(Button_TypeDef Button) { return (int32_t)HAL_GPIO_ReadPin(BUTTON_PORT[Button], BUTTON_PIN[Button]); }

/**

  • @brief This function handles Push-Button interrupt requests.
  • @param Button Specifies the pin connected EXTI line
  • @retval None */ void BSP_PB_IRQHandler(Button_TypeDef Button) { HAL_EXTI_IRQHandler(&hpb_exti[Button]); }

/**

  • @brief BSP Push Button callback
  • @param Button: Specifies the Button to be checked.
  •     This parameter can be one of following parameters:
    
  •       @arg BUTTON_SW1
    
  •       @arg BUTTON_SW2
    
  •       @arg BUTTON_SW3
    
  • @retval None. / __weak void BSP_PB_Callback(Button_TypeDef Button) { / Prevent unused argument(s) compilation warning */ UNUSED(Button);

/* This function should be implemented by the user application. It is called into this driver when an event on Button is triggered. */ }

=========================================================================================================== sys_sensor.c

Application/User/LoRaWAN/App

LORA_APP.H ===/* Region ------------------------------------*/ //#define ACTIVE_REGION LORAMAC_REGION_EU868 #define ACTIVE_REGION LORAMAC_REGION_AS923

//#define LORAWAN_USER_APP_PORT 2 #define LORAWAN_USER_APP_PORT 11

/*!

  • Defines the application data transmission duty cycle. 10s, value in [ms]. */ #define APP_TX_DUTYCYCLE 60000

=========================================================================================================== /LoRaWAN/App/lora_info.c
lorawan_conf.h

=========================================================================================================== /* Region ------------------------------------/ / the region listed here will be linked in the MW code / / the application (on sys_conf.h) shall just configure one region at the time / /#define REGION_AS923*/ /#define REGION_AU915/ /#define REGION_CN470/ /#define REGION_CN779/ /#define REGION_EU433/ #define REGION_EU868 /#define REGION_KR920/ /#define REGION_IN865/ #define REGION_US915 /#define REGION_RU864/

/* SmarToilets Products */