|
本帖最后由 Beats9707 于 2020-4-30 17:22 编辑
前段时间因为公司这边项目需要做一个秤来实现餐厨垃圾的称重,所以公司让我们想办法做一个重量秤,再把体重秤的数据发送到电脑上,后期需要发送到微信小程序上面,就需要做这么一个东西,我也是刚刚毕业没多久的学生,读的物联网专业,在学校的时候学过arduino的相关课程,所以我就想到了用arudino来实现,但是发现网络上相关的文章真是非常少,只能自己动手好好搞了,因为对于arduino当时在学校也没怎么学,技术比较菜,折腾了大半个月终于搞定了,我现在把自己的案例和代码分享给大家,给跟我一样的小白们参考。
一、物料准备
1.arduino uno 1个
2.nodemcu 1个(本来想用nodemcu直接连接称来用的,但是不知道怎么的读不了数据,干脆就作为一个wifi模块来用了,其实可以直接用wifi模块来做的,但是现成已经买了就用现成吧,跟esp8266的使用也差不多)
3.体重秤模块 1个 (淘宝上买的编程连接版本)
4.杜邦线 若干(我用了6条,公对母2条用来连接arduino和nodemcu,公对公4条用来连接arduino和hx711)
5.数据线 (我买的arduino有自带的数据线,nodemcu没有配,不过用Micro usb数据线就好)
二、环境准备
1.Arduino IDE
2.nodemcu的AT固件 (我是按照这个来做的:https://blog.csdn.net/ling3ye/article/details/80221132)
3.HX711库 (通常商家会送资料的,里面会有)
4.串口调试工具
三、连接方式
1.arduino和nodemcu的连接方式我所采用的方式是硬串口连接,使用杜邦线将arduino的TX和RX分别与nodemcu的RX和TX连接起来即可。
2.hx711与arduino的连接的话如下图,这是商家给的文档写的。
四、输入代码
#include <Hx711.h>
Hx711 scale(A4, A5); //设置Arduino的A4和A5口,输入传感器的数据;
void setup() {
Serial.begin(115200); //波特率设置为115200
delay(50);
Serial.print("AT\r\n"); //确认是否运行正常,如果正常会显示ok;
delay(50);
Serial.print("AT+CWMODE_CUR=1\r\n"); //设置wifi模式,设置为1(STA模式),作为终端连接路由器;
delay(50);
Serial.print("AT+CWJAP_DEF=\"yiqianhe\",\"180621YQH\"\r\n"); //输入wifi的名称和密码,我连接的wifi名称为yiqianhe,wifi密码为180621YQH;
delay(10000);
Serial.print("AT+CIPMUX=0\r\n"); //设置连接的模式,0为单路连接,1为多路连接;
delay(50);
Serial.print("AT+CIPMODE=1\r\n"); //设置为1进入透传模式,0为非透传模式;
delay(50);
Serial.print("AT+CIPSTART=\"TCP\",\"192.168.3.2\",8080\r\n"); //使用TCP协议,连接内网ip地址为192.168.3.2的客户端,使用8080的端口进行通信;
delay(5000);
Serial.print("AT+CIPSEND\r\n"); //开始发送消息;
delay(50);
}
void loop() {
Serial.println(scale.getGram()); //循环发送体重秤测量的数据;
delay(1000);
五、运行结果
运行结果
只看结果就好,程序的话以上面为准,此图为我刚完成时候截的图,还没修改好。
六、结语
在做的过程中采用了不少的办法来实现,一开始购买的是Wemos D1这个板子,想着能够一体化来解决,但是体重秤根本没有数据传输上来,后来换了nodemcu,也是想的能一体的解决,但是还是没有数据,搞了半天也还没搞定,这个问题往后再看看怎么解决吧。在后来使用这arduino和nodemcu来编程连接的时候运行也是有问题,实在没办法了就开始学AT指令使用了,之前不知道这个指令怎么用,但是发现用着真好用,总算是把这个事给办完了,对自己也提升了不少,以后希望在业余的时候也能搞些有趣的东西来玩呢。
也请各路大神多多指教,本小弟技术比较菜,评论区见:lol
|
|