主页 > 硬件 > ARDUINO时钟项目-2

ARDUINO时钟项目-2

2016年5月19日 ARDUINO时钟项目-2无评论 阅读: 12,293 次

当前进展:

本地温度、湿度、亮度指示

NTP自动对时、时钟显示

网络历史数据存储

框图及连线:

通过ESP8266 wifi连接网络,自动进行NTP对时及传感器数据上报。

arduino与ESP8266通过串口相连,注意ESP8266的供电电源为3.3V,需要5V到3.3V的电源转换,并且ESP8266-01需将CH_PD脚接VCC。

GPIO16管脚也是复位(reset)管脚。

ESP8266工作在AT模式,arduino通过AT命令控制ESP8266,包括wifi配置、NTP UDP数据收发、HTTP传感器数据上报等。

说明:

ESP8266工作在模式3状态(AP+STA),作为AP可以接收近端用户配置,作为STA连接家里的路由器,接入网络。

ESP8266的IP报文传输分透传和非透传两种,非透传模式下无法发送回车、换行符,因此在发送http数据时需将IP发送模式设置为透传(AT+CIPMODE=1),透传模式退出发送需输入“+++”字符串。

NTP为UDP报文,发送48字节请求报文,然后对接收的48字节进行分析,提取时间数据。

传感器数据采用http get的方式上传至网站,在网站上用PHP对get数据进行提取,并写入mysql数据库:

PHP文件:

<?php
@$wen=$_GET['wen'];
@$shi=$_GET['shi'];
@$guang=$_GET['guang'];
@$pm25=$_GET['pm25'];
@$other=$_GET['other'];

if($wen)
{
$conn=mysql_connect("localhost", "root", "XXXX");
mysql_query("set names 'utf8' ");
mysql_query("set character_set_client=utf8");
mysql_query("set character_set_results=utf8");

$insert="INSERT INTO `idata`.`data` (`wen`, `shi`, `guang`, `pm25`, `other`) VALUES ( '".$wen."', '".$shi."', '".$guang."', '".$pm25."', '".$other."')";
if(mysql_db_query("idata",$insert, $conn))
echo "OK";
else
echo "err";

}

?>

数据库密码为XXXX,数据库名为idata,表名为data,字段结构

插入记录时自动记录系统时间。

arduino源码:

ALL0519

发表评论

新用户的评论需审核后才会显示;

电子邮件地址不会被公开;
必填项已用*标注