Microduino 按键选择号码并发送短信/zh

来自Microduino Wikipedia
Pkj讨论 | 贡献2014年8月11日 (一) 05:16的版本
跳转至: 导航搜索

概述

  • 项目名称:GPRS远程应用-按键控制发送短信
  • 目的:通过Microduino-Cube-V1来输入号码,并发送指定的短信“Hello! @Microduino”。这是我见过最小的“手机”。
  • 难度:高级
  • 耗时:5小时
  • 制作者:Microduino Studio-PKJ

材料清单

  • Microduino设备
模块 数量 功能
Microduino-Core+ 1 核心板
Microduino-FT232R 1 下载程序
Microduino-GPRS/GSM 1 发送短信
Microduino Cube-V1 1 设置号码
Microduino OLED 1 显示
  • 其他设备
USB数据线 2 下载数据、供电
SIM卡 1 发送短信

文档

调试

  • 步骤一:搭建系统

将用到的模块叠加到V1的UPIN27底座上

Microduino OLED需要通过连接线接到底座的IIC接口上(SDA、SCL),模拟按键控制面板也需要通过跳线接到底座的模拟按键接口上。模拟接口是通过A7引脚来检测的。

把整体搭建起来。

  • 步骤二:Microduino GPRS/GSM供电

给Microduino GPRS/GSM供电有两种方式,一是:用micro USB线供电;二是用锂电池供电。用户根据自身情况来选择供电方式。

  • 步骤三:程序调试

初始化号码,用户可以更改成自己想要的初始化号码,存放在数组中

byte num[12] = 
{ 
    1, 8, 6, 7, 9, 2, 3, 8, 1, 2, 3 
};

指定的短信,用户可以更改成自己想要的短信内容,存放在字符串中。

#define text "Hello! @Microduino"

AT命令发送短信

void SMS_sms(byte *c_num, char *c_text) 
{ 
    Serial1.print("AT+CMGF=1\r"); 
    //Because we want to send the SMS in text mode 
    delay(100); 
    while(Serial1.available()) Serial.write(Serial1.read()); 
 
    Serial1.print("AT+CMGS=\"+86"); 
    for(int a = 0; a < 11; a++) 
        Serial1.print(c_num[a]); 
    Serial1.println("\""); 
    delay(100); 
 
    Serial1.println(c_text);//the content of the message 
    delay(100); 
 
    Serial1.println((char)26);//the ASCII code of the ctrl+z is 26 
    delay(100); 
 
    Serial1.println(); 
    while(Serial1.available()) Serial.write(Serial1.read()); 
}

系统测试

步骤一:确定好硬件搭建正确性

  • OLED和模拟键盘接线要正确;
  • 用户根据自己需求选择给Microduino GPRS/GSM供电。

步骤二:给Microduino GPRS/GSM模块开机

  • 长按开机键3S左右,绿灯亮起表示开机成功

步骤三:下载程序

  • 通过micro USB线接到Microduino FT232R上,使系统和电脑连接;
  • 板卡选择Microduino Core+ (Atmega644P@16M,5V),选择好串口,编译通过后下载即可。

步骤四:设置号码

  • 通过左右按键改变sw的值来确定号码位置,并且通过上下按键改变每位上号码的值来确定号码。

步骤五:发送短信

  • 确定号码后按键盘中间键即可发送短信,并在OLED上显示号码及短信内容。

验证

  • 等待观察手机是否接收到短信。

注意问题

  • OLED接线需要接到IIC引脚上,按键接到底座的模拟按键接口;
  • 如果系统开机后又关机,可以尝试换一个电流高一点的电源;