让设备“会打电话、会发短信”,不用依赖WiFi,SIM800L是折腾物联网远程提醒最常用的一块GSM模块。它能把短信、语音、GPRS都接进来,接在Arduino上就能远程报警或控制。但它的供电很讲究,这篇文章把要点说全。

供电是第一步,最容易翻车
SIM800L标称工作在4V左右,典型建议3.4V到4.4V,峰值电流能冲到2A。直接接Arduino的5V会偏高、接3.3V又不够,最稳妥的是用一块LM2596降压模块把电源调成4V左右,或者用一颗满电的锂电池直接带。
为什么供电差会导致“重启循环”?因为模块在发射瞬间电流大,电源一旦被拉垮、电压跌破临界值,模块就会自动复位重启,然后再次发射再次掉电,最后表现成反复开机。所以一定要保证电源能扛住2A的瞬时电流,并做好共地。
连线本身很简单:VCC接4V电源,GND共地,TXD接Arduino的接收端、RXD接主控的发送端。注意模块的行波是2.8V逻辑,直接拿5V主控去驱动它的RX一般没问题,但部分板子建议加个分压电阻更保险。
别忘了接上天线,没有天线就搜不到网络,短信和电话都不通,这是新手最容易忽略的一环。

AT指令就能发短信打电话
模块通过AT指令控制,先用软件串口和它通信。上电后先发AT回车测试,收到OK表示通信正常;再用AT+CSQ查信号强度,用AT+CREG?看是否注册上网络——信号弱要先调整天线位置再接其他指令。
发短信的经典序列是:AT+CMGF=1把模式切到文本格式,AT+CMGS="手机号",等返回符号后输入内容再发送结束符。打电话更简单,直接ATD+手机号+分号拨出,挂机用ATH。想收短信,设置AT+CNMI=2,1就能在来短信时主动上报。
三个高频坑帮你避掉
坑一:信号弱或没插卡就发给AT指令,会一直返回ERROR或超时,先用AT+CSQ确认强度、确认SIM卡插好且没欠费。
坑二:软件串口波特率要对上,常用9600或115200,模块不同版本默认值不同,先断连测试核对。
坑三:首次上电要等它注册网络的几十秒,别一开机就急着发短信。给器件加个状态灯看网络是否就绪,能省下大量排错时间。
搭好之后,做远程温控报警、宠物粮仓缺料短信、或者离家断电通知,都是很好用的刚需场景。







先查AT+CSQ信号强度再操作,信号弱发给指令全是ERROR,省好多时间
没接天线搜不到网络,短信电话全不通,这个最容易漏
发射瞬间电流大到2A,电源扛不住就会反复重启,电源要到位
供电是大坑,直接接5V不稳就重启循环,用降压调到4V才是正解