该项目是一个模拟自然光循环的摄像头。
我想不需要24/7 24/7 的一个导演到剧情的发展形式,从一个母线到导演的形式,从一个母线到它的出发点都在变化。它们的温度特性也能保持各种自然栖息地的风化和热源季节的变化,并通过日晒和与它们的自然栖息地复制相匹配,以适应它们的状态,同时希望设置。这些设置。
它如何
保存启动它的日期和时间(数据显示时间) rtc 未显示。不同的设置(如增加控制以进行改变)。
dht 22 从读取环境温度和自动。
两个温度传感器读取每块岩石以确保它们不会过热。
使用接收到的数据,可以控制在项目盒中的两个中继屏蔽。
这些继电器控制夜灯、日光、取暖灯、加热岩石1和2、雾化器和风化。
将连接到滚动条,将连接到连接到网关的另一端,将连接到连接点的另一端,将连接到节点的5个输入端,将连接到接地电阻(3个),不电阻连接到连接节点(3)220重要的是,只要你有一个,我已经测试了一些,它们都有效),
我有一个模型,因此不会对后续进行过多的介绍,在设置的时候并不那么重要。
这些是我为显示屏幕而制作的屏幕。(我的蛇名是harold和kumar。)主只与蛇的数据有关,如拉丁名和本国。日期显示当前温度和设定温度,以及一个相同的显示显示屏幕时间相反(显示日期设置)的切换按钮。 由屏幕显示每日显示的每日显示时间设置。如果发生变化,它就会有一个相关的天数变量,在午夜产生一个。
我添加了一个用于远程监控的摄像头
就是有一个网络服务器,让我读取当前的一个例子。
硬件硬件
软件
#include
#include
#include
#include
#include
#include
#include
#包括
#include
#include
#include
#include
#include
#include
#include dht.h
#include
#include
#include tftv2.h
int page;
int firsttimeon = 1;
//时间
可变量 int daynow;
国际月份;
int yearnow;
分钟现在;
时间现在;
int 页面;
int npage;
诠释 dnchan;
浮动常数 longitude = -1.41503959;
浮动常量纬度 = 8.528874379;
//温度和湿度
变量浮动湿敏;
浮动加湿器;
潮湿的日子;
#define dhtpin 22 // 温度/湿度传感器
#define dhttype dht22
dht dht(dhtpin, dhttype);
浮动 hkhr1temp;
浮动 hkhr2temp;
浮动 hkdaytemp;
浮动 hknighttemp;
浮动 ambitempcur;
浮动 ambitempdisp;
浮动 hkdaytempdisp;
浮动 hknighttempdisp;
浮动湿气;
浮动湿度;
#define hr1 23
#define hr2 24
onewire onewire_hr1(hr1);
onewire onewire_hr2(hr2);
达拉斯温度传感器_hr1(&onewire_hr1);
达拉斯温度传感器_hr2(&onewire_hr2);
浮动 hr1tempcur;
浮动 hr1tempdisp;
浮动 hr2tempcur;
浮动 hr2tempdisp;
int ambitempday;
int ambitempnight;
浮动室温;
float roomtempdisp;
//光周期
变量 int srhour;
int sr分钟;
int sr秒;
int srhourset;
int srminuteset;
int srhoursetdisp;
int srminutesetdisp;
int srsecondset;
整数 srday;
int sshour;
int ss分钟;
int ss秒;
int sshourset;
int ssminuteset;
int sssecondset;
int ssminutesetdisp;
int sshoursetdisp;
int ssday = 0;
夜间;
byte todaysr[] = {0, 0, 0, 0, 0, 0};
字节今天[] = {0, 0, 0, 0, 0, 0};
字节 dlstime[] = {0, 0, 小时(), 日(), 月(), 年()};
好久不见;
很长一段时间;
很长一段时间;
//引脚变量
//环境热/湿度是引脚 22
//热岩石 1 温度是引脚 23
//热岩石 2 温度是引脚 24
//ds3231rtc scl 在模拟引脚 a5
// ds3231rtc sda 在模拟引脚 a4
const诠释 dnlamp = 25;
常量 int 雾化器 = 26;
常量 int hrock1 = 27;
常量 int hrock2 = 28;
常量 int 风扇 = 29;
常量 int 雾水 = 31;
常量 int hlamp = 30;
常量 int rset = 41;
// 传感器质量
验证 int ambithsen;
int hr1sen;
int hr2sen;
诠释福格森;
//开机
验证 int dlpwr;
诠释 hlpwr;
诠释 hr1pwr;
诠释 hr2pwr;
int雾pwr;
int fanpwr;
intfoggerpwr;
触摸屏 ts = 触摸屏(xp、yp、xm、ym);//init touchscreen 端口引脚
// 文件变量
string mydata;
字符串 mydoc;
归档我的文件;
/*cat5 电线
red taped ---- 继电器盒
实心棕色 = 5v
白色棕色 = 接地
实心绿色 = 始终开启继电器的引脚 7 -- heat rock 2 电源 -- arduino 引脚 = 28
白色绿色 = 始终开启继电器的引脚 6 -- heat rock 1 电源 -- arduino 引脚 = 27
稳定蓝色 = 始终开启继电器的引脚 5 -- 热灯电源 -- arduino 引脚 = 30
白色蓝色 = 始终开启继电器的引脚 4 -- 日夜灯电源 -- arduino 引脚 = 25
纯橙色 = 节电继电器的引脚 5 -- fogger 电源 -- arduino 引脚 = 26
白色橙色 = 节电继电器的引脚 4 -- 未使用
//
白色胶带 -- -- 继电器盒
绿色常亮 = 省电继电器的引脚 7 -- 风扇继电器 -- arduino 引脚 = 29
白色绿色 = 未使用
蓝色常亮 = j1 打开风扇继电器
白色蓝色 = j1 普通风扇继电器
棕色常亮 = 未使用
白色棕色 = 未使用
常亮橙色 = 5v
白色橙色 = 接地
//
黄色胶带 ---- 传感器
纯棕色 = 风扇电源
白色棕色 = 风扇接地
纯绿色 = 环境温度/湿度传感器 -- arduino 引脚 = 22
白色绿色 = 热岩 1 传感器 -- arduino 引脚 = 23
纯蓝色 = heat rock 2 传感器 -- arduino 引脚 = 24
白色蓝色 = 未使用
纯橙色 = 5v
白色橙色 = 接地
//
红黄色胶带 ---- 触摸屏
纯棕色 = 右上角 icsp
白色棕色 = 模拟 3
纯绿色 =模拟 2
白色 绿色 = 模拟 1
稳定蓝色 = 模拟 0
白色蓝色 = 重置
橙色稳定 = 5v
白色橙色 = 接地
//
红色白色胶带 ---- 触摸屏
稳定棕色 = 数字 7
白色棕色 = 数字 6
稳定绿色 = 数字 5
白色绿色 = 左下 icsp
稳定蓝色 = 左上 icsp
白色蓝色 = 底部中间 icsp
稳定橙色= 顶部 middleicsp
白色橙色 = 底部右侧 icsp
*/
// 在下面输入您的控制器的 mac 地址和 ip 地址。
// ip 地址将取决于您的本地网络:
byte mac[] = {
0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed
};
ip地址 ip(192, 168, 1, 109);
// 初始化以太网服务器库
// 带有您要使用的 ip 地址和端口
//(端口 80 是 http 的默认端口):
ethernetserver server(6113);
#define w5200_cs 10
#define sdcard_cs 4
//camera definitions
#define vc0706_protocol_sign 0x56
#define vc0706_serial2_number 0x00
#define vc0706_command_reset 0x26
#define vc0706_command_gen_version 0x11
#define vc0706_command_tv_out_ctrl 0x44
#define vc0706_command_osd_add_char 0x45
#define vc0706_command_downsize_size 0x53
#define vc0706_command_read_fbuf 0x32
#define fbuf_current_frame 0
#define fbuf_next_frame 0
#define vc0706_command_fbuf_ctrl 0x36
#define vc0706_command_comm_motion_ctrl 0x37
#define vc0706_command_comm_motion_detected 0x39
#define vc0706_command_power_save_ctrl 0x3e
#define vc0706_command_color_ctrl 0x3c
#define vc0706_command_motion_ctrl 0x42
#define vc0706_command_write_data 0x31
#define vc0706_command_get_fbuf_len 0x34
#define read_data_block_no 56
unsigned char tx_counter;
无符号字符 tx_vcbuffer[20];
bool tx_ready;
布尔 rx_ready;
无符号字符 rx_counter;
无符号字符 vc0706_rx_buffer[80];
uint32_t 帧长度 = 0;
uint32_t vc_frame_address = 0;
uint32_t last_data_length = 0;
// 一个整数变量来计算照片
// 如果你有困难连接,增加
// 但它会不经常刷新
int waitforphoto = 4;
整数等待计数;
//////////////////
void setup() {
// 重置 w5100
pinmode(10, output);
数字写入(10,高);
// 打开到相机的 serial2 连接
serial2.begin(115200);
// 设置相机的jpeg压缩
//数字越小文件越小,但质量越低
vc0706_compression_ratio(15);
延迟(100);
pinmode(sdcard_cs,输出);
sd2卡卡;
card.init(spi_full_speed, sdcard_cs);
if (!sd.begin(sdcard_cs)) {
rsetfunc();
}
// 启动以太网连接和服务器:
ethernet.begin(mac, ip);
server.begin();
// 把你的设置代码放在这里,运行一次:
tft_bl_on;
tft.tftinit();
setsyncprovider(rtc.get);
页 = 1;
月现在 = 月();
年份 = 年份();
分钟=分钟();
小时现在 = 小时();
npage = 1;
湿敏 = 50.00;
dht.begin();
sensor_hr1.begin();
sensor_hr2.begin();
时间领主塔迪斯;
tardis.timezone(0);
tardis.position(纬度,经度);
// 引脚
pinmode(dnlamp,输出);
pinmode(雾化器,输出);
pinmode(hlamp,输出);
pinmode(hrock1,输出);
pinmode(hrock2,输出);
pinmode(风扇,输出);
pinmode(雾水,输入);
mydoc = daynow.txt;
读取();
daynow = mydata.toint();
mydoc = hd.txt;
读取();
湿天 = mydata.toint();
mydoc = hs.txt;
读取();
humidminset = mydata.tofloat();
mydoc = atd.txt;
读取();
ambitempday = mydata.toint();
mydoc = atdset.txt;
读取();
hkdaytempdisp = mydata.tofloat();
mydoc = atn.txt;
读取();
ambitempnight = mydata.toint();
mydoc = atnset.txt;
读取();
hknighttempdisp = mydata.tofloat();
mydoc = ssetday.txt;
读取();
ssday = mydata.toint();
mydoc = sriseday.txt;
读取();
srday = mydata.toint();
mydoc = ssetmin.txt;
读取();
ssminutesetdisp = mydata.toint();
mydoc = srisemin.txt;
读取();
srminutesetdisp = mydata.toint();
mydoc = sriseh.txt;
读取();
srhoursetdisp = mydata.toint();
mydoc = ssethour.txt;
读取();
sshoursetdisp = mydata。toint();
}
///////////////////
void loop() {
// 把你的主代码放在这里,重复运行:
timelord tardis;
tardis.dstrules(3, 2, 11, 1, 60);
if (firsttimeon == 1) {
tardis.timezone(-5 * 60);
tardis.position(纬度,经度);
dlstime[5] = (年() - 2000);
dlstime[4] = 月();
dlstime[3] = day();
dlstime[2] = 小时();
dlstime[1] = 分钟();
tardis.dst(dlstime);
第一次 = 0;
}
// 照片时间
倒计时 waitcount = waitcount - 1;
if (waitcount = 100) pos = 99; // 不要让缓冲区溢出...
继续;
}
// 发送 jpeg 文件或发送 html 来显示文件
// 如果 'get /' 请求后有字符
// 发送 jpeg 文件
if (clientreq[5] != ' ' ) {
// ###### 在这里找出客户请求的文件!!!
文件 myfile = sd.open(live.jpg);
// 尝试打开文件
// 如果成功,发送 header 和 jpeg 数据
if (myfile) {
client.println(http/1.1 200 ok);
client.println(内容类型:图片/jpg);
客户端.println();
字节clientbuf[64];
int 客户端计数 = 0;
while (myfile.available())
{
clientbuf[clientcount] = myfile.read();
客户端计数++;
if (clientcount > 63) {
client.write(clientbuf, 64);
客户端计数 = 0;
}
}
if (clientcount > 0) {
client.write(clientbuf, clientcount);
}
myfile.close();
}
} else {
// 'get /' 后面没有字符
// 发送 html 站点
client.println(http/1.1 200 ok);
client.println(content-type: text/html);
client.println(连接:关闭);
client.println(刷新:2);
客户端.println();
客户端.println( client.println();
client.print(harold & kumar's enclosure);
client.println(
);
client.print(daystr(weekday(now())));
client.print(, );
client.print(monthstr(dlstime[4]));
客户端.print();
client.print(dlstime[3]);
client.print(, );
client.print(year());
client.print(在);
if (dlstime[2] 0) {
client.print( for );
client.print(ambitempnight);
client.print(天);
}
client.println(
);
client.println(
);
client.print(日晒温度 = );
client.print(hr1tempdisp);
client.print(char(176));
client.print(f);
client.println(
);
client.print( range = );
client.print(88);
客户端.print();
client.print(char(176));
client.print(f-);
client.print(96);
客户端.print();
client.print(char(176));
client.print(f);
client.println(
);
client.println(
);
client.print(借用温度 = );
client.print(hr2tempdisp);
客户端.print();
client.print(char(176));
client.print(f);
client.println(
);
client.print( range = );
if (night == 0) {
client.print(hkdaytempdisp - .5);
} else {
client.print(hknighttempdisp - .5);
}
client.print( );
client.print(char(176));
client.print(f-);
if (night == 0) {
client.print(hkdaytempdisp + .5);
} else {
client.print(hknighttempdisp + .5);
}
client.print( );
client.print(char(176));
if (night == 0 && ambitempday > 0) {
client.print( for );
client.print(ambitempday);
client.print(天);
}
if (night == 1 && ambitempnight > 0) {
client.print( for );
client.print(ambitempnight);
client.print(天);
}
client.println(
);
client.println(
);
client.print(湿度 = );
client.print(湿气);
client.print(%);
client.println(
client.print(湿敏集);
client.print(% - );
客户端.print(湿敏集+ 10);
客户端.print(%);
if ( 湿天 > 0) {
client.print(for );
client.print(潮湿的日子);
client.print(天);
}
client.println(
);
client.println(
);
client.print(水位 = );
if (digitalread(foggerwater) == high) {
client.print(good);
} else {
client.print(现在填写!);
client.print(时间 = );
if (night == 0) {
client.print(day);
} else {
client.print(夜晚);
}
client.println(
);
client.print(日出时间 = );
if (srhoursetdisp < 10) {
client.print(0);
}
client.print(srhoursetdisp);
client.print(:);
if (srminutesetdisp
client.print(srday);
client.print(天);
}
client.println(
);
client.print(日落时间 = );
if (sshoursetdisp < 10) {
client.print(0);
}
client.print(sshoursetdisp);
client.print(:);
if (ssminutesetdisp 0) {
client.print( for );
client.print(ssday);
client.print(天);
client.println(
);
client.println(
);
client.print(热灯 = );
if (hlpwr == 1) {
client.print(on);
} else {
client.print(off);
}
client.println(
);
client.print(粉丝 = );
if (fanpwr == 1) {
client.print(on);
} else {
client.print(off);
}
client.println(
);
client.print(姥岩 = );
if (hr1pwr == 1) {
client.print(on);
} 别的 {
client.print(off);
}
client.println(
);
client.print(借石 = );
if (hr2pwr == 1) {
client.print(on);
} else {
client.print(off);
}
client.println(
);
client.print(雾化器 = );
if (foggerpwr == 1) {
client.print(on);
} else {
client.print(off);
}
client.println(
);
客户端.println(<
client.println(harold & kumar 现场直播
);
client.println(
南京邮电大学:研发超灵敏电化学发光免疫传感器检测人补体因子H相关蛋白!
MT2499A 3.5A,4.5V-21V输入,340kHz同步降压转换器芯片
新一代移动支付方式强势来袭,与支付宝微信抢夺市场
凌华科技推出专为智能交通设计的边缘运算解决方案
新能链携区块链怎样改变传统的格局
如何利用DHT22实现蛇形小音箱的设计
海思高端处理器面世,联发科和高通如临大敌
高通确认已获得向华为供应4G芯片的许可证
格芯4.3亿美元出售纽约300mm晶圆工厂
谷歌系无人驾驶汽车公司Waymo于上海注册
三种Buck变换器拓扑结构的演变
慧荣科技推新世代图形显示芯片解决方案SM768 CPU负载最多可降低60%
港股五菱汽车午后持续拉升,现涨超50%
退役后的动力蓄电池去了哪里
台积电将于2020年为比特大陆和嘉楠耘智生产5nm ASIC
基于AT89C51单片机的智能台灯设计
皮线缆寿命期限受哪些影响
采用STC89C52单片机进行实时温度控制系统的软硬件的设计
ab类功放有什么特点
大联大世平基于TI的车用显示屏参考设计 用于汽车信息娱乐应用