mirror of
https://gitee.com/beecue/fastbee.git
synced 2025-12-19 09:25:54 +08:00
1.新增esp-idf设备端sdk
This commit is contained in:
9
sdk/ESP-IDF/esp_fastbee_aliyun/main/CMakeLists.txt
Normal file
9
sdk/ESP-IDF/esp_fastbee_aliyun/main/CMakeLists.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
set(COMPONENT_ADD_INCLUDEDIRS ".")
|
||||
|
||||
# Edit following two lines to set component requirements (see docs)
|
||||
set(COMPONENT_REQUIRES )
|
||||
set(COMPONENT_PRIV_REQUIRES )
|
||||
|
||||
set(COMPONENT_SRCS ./app_main.c)
|
||||
|
||||
register_component()
|
||||
65
sdk/ESP-IDF/esp_fastbee_aliyun/main/Kconfig.projbuild
Normal file
65
sdk/ESP-IDF/esp_fastbee_aliyun/main/Kconfig.projbuild
Normal file
@@ -0,0 +1,65 @@
|
||||
menu "WIFI Configuration"
|
||||
|
||||
config ESP_WIFI_SSID
|
||||
string "WiFi SSID"
|
||||
default "myssid"
|
||||
help
|
||||
SSID (network name) for the example to connect to.
|
||||
|
||||
config ESP_WIFI_PASSWORD
|
||||
string "WiFi Password"
|
||||
default "mypassword"
|
||||
help
|
||||
WiFi password (WPA or WPA2) for the example to use.
|
||||
|
||||
endmenu
|
||||
|
||||
menu "Platform Configuration"
|
||||
choice ESP_MQTT_PLATFORM
|
||||
prompt "The platform connected by mqtt"
|
||||
default ESP_MQTT_PLATFORM_FASTBEE
|
||||
help
|
||||
The platform connected by mqtt.
|
||||
config ESP_MQTT_PLATFORM_ALIYUN
|
||||
bool "aliyun"
|
||||
config ESP_MQTT_PLATFORM_FASTBEE
|
||||
bool "fastbee"
|
||||
endchoice
|
||||
|
||||
config ESP_MQTT_PLATFORM_FASTBEE_URL
|
||||
string "MQTT URL"
|
||||
default "fastbee.cn:1883"
|
||||
help
|
||||
MQTT URL.
|
||||
|
||||
config ESP_MQTT_PLATFORM_FASTBEE_USERNAME
|
||||
string "MQTT Username"
|
||||
default "FastBee"
|
||||
help
|
||||
MQTT Username.
|
||||
|
||||
config ESP_MQTT_PLATFORM_FASTBEE_PASSWORD
|
||||
string "MQTT Password"
|
||||
default "P63653937TRQ8F27"
|
||||
help
|
||||
MQTT Password.
|
||||
|
||||
config ESP_MQTT_PLATFORM_FASTBEE_USERID
|
||||
string "Platform user ID"
|
||||
default "1"
|
||||
help
|
||||
Platform user ID.
|
||||
|
||||
config ESP_MQTT_PLATFORM_FASTBEE_PRODICTID
|
||||
string "Platform product ID"
|
||||
default "588"
|
||||
help
|
||||
Platform product ID.
|
||||
|
||||
config ESP_MQTT_PLATFORM_FASTBEE_DEVICESN
|
||||
string "Platform device serial number"
|
||||
default "D1FJTWOT3HIB"
|
||||
help
|
||||
Platform device serial number
|
||||
|
||||
endmenu
|
||||
223
sdk/ESP-IDF/esp_fastbee_aliyun/main/app_main.c
Normal file
223
sdk/ESP-IDF/esp_fastbee_aliyun/main/app_main.c
Normal file
@@ -0,0 +1,223 @@
|
||||
/*
|
||||
* ESPRSSIF MIT License
|
||||
*
|
||||
* Copyright (c) 2019 <ESPRESSIF SYSTEMS (SHANGHAI) PTE LTD>
|
||||
*
|
||||
* Permission is hereby granted for use on ESPRESSIF SYSTEMS ESP32 only, in which case,
|
||||
* it is free of charge, to any person obtaining a copy of this software and associated
|
||||
* documentation files (the "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the Software is furnished
|
||||
* to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all copies or
|
||||
* substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
*/
|
||||
#include <string.h>
|
||||
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/task.h"
|
||||
|
||||
#include "esp_err.h"
|
||||
#include "esp_event.h"
|
||||
#include "esp_log.h"
|
||||
|
||||
#include "infra_compat.h"
|
||||
#include "linkkit_solo.h"
|
||||
#include "factory_restore.h"
|
||||
#include "lightbulb.h"
|
||||
#include "fastbee.h"
|
||||
#include "conn_mgr.h"
|
||||
|
||||
static const char *TAG = "app main";
|
||||
|
||||
static bool linkkit_started = false;
|
||||
static bool fastbee_started = false;
|
||||
|
||||
static esp_err_t wifi_event_handle(void *ctx, system_event_t *event)
|
||||
{
|
||||
switch (event->event_id) {
|
||||
case SYSTEM_EVENT_STA_GOT_IP:
|
||||
#ifdef CONFIG_ESP_MQTT_PLATFORM_ALIYUN
|
||||
if (linkkit_started == false) {
|
||||
wifi_config_t wifi_config = {0};
|
||||
if (conn_mgr_get_wifi_config(&wifi_config) == ESP_OK &&
|
||||
strcmp((char *)(wifi_config.sta.ssid), HOTSPOT_AP) &&
|
||||
strcmp((char *)(wifi_config.sta.ssid), ROUTER_AP)) {
|
||||
xTaskCreate((void (*)(void *))linkkit_main, "lightbulb", 10240, NULL, 5, NULL);
|
||||
linkkit_started = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_ESP_MQTT_PLATFORM_FASTBEE
|
||||
if (fastbee_started == false) {
|
||||
wifi_config_t wifi_config = {0};
|
||||
if (conn_mgr_get_wifi_config(&wifi_config) == ESP_OK &&
|
||||
strcmp((char *)(wifi_config.sta.ssid), HOTSPOT_AP) &&
|
||||
strcmp((char *)(wifi_config.sta.ssid), ROUTER_AP)) {
|
||||
xTaskCreate((void (*)(void *))fastbee_main, "lightbulb", 10240, NULL, 5, NULL);
|
||||
fastbee_started = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
static void linkkit_event_monitor(int event)
|
||||
{
|
||||
switch (event) {
|
||||
case IOTX_AWSS_START: // AWSS start without enbale, just supports device discover
|
||||
// operate led to indicate user
|
||||
ESP_LOGI(TAG, "IOTX_AWSS_START");
|
||||
break;
|
||||
|
||||
case IOTX_AWSS_ENABLE: // AWSS enable, AWSS doesn't parse awss packet until AWSS is enabled.
|
||||
ESP_LOGI(TAG, "IOTX_AWSS_ENABLE");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_AWSS_LOCK_CHAN: // AWSS lock channel(Got AWSS sync packet)
|
||||
ESP_LOGI(TAG, "IOTX_AWSS_LOCK_CHAN");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_AWSS_PASSWD_ERR: // AWSS decrypt passwd error
|
||||
ESP_LOGE(TAG, "IOTX_AWSS_PASSWD_ERR");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_AWSS_GOT_SSID_PASSWD:
|
||||
ESP_LOGI(TAG, "IOTX_AWSS_GOT_SSID_PASSWD");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_AWSS_CONNECT_ADHA: // AWSS try to connnect adha (device
|
||||
// discover, router solution)
|
||||
ESP_LOGI(TAG, "IOTX_AWSS_CONNECT_ADHA");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_AWSS_CONNECT_ADHA_FAIL: // AWSS fails to connect adha
|
||||
ESP_LOGE(TAG, "IOTX_AWSS_CONNECT_ADHA_FAIL");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_AWSS_CONNECT_AHA: // AWSS try to connect aha (AP solution)
|
||||
ESP_LOGI(TAG, "IOTX_AWSS_CONNECT_AHA");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_AWSS_CONNECT_AHA_FAIL: // AWSS fails to connect aha
|
||||
ESP_LOGE(TAG, "IOTX_AWSS_CONNECT_AHA_FAIL");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_AWSS_SETUP_NOTIFY: // AWSS sends out device setup information
|
||||
// (AP and router solution)
|
||||
ESP_LOGI(TAG, "IOTX_AWSS_SETUP_NOTIFY");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_AWSS_CONNECT_ROUTER: // AWSS try to connect destination router
|
||||
ESP_LOGI(TAG, "IOTX_AWSS_CONNECT_ROUTER");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_AWSS_CONNECT_ROUTER_FAIL: // AWSS fails to connect destination
|
||||
// router.
|
||||
ESP_LOGE(TAG, "IOTX_AWSS_CONNECT_ROUTER_FAIL");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_AWSS_GOT_IP: // AWSS connects destination successfully and got
|
||||
// ip address
|
||||
ESP_LOGI(TAG, "IOTX_AWSS_GOT_IP");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_AWSS_SUC_NOTIFY: // AWSS sends out success notify (AWSS
|
||||
// sucess)
|
||||
ESP_LOGI(TAG, "IOTX_AWSS_SUC_NOTIFY");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_AWSS_BIND_NOTIFY: // AWSS sends out bind notify information to
|
||||
// support bind between user and device
|
||||
ESP_LOGI(TAG, "IOTX_AWSS_BIND_NOTIFY");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_AWSS_ENABLE_TIMEOUT: // AWSS enable timeout
|
||||
// user needs to enable awss again to support get ssid & passwd of router
|
||||
ESP_LOGW(TAG, "IOTX_AWSS_ENALBE_TIMEOUT");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_CONN_CLOUD: // Device try to connect cloud
|
||||
ESP_LOGI(TAG, "IOTX_CONN_CLOUD");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_CONN_CLOUD_FAIL: // Device fails to connect cloud, refer to
|
||||
// net_sockets.h for error code
|
||||
ESP_LOGE(TAG, "IOTX_CONN_CLOUD_FAIL");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_CONN_CLOUD_SUC: // Device connects cloud successfully
|
||||
ESP_LOGI(TAG, "IOTX_CONN_CLOUD_SUC");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
case IOTX_RESET: // Linkkit reset success (just got reset response from
|
||||
// cloud without any other operation)
|
||||
ESP_LOGI(TAG, "IOTX_RESET");
|
||||
// operate led to indicate user
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void start_conn_mgr()
|
||||
{
|
||||
iotx_event_regist_cb(linkkit_event_monitor); // awss callback
|
||||
conn_mgr_start();
|
||||
|
||||
vTaskDelete(NULL);
|
||||
}
|
||||
|
||||
void app_main()
|
||||
{
|
||||
factory_restore_init();
|
||||
|
||||
lightbulb_init();
|
||||
|
||||
conn_mgr_init();
|
||||
conn_mgr_register_wifi_event(wifi_event_handle);
|
||||
//conn_mgr_init_wifi_config();
|
||||
|
||||
IOT_SetLogLevel(IOT_LOG_INFO);
|
||||
|
||||
#ifdef CONFIG_USE_SOFTAP_CONFIG
|
||||
conn_mgr_set_sc_mode(CONN_SOFTAP_MODE);
|
||||
#else
|
||||
conn_mgr_set_sc_mode(CONN_SC_ZERO_MODE);
|
||||
#endif
|
||||
xTaskCreate((void (*)(void *))start_conn_mgr, "conn_mgr", 3072, NULL, 5, NULL);
|
||||
}
|
||||
0
sdk/ESP-IDF/esp_fastbee_aliyun/main/component.mk
Normal file
0
sdk/ESP-IDF/esp_fastbee_aliyun/main/component.mk
Normal file
Reference in New Issue
Block a user