arduino程序烧写黑科技(无线烧写代码)

arduino程序烧写黑科技(无线烧写代码),第1张

电脑连接usb串口然后转透传模块(蓝牙、无线串口模块),arduino串口连接对应透传模块,然后波特率设置成115200。在电脑上点击烧写,然后迅速按下arduino的reset键就可以用电脑无线给arduino烧写程序了

433m无线模块

数据发射模块的工作频率为315M,采用声表谐振器SAW稳频,频率稳定度极高,当环境温度在-25~+85度之间变化时,频飘仅为3ppm/度。

433M发射模块主要技术指标:

1、通讯方式:调幅AM

2、工作频率:315MHz/433MHz

3、频率稳定度:±75kHz

4、发射功率:≤500mW

5、静态电流:≤0.1μA

6、发射电流:3~50mA

7、工作电压:DC 3~12V

特别适合多发一收无线遥控及数据传输系统。声表谐振器的频率稳定度仅次于晶体,而一般的LC振荡器频率稳定度及一致性较差,即使采用高品质微调电容,温差变化及振动也很难保证已调好的频点不会发生偏移。

发射模块未设编码集成电路,而增加了一只数据调制三极管Q1,这种结构使得它可以方便地和其它固定编码电路、滚动码电路及单片机接口,而不必考虑编码电路的工作电压和输出幅度信号值的大小。比如用PT2262或者SM5262等编码集成电路配接时,直接将它们的数据输出端第17脚接至数据模块的输入端即可。

数据模块具有较宽的工作电压范围3~12V,当电压变化时发射频率基本不变,和发射模块配套的接收模块无需任何调整就能稳定地接收。当发射电压为3V时,空旷地传输距离约20~50米,发射功率较小,当电压5V时约100~200米,当电压9V时约300~500米,当发射电压为12V时,为最佳工作电压,具有较好的发射效果,发射电流约60毫安,空旷地传输距离700~800米,发射功率约500毫瓦。当电压大于l2V时功耗增大,有效发射功率不再明显提高。这套模块的特点是发射功率比较大,传输距离比较远,比较适合恶劣条件下进行通讯。天线最好选用25厘米长的导线,远距离传输时最好能够竖立起来,因为无线电信号传输时收很多因素的影响,所以一般实用距离只有标称距离的一半甚至更少,这点需要开发时注意。

数据模块采用ASK方式调制,以降低功耗,当数据信号停止时发射电流降为零,数据信号与发射模块输入端可以用电阻或者直接连接而不能用电容耦合,否则发射模块将不能正常工作。数据电平应接近数据模块的实际工作电压,以获得较高的调制效果。

发射发射模块最好能垂直安装在主板的边缘,应离开周围器件5mm以上,以免受分布参数影晌。模块的传输距离与调制信号频率及幅度,发射电压及电池容量,发射天线,接收机的灵敏度,收发环境有关。一般在开阔区最大发射距离约800米,在有障碍的情况下,距离会缩短,由于无线电信号传输过程中的折射和反射会形成一些死区及不稳定区域,不同的收发环境会有不同的收发距离。

这里介绍一种市场上最常用的433M发射芯片XC4388。该芯片包括了一个功率放大器,单稳态电路和一个由由内部电压控制振荡器和循环过滤的锁相环。单稳态电路用来控制锁相环和功率放大器,使其在 *** 作时可以快速启动。XC4388具备自动待机功能,待机电流小于1uA;所需外部器件很少,频率范围为250MHz~450MHz。

首先,我估计大家都没有USB TO TTL 硬件,也不是所有的坛友都有mangoII,所以我今天就写个特别的arduino程序,让arduino变成一个串口转发器。

原理很简单。。从串口芯片到单片机和这个口是个并联关系。。然后usb 到这个IO口有1k电阻,我就启用了单片机的内上拉稍微平衡下阻抗,,就把arduino板子作为usb to ttl工具了。。嘿嘿

(本设置在mangoII板硬件环境下测试通过,不确定其他硬件是否可以使用,请自行尝试)

代码如下:

ARDUINO 代码复制打印

void setup() {

pinMode(0,INPUT_PULLUP)

pinMode(1,INPUT_PULLUP)

}

void loop() {

// put your main code here, to run repeatedly:

}

因为程序很简单,我又偷懒就没写注释了。主要内容就是创建一个软串口,软串口接模块 ,然后让软串口的回显数据转发到硬件串口,硬件串口的输入数据转发到软串口。

