最近疫情解封了,好多人都发烧请病假,单位也放假了,我到一直没事儿,在家空闲时间很多,自己做了一个4G边缘网关连接云平台,折腾了半个月,连接联通的燕飞格物云平台成功,现将过程和一些注意事项分享给大家,国内云服务商很多,阿里,腾讯,移动,联通都有,之所以选联通是因为联通的平台免费,当然 ONENET也免费,但根据我实际使用下来感觉ONENET不太稳定,技术支持也不到位,而且如果展示数据用VIEW也要付费,联通的平台数据有记录和曲线显示,适合入门,最关键免费,所以作为入门首先,
我的4G网关是用单片机做的,下面就说一下单片机怎么整,在此选用国产STC 的单片机,1是便宜,2是串口多,我选的STC15W4K56S4,有4个串口,速度最高115200,完全能满足要求,下面是硬件设计,有两个485串口,3路DI输入,都能计数,两路ADC输入,板载继电器(10A250V)
模组电源AC220v,用的金升阳AC/DC品质可靠,也可以之流5V供电,在野外调试设备如果没有电,可以弄个手机充电宝供电,先调试起来。到达现场立马就可以投运。
4G模组用的有人7S1 ,
WIFI模组用的成都亿百特,
RS485模组用周立功的,致远电子
硬件设计使用的PROTEL99SE,设计电路和PCB
单片机开发用KEIL4,完成单片机开发调试 ,使用C语言
MQTT调试用MQTTX调试工具,比以前我用的MQTTFX好用的多,而且支持中文
报文捕获用Wireshark,大家用的时候端口过滤一下1883,就可以了
报文整理用Notepad3搞定,因为Wireshark抓的包,单片机C语言不能直接处理
哈希256加密软件网上很多,找一个在线的就可以,联通的设备接入必须要解决哈西256加密算法
4G模组参数设定, 7S1模组设置软件用USR-TCP232,需设定波特率,运营商 GPS ,NTP
WIFI模组设定用E103-W01,设置WIFI模组的 ID,IP,PORT,Password,
逻辑分析软件用Saleae Logic,调试报文的时候用逻辑分析仪扑获硬件串口数据
地图定位用7S1模组自带的 LBS基站定位参数,基站地位精度差,不过室内可以用 ,GPS只能在室外,精度高但是覆盖面太小,
全部报文调试好以后还需要加载13位时间戳,否则格物平台无法正常记录数据,这对单片机来说有点麻烦,PC上很容易获取日期参数,我这里的解决方案是,通过7S1模组先读取UTC-8北京时间
然后转换成格林尼治时间,最后计算出13位时间戳,下面是我用C写的单片机时间戳转换程序,实战OK,用单片机也能搞定13位时间戳。
注意格物平台设备单个上传和批量上传用的TOPIC不一样,要记住切换!!
上述这些软件都很容易获得,我这也有下载好的,大家也可以联系(我17717361475)要,免费送软件,买现成的4G模组也可以,自己学习或者控制设备都可以,模组自带温度采集传感器,有硬件学习调试比较方便,物联网一定要实战才行,软件模拟能过的东西,硬件不一定行
模组购买网店链接 https://m.tb.cn/h.UjFcy5I?tk=qgb7d45gUwl CZ3457
欢迎同行多交流,相互促进,相互学习!
下面是北京时间UTC-8 转13位时间戳,并且在OLED屏幕能看到变化 ,
rYear=2000+((Rec_Buf1[17]-0x30)*10)+(Rec_Buf1[18]-0x30);//年
rMon=(Rec_Buf1[20]-0x30)*10+(Rec_Buf1[21]-0x30);//
rDay=(Rec_Buf1[23]-0x30)*10+(Rec_Buf1[24]-0x30);//
rSHI=(Rec_Buf1[26]-0x30)*10+(Rec_Buf1[27]-0x30);//
rFEN=(Rec_Buf1[29]-0x30)*10+(Rec_Buf1[30]-0x30);//
rMIAO=(Rec_Buf1[32]-0x30)*10+(Rec_Buf1[33]-0x30);//
Cyear=0;//注意这个寄存器使用前一定要清零,否则下面数是随机的,会出错
for(i2 = 1970; i2 < rYear; i2++)//计算从1970年到现在总共有多少天,包括平年和闰年识别
{
if(((i2%4==0) && (i2%100!=0)) || (i2%400==0)) Cyear++;
}
Count_Day = Cyear * 366 + (rYear-1970-Cyear) * 365;
all_day=Count_Day+Mon_P[rMon]+rDay;//平年时2月按正常28天算
if (rYear==2024||rYear==2028||rYear==2032||rYear==2036||rYear==2040||rYear==2044) //识别出闰年2月底多+1天
{ if (rMon>=3)
{
all_day=Count_Day+Mon_P[rMon]+rDay+1;//统计从1970年1月1日到今天总共天数,每个闰年 2月多算一天
}
}
all_day=(all_day*86400)-28800;//年月日转换成秒数,并减去北京时区差,8小时(2880秒)
all_time=((rSHI*60*60)+(rFEN*60)+rMIAO);//统计当前卫星时钟 时。分。秒。的总秒数
all_second=(all_day+all_time);//算出当前 格林尼治时间,年.月.日.时.分.秒.全部累计秒数,精确到秒级,不考后3位虑毫秒
OLED_ShowNum(10 ,3,all_time,8,12);//仿真
//下面就是获取的10位格林尼治时间,时间戳,OLED能显示观察
UTC_13time[0]=all_second/1000000000;//取高位值
Device_DT[135]= UTC_13time[0]+0x30;//格林尼治时间戳导入报文--日期 1
Device_temperature[129]=UTC_13time[0]+0x30;//
all_second=all_second%1000000000;//取余数
UTC_13time[1]=all_second/100000000;//
Device_DT[136]= UTC_13time[1]+0x30;//格林尼治时间戳导入报文--日期 2
Device_temperature[130]=UTC_13time[1]+0x30;//
all_second=all_second%100000000;//取余数
UTC_13time[2]=all_second/10000000;//
Device_DT[137]= UTC_13time[2]+0x30;//v格林尼治时间戳导入报文--日期 3
Device_temperature[131]=UTC_13time[2]+0x30;//
all_second=all_second%10000000;//取余数
UTC_13time[3]=all_second/1000000;//
Device_DT[138]= UTC_13time[3]+0x30;//格林尼治时间戳导入报文--日期 4
Device_temperature[132]=UTC_13time[3]+0x30;//
all_second=all_second%1000000;//取余数
UTC_13time[4]=all_second/100000;//
Device_DT[139]= UTC_13time[4]+0x30;//格林尼治时间戳导入报文--日期 5
Device_temperature[133]=UTC_13time[4]+0x30;//
all_second=all_second%100000;//取余数
UTC_13time[5]=all_second/10000;//
Device_DT[140]= UTC_13time[5]+0x30;//格林尼治时间戳导入报文--日期 6
Device_temperature[134]=UTC_13time[5]+0x30;//
all_second=all_second%10000;//取余数
UTC_13time[6]=all_second/1000;//
Device_DT[141]= UTC_13time[6]+0x30;//格林尼治时间戳导入报文--日期 7
Device_temperature[135]=UTC_13time[6]+0x30;//
all_second=all_second%1000;//取余数
UTC_13time[7]=all_second/100;//
Device_DT[142]= UTC_13time[7]+0x30;//格林尼治时间戳导入报文--日期 8
Device_temperature[136]=UTC_13time[7]+0x30;//
all_second=all_second%100;//取余数
UTC_13time[8]=all_second/10;//
Device_DT[143]= UTC_13time[8]+0x30;//格林尼治时间戳导入报文--日期 9
Device_temperature[137]=UTC_13time[8]+0x30;//
all_second=all_second%10;//取余数
UTC_13time[9]=all_second;//
Device_DT[144]= UTC_13time[9]+0x30;//格林尼治时间戳导入报文--日期 10
Device_temperature[138]=UTC_13time[9]+0x30;// }
//--------------------------------------------
文章来源:https://www.toymoban.com/news/detail-415045.html
文章来源地址https://www.toymoban.com/news/detail-415045.html
到了这里,关于联通雁飞格物云平台,单片机连接MQTT服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!