目录
心得体会
在大二学期学习了《物联网工程关键技术》这门课程的过程中,我受益匪浅。这门课一共72课时,老师在课上给我们很多关于物联网技术的原理知识,遇到问题时也给我们解惑答疑。经过在课上实践学习,我对物联网技术有了更加全面和深入的了解。
其中,这门课程上使我明确了物联网的定义和相关概念。我了解到物联网由感知层、传输层和应用层组成,各个层级之间的相互连接与通信是实现物联网功能的关键。其次,这门让我学到物联网技术的一部分,如:RFID应用技术和ZigBee无线通讯技术。
- RFID应用技术
射频识别( Radio Frequency ldentification,RFID) ,这门技术是实现物联网的关键技术,在社会上使用范围广泛,比如常见的在学校平时去吃饭时刷校园卡、和身份证识别、坐公交时刷公交卡,这些都与这门技术相关联。在课上,老师分别教我们低频、高频、超高频的通信协议指令,刚开始学时,感到十分新奇好玩,刷一下就能显示到上位机串口界面。同时,老师留的课堂作业也很有挑战性,其中包括“停车场收费系统”。我觉得学好这门关键技术,出去找工作是一门强项本领。
- ZigBee无线通讯技术
ZigBee是一种低功耗、短距离的无线通信技术,它被设计用于物联网设备之间的数据传输和通信。这门技术在物联网应用中得到广泛应用,包括智能家居、工业自动化、智能医疗和环境监测等领域。而且在广西职业技能竞赛的“物联网应用与维护”赛项中的设备也使用到ZigBee,ZigBee作用很大。在老师教了我们ZigBee无线通信原理和应用,ZigBee是基于CC2530的单片机芯片,但内核基于8051内核,学习起来很方便。这门技术我学到了上位机控制ZigBee点灯、ZigBee组网通信流水灯。
接下来,我给大家展示课堂作业“停车场收费系统”
窗体设计界面
高频停车场收费系统是一种用于管理停车场收费的软件系统,它基于C#窗体设计界面开发,具有直观易用的特点。当前界面用的lable标签和文本框、按钮这些控件。
停车场信息管理界面:该界面用于管理停车场的基本信息,包括出入场时间、停留时间、余额消费等。用户可以在该界面进行停车场信息的添加、修改和删除操作。
- 运行 点击入场
- 如果目录没有生成“停车场消费记录”会自动创立,记录出场
- 入场 余额200元
- 出场 停留40秒 1秒2块钱(方便查看) 消费80元
代码部分
- 入场事件
入场用了一个FileStream类来创建文本,方便记录入场的卡号与时间
声明了两个字符串变量ka和time。判断文件是否存在。如果文件存在,则读取文件内容到变量txt_Ka。获取用户输入的卡号,并将其存储在变量ka中。
判断txt_Ka是否包含ka。如果包含,则显示一个消息框提示“卡号已入场”。如果不包含,则创建一个StreamWriter对象write,以追加模式打开文件,并将当前时间和金额写入文件。如果文件不存在,则创建一个新的文件流。
private void button18_Click(object sender, EventArgs e) // 入场
{
//txtSend.Text = "";
//txtReceive.Text = "";
//status_num = 19;
//String str1 = "FF 55 00 00 01 03 00 30 75";
//byte[] data = getBytesFromString(str1);
//com.Write(data, 0, data.Length);
//txtSend.Text = str1;
//Delay(1000);
string ka, time;
if (File.Exists(path) == true) //判断文件是否创建
{
txt_Ka = File.ReadAllText(path);
ka = txtInformation.Text;
if (txt_Ka.Contains(ka)==true)//判断卡号
{
MessageBox.Show("卡号已入场");
}
else
{
StreamWriter write = new StreamWriter(path, true);
textBox19.Text = Convert.ToString(DateTime.Now);
textBox21.Text = "200元";
time = textBox19.Text;
write.WriteLine(ka);
write.WriteLine(time);
write.Close();
}
}
else
{
FileStream logon1 = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
logon1.Close();
}
}
- 出场事件
出场的话用了File类来读取文本的卡号,并判断卡号存在,使用循环遍历数组t_ka,找到与c_ka匹配的卡号。
获取该卡号和对应的时间,并进行时间计算和金额计算。更新显示金额和计时器的文本框内容。
然后根据读取入场写的文本时间来和现在时间相减,得到停车停留时间。
private void button19_Click(object sender, EventArgs e) //出场
{
//txtSend.Text = "";
//txtReceive.Text = "";
//status_num = 20;
//String str1 = "FF 55 00 00 01 03 00 30 75";
//byte[] data = getBytesFromString(str1);
//com.Write(data, 0, data.Length);
//txtSend.Text = str1;
//Delay(1000);
string[] t_ka = new string[50];
string c_ka, c_time, t_time,k,o,s;
int c_hour, c_min, c_sec, t_hour, t_min, t_sec, timer, C_money;
if (File.Exists(path) == true)
{
txt_Ka = File.ReadAllText(path);
c_ka = txtInformation.Text;
if (txt_Ka.Contains(c_ka) == true)
{
c_time = textBox20.Text = Convert.ToString(DateTime.Now);
StreamReader reader = new StreamReader(path);
for (int i = 0; i < 50; i++)
{
t_ka[i] += reader.ReadLine();
}
reader.Close();
for (int i = 0; i < 50; i++)
{
if (t_ka[i] == c_ka)
{
k = t_ka[i]+"\r\n";
o = t_ka[i+1]+ "\r\n";
t_time = t_ka[i + 1];
t_time = t_time.Remove(0, 9).Replace(":", "");
t_hour = Convert.ToInt32(t_time.Substring(0, 2)) * 3600;
t_min = Convert.ToInt32(t_time.Substring(2, 2)) * 60;
t_sec = Convert.ToInt32(t_time.Substring(4, 2));
c_time = c_time.Remove(0, 9).Replace(":", "");
c_hour = Convert.ToInt32(c_time.Substring(0, 2)) * 3600;
c_min = Convert.ToInt32(c_time.Substring(2, 2)) * 60;
c_sec = Convert.ToInt32(c_time.Substring(4, 2));
t_time = (t_hour + t_min + t_sec).ToString();
c_time = (c_hour + c_min + c_sec).ToString();
timer = int.Parse(c_time) - int.Parse(t_time);
C_money = timer * 2;
money = 200-C_money;
textBox21.Text = money.ToString() + "元";
textBox22.Text = timer.ToString() + "秒";
textBox23.Text = C_money.ToString() + "元";
s = txt_Ka.Replace(k+o,"");
File.WriteAllText(path,s);
}
}
}
else
{
MessageBox.Show("卡号不存在");
}
}
else
{
MessageBox.Show("文件不存在");
}
}
总结
在学习《物联网工程关键技术》课程的过程中,我对物联网的关键技术有了更深入的了解和掌握。这门课程不仅让我认识到物联网的潜力和广阔前景,也让我意识到物联网工程在未来的科技发展中扮演着重要的角色。谢谢阅读。