-
Notifications
You must be signed in to change notification settings - Fork 61
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
369 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
/** | ||
* @file TextToSpeech.ino | ||
* @author Lewis He ([email protected]) | ||
* @license MIT | ||
* @copyright Copyright (c) 2024 ShenZhen XinYuan Electronic Technology Co., Ltd | ||
* @date 2024-12-11 | ||
* @note Only support A7670X A7608X , Not support SIM7670G | ||
*/ | ||
// See all AT commands, if wanted | ||
// #define DUMP_AT_COMMANDS | ||
|
||
#include "utilities.h" | ||
#include <TinyGsmClient.h> | ||
#include "Arduino.h" | ||
|
||
#ifdef DUMP_AT_COMMANDS // if enabled it requires the streamDebugger lib | ||
#include <StreamDebugger.h> | ||
StreamDebugger debugger(SerialAT, Serial); | ||
TinyGsm modem(debugger); | ||
#else | ||
TinyGsm modem(SerialAT); | ||
#endif | ||
|
||
void setup() | ||
{ | ||
Serial.begin(115200); // Set console baud rate | ||
|
||
Serial.println("Start Sketch"); | ||
|
||
SerialAT.begin(115200, SERIAL_8N1, MODEM_RX_PIN, MODEM_TX_PIN); | ||
|
||
#ifdef BOARD_POWERON_PIN | ||
pinMode(BOARD_POWERON_PIN, OUTPUT); | ||
digitalWrite(BOARD_POWERON_PIN, HIGH); | ||
#endif | ||
|
||
// Set modem reset pin ,reset modem | ||
pinMode(MODEM_RESET_PIN, OUTPUT); | ||
digitalWrite(MODEM_RESET_PIN, !MODEM_RESET_LEVEL); delay(100); | ||
digitalWrite(MODEM_RESET_PIN, MODEM_RESET_LEVEL); delay(2600); | ||
digitalWrite(MODEM_RESET_PIN, !MODEM_RESET_LEVEL); | ||
|
||
pinMode(BOARD_PWRKEY_PIN, OUTPUT); | ||
digitalWrite(BOARD_PWRKEY_PIN, LOW); | ||
delay(100); | ||
digitalWrite(BOARD_PWRKEY_PIN, HIGH); | ||
delay(100); | ||
digitalWrite(BOARD_PWRKEY_PIN, LOW); | ||
|
||
// Check if the modem is online | ||
Serial.println("Start modem..."); | ||
|
||
int retry = 0; | ||
while (!modem.testAT(1000)) { | ||
Serial.println("."); | ||
if (retry++ > 10) { | ||
digitalWrite(BOARD_PWRKEY_PIN, LOW); | ||
delay(100); | ||
digitalWrite(BOARD_PWRKEY_PIN, HIGH); | ||
delay(1000); | ||
digitalWrite(BOARD_PWRKEY_PIN, LOW); | ||
retry = 0; | ||
} | ||
} | ||
Serial.println(); | ||
|
||
delay(5000); | ||
|
||
// Mode 1. Start to synth and play,<text> is in UCS2 coding format. | ||
String text = "6B228FCE4F7F75288BED97F3540862107CFB7EDF"; | ||
if (modem.textToSpeech(text, 1)) { | ||
Serial.println("Play successfully."); | ||
} | ||
|
||
} | ||
|
||
uint32_t count = 0; | ||
|
||
void loop() | ||
{ | ||
String text = "millis" + String(count++); | ||
// Mode: 2. Start to synth and play,<text> is in ASCII coding format, | ||
if (modem.textToSpeech(text, 2)) { | ||
Serial.println("Play successfully."); | ||
} | ||
delay(1000); | ||
} | ||
|
||
#ifndef TINY_GSM_FORK_LIBRARY | ||
#error "No correct definition detected, Please copy all the [lib directories](https://github.com/Xinyuan-LilyGO/LilyGO-T-A76XX/tree/main/lib) to the arduino libraries directory , See README" | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,273 @@ | ||
/** | ||
* @file utilities.h | ||
* @author Lewis He ([email protected]) | ||
* @license MIT | ||
* @copyright Copyright (c) 2023 Shenzhen Xin Yuan Electronic Technology Co., Ltd | ||
* @date 2023-11-15 | ||
* | ||
*/ | ||
|
||
#pragma once | ||
|
||
// Note: | ||
// When using ArduinoIDE, you must select a corresponding board type. | ||
// If you don’t know which board type you have, please click on the link to view it. | ||
// 使用ArduinoIDE ,必须选择一个对应的板型 ,如果你不知道你的板型是哪种,请点击链接进行查看 | ||
|
||
// Products Link:https://www.lilygo.cc/products/t-sim-a7670e | ||
// #define LILYGO_T_A7670 | ||
|
||
// Products Link: https://lilygo.cc/products/t-call-v1-4 | ||
// T-Call-A767X V1.0 and V1.1 have different Pinmaps and cannot be used universally. | ||
// #define LILYGO_T_CALL_A7670_V1_0 | ||
|
||
//! SIM7672G and SIM7670G are exactly the same, except for the name change | ||
// Products Link: https://lilygo.cc/products/t-sim-7670g-s3 | ||
// #define LILYGO_T_SIM767XG_S3 | ||
|
||
// Products Link: https://lilygo.cc/products/t-a7608e-h?variant=42860532433077 | ||
// #define LILYGO_T_A7608X | ||
|
||
// Products Link: https://lilygo.cc/products/t-a7608e-h?variant=43932699033781 | ||
// #define LILYGO_T_A7608X_S3 | ||
|
||
// Products Link: https://lilygo.cc/products/a-t-pcie?variant=42335922094261 | ||
// #define LILYGO_T_PCIE_A767X | ||
|
||
|
||
|
||
#if defined(LILYGO_T_A7670) | ||
|
||
#define MODEM_BAUDRATE (115200) | ||
#define MODEM_DTR_PIN (25) | ||
#define MODEM_TX_PIN (26) | ||
#define MODEM_RX_PIN (27) | ||
// The modem boot pin needs to follow the startup sequence. | ||
#define BOARD_PWRKEY_PIN (4) | ||
#define BOARD_ADC_PIN (35) | ||
// The modem power switch must be set to HIGH for the modem to supply power. | ||
#define BOARD_POWERON_PIN (12) | ||
#define MODEM_RING_PIN (33) | ||
#define MODEM_RESET_PIN (5) | ||
#define BOARD_MISO_PIN (2) | ||
#define BOARD_MOSI_PIN (15) | ||
#define BOARD_SCK_PIN (14) | ||
#define BOARD_SD_CS_PIN (13) | ||
#define BOARD_BAT_ADC_PIN (35) | ||
#define MODEM_RESET_LEVEL HIGH | ||
#define SerialAT Serial1 | ||
|
||
#define MODEM_GPS_ENABLE_GPIO (-1) | ||
#define MODEM_GPS_ENABLE_LEVEL (-1) | ||
|
||
#ifndef TINY_GSM_MODEM_A7670 | ||
#define TINY_GSM_MODEM_A7670 | ||
#endif | ||
|
||
// It is only available in V1.4 version. In other versions, IO36 is not connected. | ||
#define BOARD_SOLAR_ADC_PIN (36) | ||
|
||
|
||
#elif defined(LILYGO_T_CALL_A7670_V1_0) | ||
#define MODEM_BAUDRATE (115200) | ||
#define MODEM_DTR_PIN (14) | ||
#define MODEM_TX_PIN (26) | ||
#define MODEM_RX_PIN (25) | ||
// The modem boot pin needs to follow the startup sequence. | ||
#define BOARD_PWRKEY_PIN (4) | ||
#define BOARD_LED_PIN (12) | ||
// There is no modem power control, the LED Pin is used as a power indicator here. | ||
#define BOARD_POWERON_PIN (BOARD_LED_PIN) | ||
#define MODEM_RING_PIN (13) | ||
#define MODEM_RESET_PIN (27) | ||
#define MODEM_RESET_LEVEL LOW | ||
#define SerialAT Serial1 | ||
|
||
|
||
#define MODEM_GPS_ENABLE_GPIO (-1) | ||
#define MODEM_GPS_ENABLE_LEVEL (-1) | ||
|
||
|
||
#ifndef TINY_GSM_MODEM_A7670 | ||
#define TINY_GSM_MODEM_A7670 | ||
#endif | ||
|
||
#elif defined(LILYGO_T_CALL_A7670_V1_1) | ||
|
||
#define MODEM_BAUDRATE (115200) | ||
#define MODEM_DTR_PIN (32) | ||
#define MODEM_TX_PIN (27) | ||
#define MODEM_RX_PIN (26) | ||
// The modem boot pin needs to follow the startup sequence. | ||
#define BOARD_PWRKEY_PIN (4) | ||
#define BOARD_LED_PIN (13) | ||
// There is no modem power control, the LED Pin is used as a power indicator here. | ||
#define BOARD_POWERON_PIN (BOARD_LED_PIN) | ||
#define MODEM_RING_PIN (33) | ||
#define MODEM_RESET_PIN (5) | ||
#define MODEM_RESET_LEVEL LOW | ||
#define SerialAT Serial1 | ||
|
||
#define MODEM_GPS_ENABLE_GPIO (-1) | ||
#define MODEM_GPS_ENABLE_LEVEL (-1) | ||
|
||
#ifndef TINY_GSM_MODEM_A7670 | ||
#define TINY_GSM_MODEM_A7670 | ||
#endif | ||
|
||
#elif defined(LILYGO_T_SIM767XG_S3) | ||
#define MODEM_BAUDRATE (115200) | ||
#define MODEM_DTR_PIN (9) | ||
#define MODEM_TX_PIN (11) | ||
#define MODEM_RX_PIN (10) | ||
// The modem boot pin needs to follow the startup sequence. | ||
#define BOARD_PWRKEY_PIN (18) | ||
#define BOARD_LED_PIN (12) | ||
// There is no modem power control, the LED Pin is used as a power indicator here. | ||
#define BOARD_POWERON_PIN (BOARD_LED_PIN) | ||
#define MODEM_RING_PIN (3) | ||
#define MODEM_RESET_PIN (17) | ||
#define MODEM_RESET_LEVEL LOW | ||
#define SerialAT Serial1 | ||
|
||
#define BOARD_BAT_ADC_PIN (4) | ||
#define BOARD_SOLAR_ADC_PIN (5) | ||
#define BOARD_MISO_PIN (47) | ||
#define BOARD_MOSI_PIN (14) | ||
#define BOARD_SCK_PIN (21) | ||
#define BOARD_SD_CS_PIN (13) | ||
|
||
#ifndef TINY_GSM_MODEM_SIM7672 | ||
#define TINY_GSM_MODEM_SIM7672 | ||
#endif | ||
|
||
#define MODEM_GPS_ENABLE_GPIO (4) | ||
#define MODEM_GPS_ENABLE_LEVEL (1) | ||
|
||
|
||
#elif defined(LILYGO_T_A7608X) | ||
|
||
#define MODEM_BAUDRATE (115200) | ||
#define MODEM_DTR_PIN (25) | ||
#define MODEM_TX_PIN (26) | ||
#define MODEM_RX_PIN (27) | ||
// The modem boot pin needs to follow the startup sequence. | ||
#define BOARD_PWRKEY_PIN (4) | ||
#define BOARD_BAT_ADC_PIN (35) | ||
// The modem power switch must be set to HIGH for the modem to supply power. | ||
#define BOARD_POWERON_PIN (12) //T-A7608-V2 is onboard led | ||
#define MODEM_RING_PIN (33) | ||
#define MODEM_RESET_PIN (5) //T-A7608-V2 no connection | ||
#define BOARD_MISO_PIN (2) | ||
#define BOARD_MOSI_PIN (15) | ||
#define BOARD_SCK_PIN (14) | ||
#define BOARD_SD_CS_PIN (13) | ||
|
||
#define MODEM_RESET_LEVEL HIGH | ||
#define SerialAT Serial1 | ||
|
||
|
||
#ifndef TINY_GSM_MODEM_A7608 | ||
#define TINY_GSM_MODEM_A7608 | ||
#endif | ||
|
||
// only version v1.1 or V2 has solar adc pin | ||
#define BOARD_SOLAR_ADC_PIN (34) | ||
|
||
|
||
// 127 is defined in GSM as the AUXVDD index | ||
#define MODEM_GPS_ENABLE_GPIO (127) | ||
#define MODEM_GPS_ENABLE_LEVEL (1) | ||
|
||
#elif defined(LILYGO_T_A7608X_S3) | ||
|
||
#define MODEM_BAUDRATE (115200) | ||
#define MODEM_DTR_PIN (7) | ||
#define MODEM_TX_PIN (17) | ||
#define MODEM_RX_PIN (18) | ||
// The modem boot pin needs to follow the startup sequence. | ||
#define BOARD_PWRKEY_PIN (15) | ||
#define BOARD_BAT_ADC_PIN (4) | ||
// The modem power switch must be set to HIGH for the modem to supply power. | ||
// #define BOARD_POWERON_PIN (12) | ||
#define MODEM_RING_PIN (6) | ||
#define MODEM_RESET_PIN (16) | ||
#define BOARD_MISO_PIN (47) | ||
#define BOARD_MOSI_PIN (14) | ||
#define BOARD_SCK_PIN (21) | ||
#define BOARD_SD_CS_PIN (13) | ||
|
||
#define MODEM_RESET_LEVEL LOW | ||
#define SerialAT Serial1 | ||
|
||
#ifndef TINY_GSM_MODEM_A7608 | ||
#define TINY_GSM_MODEM_A7608 | ||
#endif | ||
|
||
// only version v1.1 has solar adc pin | ||
#define BOARD_SOLAR_ADC_PIN (3) | ||
|
||
// 127 is defined in GSM as the AUXVDD index | ||
#define MODEM_GPS_ENABLE_GPIO (127) | ||
#define MODEM_GPS_ENABLE_LEVEL (1) | ||
|
||
#elif defined(LILYGO_T_A7608X_DC_S3) | ||
|
||
#define MODEM_DTR_PIN (5) | ||
#define MODEM_RX_PIN (42) | ||
#define MODEM_TX_PIN (41) | ||
// The modem boot pin needs to follow the startup sequence. | ||
#define BOARD_PWRKEY_PIN (38) | ||
#define MODEM_RING_PIN (6) | ||
#define MODEM_RESET_PIN (40) | ||
#define MODEM_RTS_PIN (1) | ||
#define MODEM_CTS_PIN (2) | ||
|
||
#define MODEM_RESET_LEVEL LOW | ||
#define SerialAT Serial1 | ||
|
||
#ifndef TINY_GSM_MODEM_A7608 | ||
#define TINY_GSM_MODEM_A7608 | ||
#endif | ||
|
||
// 127 is defined in GSM as the AUXVDD index | ||
#define MODEM_GPS_ENABLE_GPIO (127) | ||
#define MODEM_GPS_ENABLE_LEVEL (1) | ||
|
||
|
||
#elif defined(LILYGO_T_PCIE_A767X) | ||
|
||
#define MODEM_DTR_PIN (32) | ||
#define MODEM_RX_PIN (26) | ||
#define MODEM_TX_PIN (27) | ||
// The modem power switch must be set to HIGH for the modem to supply power. | ||
#define BOARD_POWERON_PIN (25) | ||
// The modem boot pin needs to follow the startup sequence. | ||
#define BOARD_PWRKEY_PIN (4) | ||
#define MODEM_RING_PIN (33) | ||
#define BOARD_LED_PIN (12) | ||
#define PMU_IRQ (35) | ||
|
||
// No connect to reset pin to modem ,set dummy reset pin | ||
#define MODEM_RESET_PIN (BOARD_LED_PIN) | ||
#define MODEM_RESET_LEVEL (0) | ||
|
||
#define SerialAT Serial1 | ||
|
||
#ifndef TINY_GSM_MODEM_A7670 | ||
#define TINY_GSM_MODEM_A7670 | ||
#endif | ||
|
||
// 127 is defined in GSM as the AUXVDD index | ||
#define MODEM_GPS_ENABLE_GPIO (4) | ||
#define MODEM_GPS_ENABLE_LEVEL (0) | ||
|
||
#else | ||
#error "Use ArduinoIDE, please open the macro definition corresponding to the board above <utilities.h>" | ||
#endif | ||
|
||
// T-Call-A767X V1.0 and V1.1 have different Pinmaps and cannot be used universally , Invalid version | ||
// #define LILYGO_T_CALL_A7670_V1_1 | ||
|
||
// #define LILYGO_T_A7608X_DC_S3 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,10 +17,10 @@ | |
; !default_envs 必须选择一个对应的板型 ,如果你不知道你的板型是哪种,请点击链接进行查看 | ||
|
||
; https://www.lilygo.cc/products/t-sim-a7670e | ||
default_envs = T-A7670X | ||
; default_envs = T-A7670X | ||
|
||
; https://www.lilygo.cc/products/t-call-v1-4 | ||
; default_envs = T-Call-A7670X-V1-0 | ||
default_envs = T-Call-A7670X-V1-0 | ||
|
||
|
||
; Products Link: https://lilygo.cc/products/t-sim-7670g-s3 | ||
|
@@ -55,6 +55,7 @@ default_envs = T-A7670X | |
; src_dir = examples/HttpClient | ||
; src_dir = examples/HttpsClient | ||
; src_dir = examples/GPS_BuiltIn | ||
; src_dir = examples/GPS_BuiltInEx | ||
; src_dir = examples/GPS_Acceleration | ||
; src_dir = examples/GPS_NMEA_Parse | ||
; src_dir = examples/GPS_NMEA_Output | ||
|
@@ -88,8 +89,8 @@ default_envs = T-A7670X | |
; src_dir = examples/SimHatRelay | ||
; src_dir = examples/SimHatAccelerometer | ||
; src_dir = examples/ULP_Monitor | ||
src_dir = examples/SecureClient | ||
|
||
; src_dir = examples/SecureClient | ||
src_dir = examples/TextToSpeech | ||
|
||
[env] | ||
platform = [email protected] | ||
|