Aduino使用TF卡储存数据,并建立webserver,有访问时上传TF卡内的数据)

该项目使用Arduino实现数据记录,通过TF卡存储设备输出信号,建立Web服务器以便查看记录数据。程序包括初始化、中断处理和网络服务器等功能,遇到网页访问时可能影响数据采集,但通过中断开关优化已改善。未来改进方向包括提升显示速度、数据价值分析和云端存储等。
摘要由CSDN通过智能技术生成

项目概述

一台设备只有单纯的检测功能,没有数据记录,更没有联网,利用Arduino做记录数据,并在网页端查看。
Arduino的一个IO脚接收设备的输出信号,每输出1个下降沿计数+1,数据存在本地,当日累计记录,网页可查看。

思路

1、本套记录查询系统不能干扰生产检测。
2、建立时钟;
3、开机创建以日期命名的文本,存在TF卡中;
4、自检,时间、电压等数据存入文本;
5、用中断来接收外部信号,采集必要的数据,存入文本;
6、建立网络服务器,用循环来检测是否有访问请求;
7、判断到有请求,将当天的文本上传至网页;
8、设置看门狗,文本读取超时后重启。

最终效果

硬件
硬件
TF卡(arduino自己创建的文件是2000/1/1  1:100)
TF卡内文件(arduino自己创建的文件日期是2000年)

进行压力测试,20秒一个触发信号,一天产生4000+条数据(约150K的TXT文件),由于同时还要处理中断函数,网页访问经常会导致arduino无法发送完整的文档数据,转而处理中断。TF卡中数据完整,时钟一天偏1秒。读取时间依然较长,应该是.read()只能读一个字符的缘故。
更新:在文本上传前关闭0号中断,上传完毕打开中断,可避免重启。测试4000+数据,读取时间40多s,网页端数据完整,TF卡内数据正常,无重启。
网页查询
网页查询,显示当日记录

材料准备

项目 quantity
电脑 1
arduino mage (uno内存太小) 1
USB线 1
W5100扩展卡 1
8G TF卡(配读卡器) 1
网线 1
DS1307模块 1
杜邦线 4

程序结构

硬件模块淘宝买现成的,全套成本约100元。
主要是程序设计,
arduino 的程序结构很明确,
可分为以下5个部分:

-引用文件 #include <xxxx.h>
-声明变量 int xxxx = 0;
-自定义函数 void xxxx()
-初始化程序 void setup()
-循环程序 void loop()

初始化程序 void setup()

1、初始化串口
2、初始化中断
3、初始化IIC
4、初始化时钟
5、初始化网络连接
6、初始化指示灯
7、初始化TF卡
8、若当日第一次开机,则获取时钟,创建当日文本。若非当日第一次开机,则跳过。
9、读取AD量,打开当日文本写入开机时间和AD值,保存退出。

建议每一类需要确认的代码后在串口输出相应的指示文字。

void setup() 
{
   
  Serial.begin(9600);
  attachInterrupt(0, xieru, FALLING);    //中断模式0,2号脚为信号脚,下降沿有效,运行xieru函数。
  attachInterrupt(1, WEBduqu, FALLING);  // 未启用
  Serial.println("中断-OK");
  Wire.begin(); //初始化IIC
  Serial.println("IIC-OK");  
  RTC.begin();  //初始化实时时钟
  Serial.println("RTC-OK");  
  server.begin();//初始化实时服务器
  Serial.println("server-OK"); 
  connectToInternet();//输出服务器信息函数
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
  Serial.println("I/O-OK");   
  Serial.print("Initializing SD card...");
  if (!SD.begin(chipSelect)) 
  {
   
    Serial.println("TF Card failed, or not present");
    while (1);//无TF卡,则进入死循环
  }
  Serial.println("TF card initialized.");
  DateTime now = RTC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值