经验级别 = 初学者
我正在做一个个人项目,最初是按照 arduino 项目页面中的本教程通过按钮开关发送短信:
从那以后,我不得不从使用我的 5V Arduino UNO 切换到 Nano 33 BLE,但现在仍然想实现相同的目标(通过按钮开关发送短信)。由于SoftwareSerial.h
该板不可用,我尝试遵循解决方案SoftwareSerial for Arduino Nano 33 IoT,以及在同一个线程中更进一步的解决方案,但无法以我目前的经验水平理解实现。这是我上传到 Nano 的代码
#include <Arduino.h>
#include "wiring_private.h"
UART mySerial (&sercom0, 5, 6, SERCOM_RX_PAD_1, UART_TX_PAD_0);
#define button1 7 //Button pin, on the other pin it's wired with GND
bool button_State; //Button state
// Attach the interrupt handler to the SERCOM
void SERCOM0_Handler()
{
mySerial.IrqHandler();
}
void setup() {
// Reassign pins 5 and 6 to SERCOM alt
pinMode(button1, INPUT_PULLUP); //The button is always on HIGH level, when pressed it goes LOW
pinPeripheral(5, PIO_SERCOM_ALT);
pinPeripheral(6, PIO_SERCOM_ALT);
// Start my new hardware serial
mySerial.begin(9600);
Serial.begin(9600);
delay(1000);
}
void loop() {
// Do something with mySerial...
if (button_State == LOW) {
Serial.println("Button pressed");
delay(200);
SendSMS();
}
if (mySerial.available()){
Serial.write(mySerial.read());
}
}
void SendSMS(){
Serial.println("Sending SMS...");
mySerial.print("AT+CMGF=1\r");
delay(100);
mySerial.print("AT+CMGS=\"+insert phone num\"\r");
delay(500);
mySerial.print("Beehive under Attack!");
delay(500);
mySerial.print((char)26);
delay(500);
mySerial.println();
Serial.println("Text Sent.");
delay(500);
}
我得到的错误是“sercom0 没有在这个范围内声明”。我不明白如何分配硬件串行引脚来实现相同的功能。
我的项目目标涉及使用 GSM 模块做更多事情,但首先我需要对初始实现有更具体的了解。任何帮助表示赞赏