下面来介绍下接线

3V3 ------------ VCC

ARDUINO GND ------------ GND esp8266

IO1 ------------ TX

IO0 ------------ RX

注意,TX 是直接对应板子上的TX RX 对应RX。,。原因自己思考下。

非常简单的接线,就是把我们的WIFI模块接到arduino的软串口上,需要注意的是,wifi模块是3.3V供电。

好了。已经全部准备好了。我们要正式开始了。首先我们打开串口监视器,然后重新插拔一下模块的VCC接线(让模块重启,显示其启动信息),你应该能看到如下图所示的启动信息,说明已经没有任何问题了。

1.png

前面的乱码是因为模块启动信息的波特率与后面启动后不一致造成的,不管就行了

重点来了看窗口的右下角“没有结束符”

这个要选择成“回车”如下图

1.png

我们输入下面这个指令

AT+Reset

复制代码

点击发送后,模块会重启

显示如下

AT+Reset

done

返回字符是done 为啥d没了呢,实际上是有的。可能是软串口的bug,这个我们不研究了。。反正能用知道就行了,不影响使用。

好上面的重启命令我们等会会经常用到

下面,我们要查询一下模块的工作模式,模块一共有三种工作模式1.Station 2.AP 3.Station+AP 第一种是客户端模式,第二种是接入点模式,第三种是两种模式共存。既然我们是登陆路由器然后往指定网络传数据,所以我们选第一种模式。。

设置之前先查询

AT+MODE?

复制代码

返回内容:

AT+MODE?

+MODE:0

done

这个0就是没配置的意思。。我们配置成1即可

用这个命令来设置

AT+MODE=1

复制代码

这样就设置成模式1了。具体的详细指令请参阅上面的指令手册以及自己多尝试

返回如下:

AT+MODE=1

one

坑爹的d又丢了,不管~~~这个时候,关键的时刻来了,这时候虽然设置了。但还没有生效,需要重启模块。还记得我之前说的指令么?我就不重复写了。。反正这时候要重启(拔电源插头也是可以的)

然后我们来查询下

AT+MODE?

复制代码

返回如下:

AT+MODE?

+MODE:1

done

大概就是这样就设置好模式了。

我们后面就暂时不介绍回显内容了,很简单

然后就是查询一下附近能搜索到的wifi网络信号

AT+ShowAP

复制代码

回显内容就是周围wifi信号

看到自己的wifi就可以加入网络了

AT+JoinAP="SSID","PASSWD"

复制代码

很简单的命令对吧,前面写SSID号,后面写密码。回车发送命令就可以加入网络了。记得加完网络重启下模块

好了,这样模块就连上路由器了

下面就需要有个小工具,在自己计算机(局域网内)上建立一个TCP端口的监听,来模拟服务器

小工具连接

我计算机IP是192.168.1.101 我打算监听8089端口,如下图配置,监听(当然你也可以监听你需要的任何端口)

tcp.png

(说明:任何网络服务器都可以看成是工作在指定端口,负责解析指定协议的端口监听器)

设置模块到单链接模式(只能使用一个连接的模式,这种比较方便简单,多链接模式我们以后再讲)

AT+MUX=0

复制代码

然后重启模块(拔电或者用reset指令都可以)

好了。以上的设置模块设置一次后,断电后还是会有记忆的。。也就是说只需要配置一次。。下面开始建立TCP连接啥的。断电不会重连了。。

下面我们在模块上建立一个TCP的连接

使用指令

AT+NewSTA=“TCP”,“192.168.1.101”,8089

复制代码

很简单的指令,首先说明连接类型,目标ip地址,端口号。。这样就建立好了。。

然后我们就能发送数据了

指令

AT+UpDate=11

复制代码

然后串口会返回一个>号,我们继续输入hello world发送

这样就会从TCP监听的一端看到数据了。很简单吧

指令后面的11的意思就是你要发送的字符的长度。系统是靠字符长度判断一句话是否可以发送,所以我们的数据长度要和下面要发送的字符串的长度等长才行。。

简单的教程目前就到这里了,有助于大家理解AT指令的使用。

另外我们还有一个arduino的库,虽然目前开发的不太完全,基本函数都开发完了,例程还没写好,bug可能还有不少,也都在调试中,有兴趣的可以去看看


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8112277.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存