arduino (3) 控制sim900A发送短信
狗屎佳世通旗舰店,卖的什么破玩意sim900a芯片,不支持联通卡,还生明模块支持双卡的
之前买的esp8266-07都是内存偷工减料
买的液体浊度传感器给的原理图也不给基本接线。
差评垃圾店,你敢卖就别怪我吐槽。耽误我这么多时间。
问题
使用arduino nano板子以及其扩展板子经常因为电流不足短信无法正常工作
需要额外供电,l例如一个单独的usb-ttl(5v)或者 220v-5v或220v-12v插在扩展板子供电
如果用arduino nano板子(店家不同质量不同)自带供电 USB线很可能电流有限制
导致功率过低发不出短息
这个时候单独用一个USB-ttl来个5V供电就解决了
1 只能发送英文
- #include<SoftwareSerial.h>
- SoftwareSerial softSerial1(4,5);//软串口RXD4、TXD5,与短信模块通信
- int sendMeg(String phonenum,String text)//发送信息的函数,直接调用即可,无需修改
- {
- char comdata=0;//判断接收到的最后一位是否对
- String phone="";//电话号码存储
- phone="AT+CMGS=\""+phonenum+'\"';
- while (softSerial1.available() > 0){
- comdata = softSerial1.read(); //每次读一个char字符,并相加
- delay(2);
- }
- softSerial1.println("AT");//对GSM发送AT,看响应
- delay(1000);
- while (softSerial1.available() > 2){
- comdata = softSerial1.read(); //每次读一个char字符,并相加
- Serial.print(comdata);//错误
- delay(2);
- }
- if(comdata!='K')//判断没有收到OK
- {
- Serial.println("error1");//错误
- // return 0;
- }
- comdata=0;
- softSerial1.println("AT+CMGF=1");//设置GSM文本模式
- delay(500);
- while (softSerial1.available() > 2){
- comdata = softSerial1.read(); //每次读一个char字符,并相加
- delay(2);
- }
- if(comdata!='K')//没有收到OK
- {
- Serial.println("error2");
- // return 0;
- }
- comdata=0;
- softSerial1.println(phone);//发送的目标号码
- delay(1000);
- while (softSerial1.available() > 1){
- comdata = softSerial1.read(); //每次读一个char字符,并相加
- delay(2);
- }
- if(comdata!='>')//没有收到>
- {
- Serial.println("error3");
- // return 0;
- }
- comdata=0;
- softSerial1.print(text);//发送所写内容
- delay(500);
- softSerial1.write(0x1A); //结束输入文本,并发送
- Serial.println("success"); //成功
- }
- // for循环若收不到消息会卡死 暂时用来看逻辑
- int sendsim2(String phone_num,String text,SoftwareSerial &p_serial)
- {
- p_serial.println("AT");
- delay(500);
- p_serial.println("AT+CSCS=\"GSM\"");
- delay(500);
- p_serial.println("AT+CMGF=1");
- delay(500);
- p_serial.print("AT+CMGS=\"");
- p_serial.print(phone_num);
- p_serial.println("\"");
- // Serial.println("1");
- //for(;p_serial.read()!='>';) ;
- // Serial.println("1");
- p_serial.print(text);
- delay(500);
- p_serial.write(0x1A);
- delay(500);
- p_serial.flush();
- delay(100);
- }
- void setup(){
- //硬串口
- Serial.begin(9600);
- //监听软串口通信
- softSerial1.begin(9600);
- softSerial1.listen();
- }
- void loop(){
- sendMeg("15529672865","msg to phion");//给15147300333 发送信息
- // sendsim2("15529672865","ddd",softSerial1);
- delay(5000);
- }
从单片机串口拿数据,然后转发
32有各种各样的问题
- #include<SoftwareSerial.h>
- #define phonenum_call "15529672865"
- SoftwareSerial softSerial1(4,5);//软串口RXD4、TXD5,与短信模块通信
- int sendMeg(String phonenum,String text)//发送信息的函数,直接调用即可,无需修改
- {
- softSerial1.println("AT");//对GSM发送AT,看响应
- char comdata=0;//判断接收到的最后一位是否对
- String phone="";//电话号码存储
- phone="AT+CMGS=\""+phonenum+'\"';
- while (softSerial1.available() > 0){
- comdata = softSerial1.read(); //每次读一个char字符,并相加
- delay(2);
- }
- softSerial1.println("AT");//对GSM发送AT,看响应
- delay(1000);
- while (softSerial1.available() > 2){
- comdata = softSerial1.read(); //每次读一个char字符,并相加
- Serial.print(comdata);//错误
- delay(2);
- }
- if(comdata!='K')//判断没有收到OK
- {
- Serial.println("error1");//错误
- // return 0;
- }
- comdata=0;
- softSerial1.println("AT+CMGF=1");//设置GSM文本模式
- delay(500);
- while (softSerial1.available() > 2){
- comdata = softSerial1.read(); //每次读一个char字符,并相加
- delay(2);
- }
- if(comdata!='K')//没有收到OK
- {
- Serial.println("error2");
- // return 0;
- }
- comdata=0;
- softSerial1.println(phone);//发送的目标号码
- delay(1000);
- while (softSerial1.available() > 1){
- comdata = softSerial1.read(); //每次读一个char字符,并相加
- delay(2);
- }
- if(comdata!='>')//没有收到>
- {
- Serial.println("error3");
- // return 0;
- }
- comdata=0;
- softSerial1.print(text);//发送所写内容
- delay(500);
- softSerial1.write(0x1A); //结束输入文本,并发送
- Serial.println("success"); //成功
- }
- void setup(){
- //硬串口
- Serial.begin(9600);
- //监听软串口通信
- softSerial1.begin(9600);
- softSerial1.listen();
- delay(5000);
- }
- void loop(){
- if(Serial.available()>0){
- delay(1);//影响读取速度
- String comdata = Serial.readString();
- // Serial.print("Serial.readString:");
- // Serial.println(comdata);
- comdata = "";
- sendMeg(phonenum_call,comdata);//给15147300333 发送信息
- delay(5000);
- }
- }
arduino (3) 控制sim900A发送短信的更多相关文章
- 4.2 使用STM32控制MC20发送短信
需要准备的硬件 MC20开发板 1个 https://item.taobao.com/item.htm?id=562661881042 GSM/GPRS天线 1根 https://item.taoba ...
- 3.2 使用STC89C52控制MC20发送短信
需要准备的硬件 MC20开发板 1个 https://item.taobao.com/item.htm?id=562661881042 GSM/GPRS天线 1根 https://item.taoba ...
- arduino控制A9G发送短信
#include<SoftwareSerial.h> #define phonenum_call "18150561160" // 最好移动卡 联通卡支持度不是很好 S ...
- 2.2 使用ARDUINO控制MC20发短信
需要准备的硬件 MC20开发板 1个 https://item.taobao.com/item.htm?id=562661881042 GSM/GPRS天线 1根 https://item.taoba ...
- 2.5 使用ARDUINO做主控,手机发送短信控制开关LED
需要准备的硬件 MC20开发板 1个 https://item.taobao.com/item.htm?id=562661881042 GSM/GPRS天线 1根 https://item.taoba ...
- Arduino+sim800C家居安防火灾报警 拨打电话 发送短信例程程序
家居安防报警器,参考程序. 火灾报警 涉及用sim800c发短信,拨打电话通知. 接线: Sim800c 3.3V -> Arduino 3.3V Sim800c GND -> Ardui ...
- 脚本控制向Android模拟拨打电话,发送短信,定位设置功能
做行为触发的时候要向模拟器实现拨打电话,发送短信,定位设置的的功能,可以很方便通过telnet localhost 5554实现. 写个脚本很快的搞定了.网上资料很多,脚本的很少,也所积点德啦. 写 ...
- 短信接口调用以及ajax发送短信接口实现以及前端样式
我们短信api用的是云信使平台提供的非免费短信服务:官网提供的demo有两种,分别是function加其调用.class文件加其调用. 在这里我们用class文件加调用: 首先,ThinkPHP里面自 ...
- Windows Phone开发(24):启动器与选择器之发送短信
原文:Windows Phone开发(24):启动器与选择器之发送短信 本节我们通过一个简单的发送短信示例来演示一下如果配合使用PhoneNumberChooserTask和SmsComposeTas ...
随机推荐
- Java成员变量和局部变量区别
成员变量和局部变量区别 变量根据定义位置的不同,我们给变量起了不同的名字.如下图所示: 区别 在类中的位置不同 (重点) 成员变量:类中,方法外 局部变量:方法中或者方法声明上(形式参数) 作用范围 ...
- 洛谷 P5639 【CSGRound2】守序者的尊严
洛谷 P5639 [CSGRound2]守序者的尊严 洛谷传送门 题目背景 由于Y校最近进行了对学校食堂的全面改革与对小卖部的全面整治(乱搞),导致学校小卖部卖的零食被禁售了:学校食堂的炸鸡窗口也消失 ...
- Eviews作时间序列分析的一个实例
时间序列分析是作时间序列数据预测的一个重要部分,由于此次实验室竞赛也用到了时间序列分析,就在此说一下平稳性分析以及非平稳处理的方法: 1.判断平稳性 1.1平稳性的定义 ...
- CF1263F Economic Difficulties(DP)
拿小号打了这场,然而做到这里时少看了条件,最后 10min 才发现,没有 AK,身败名裂-- 赛后看就是 sb 题-- (好像这题也不值 2500 吧?) 首先注意到一条很重要的条件:对于每棵树,都存 ...
- Socket抽象层
目录 一.Socket抽象层 一.Socket抽象层 我们知道两个进程如果需要进行通讯最基本的一个前提是能够唯一标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一 ...
- TensorFlow2教程(目录)
第一篇 基本操作 01 Tensor数据类型 02 创建Tensor 03 Tensor索引和切片 04 维度变换 05 Broadcasting 06 数学运算 07 前向传播(张量)- 实战 第二 ...
- 最热门的 10 个 Java 微服务框架
1.Spring Boot Java 构建 Spring 应用程序已经有很长一段时间了,Spring Boot 是 Spring 的一个特定版本,它通过对配置细节的处理,使微服务构建更加简便.创建 S ...
- 三、动态SQL
动态SQL MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. 动态SQL的元素 元素 作用 备注 if 判断语句 单条件分支判断 choose.whe ...
- mysql常用命令杂记
查看版本 mysqladmin -uRootmaster -pRootmaster@777 versionselect version() 查看Log_bin是否开启 show variables l ...
- python连接Oracle工具类
上代码: # -*- coding:utf-8 -*- import cx_Oracle import pandas as pd class ORACLE(object): def __init__( ...