单片机和pc都分别需要做啥啊,,,大神们

解决方案 »

  1.   

    你想象一下老师课堂怎么点名。同样是一个人作为服务器需要获取多个终端的信息,两种方法:
    1、老师挨个叫名字,被叫到名字的吱一声,不吱声的就是没到。这是由服务端主动发起的询问
    2、按学号从1号开始轮流报数,每报一个老师在名册上打个勾,最后没打勾的就是没来。这是由终端主动发起的数据报告。你的PC上位机和单片机道理相同。
    首先,确定通讯方式。老师和学生间以空气压缩震动(声音)作为通讯方式。你的单片机和上位机无非是因为用了wifi,于是首先要确定使用TCP还是UDP方式进行通讯。
    确定通讯方式以后再约定通讯协议,确保数据的准确有效到达。老师和学生约定我吼的是名字你们听到叫到自己就喊到,听到名字的喊,其他人闭嘴,没人回答老师再吼一次名字,如果第二次还没人喊到就算旷课。这个约定确认了数据包内容、格式、数据包应答反馈方式、异常重发规则等等。你的单片机和上位机也要有相类似的约定。
    因为有好多学生,老师要区分向不同的学生发送消息,也要区分出不同学生的反馈,老师用姓名或者学号来作为呼叫的标识,学生也可以在每个回复中包含自己的唯一特征比如说话先报学号或者站起来让老师知道说话的是谁等等。在你的系统中可以用IP、终端编号、I2C地址等等来区分。
    以上基础都打好以后就是选择最前面说的两种点名方式中的一种,一边想着老师怎么点名,一边实现它。
      

  2.   

    顶楼上,那些是概念基础,必须了解.到具体实现上,如果是通过WIFI,最简单的方式就是TCP透传,也就是单片机通过WIFI模块直接把数据往某个域名+端口进行发送.这其中就涉及楼上所说的身份识别,我一般是使用单片机的唯一ID,如果没有的话就自己给每个板子定义一个.然后就是通讯协议,TCP的话服务器端接受一个新连接时第一件事就是问唯一ID,这决定了等下发来的数据要存到哪个设备的名下.接下来就是发数据,等服务器确认OK后断开,完成.