java程序员如何进行物联网开发

5 篇文章 1 订阅
订阅专栏
5 篇文章 0 订阅
订阅专栏

树莓派作为它作为全新的物联网开发方式,其的家族越来越强大,从1A到当前的4B系统列为主,另外还有zero系列,计算模块,不久前推出了pi pico开发板,其价格比较低,适合各种人学习从儿童编程到开发者都可以使用,儿童编程可以使用switch进行编程,还可以使用switch控制LED灯开关(电路高低电平原理),它主推的python语言,同时支持java、c、c++语言,pi pico 使用micro python进行编程,它也可以使用c、c++进行编程。这有别与其它的arm开发板,大大降低我们作为java程序员的学习难度,我从三年前3B开始,无意间接触树莓派的,到现在已经有四年时间了,由于开发工作经常比较忙,但有空闲的时候我也想摆弄一下东西,从三年前第一次使用其demo程序把led灯控制和打开后,我兴奋的睡不着觉,四年前使用java代码使用树莓派3b实现了自动售卖机原理实践代码,近两个月由于工作比较空闲使用树莓派4b实现了家庭智能家具的控制,由于我家里使用开关都是射频(315开关)信号,而我的智能音响是小度(红外)——不到一百块,之前网购了一个万能红外转射频(一二百块)的转换器(现在已经被我淘汰掉),我考虑到如果在没有外网情况下就不能智能控制开关了,于是使用树莓派开发了一个一方面即可以红外转射频,又可以在局域网内通过浏览器访问树莓派作为服务器地址作为没有外网情况下可使用手机电脑控制的另一种选择方式,由于我本身做java开发,所以使用java语言开发,其它语言自行开发。现把我所做的经过和踩过的坑记录下来:

项目的git地址

代码github中持续维护中,如果做java做物联网开发的朋友进行讨论,加入qq群:633249673,请注意:严禁广告,只为讨论技术

一、所要的设备

树莓派4b(它有4G版,运行速度较快),可作为开发工具,真正部署可以使用zero或zero w,

树莓派4B

 

树莓派zero w

 

串口转射频信号(315和433)

 

红外解码模块,为什么不使用红包模块——新版本不支持红外io模块读取,详见: https://www.cnblogs.com/punkrocker/p/11223137.html

 

ch340G USB TO TTL,这种推荐使用,我现在就是用的这种,不建议使用下种:

 

这种PL-2303HX芯片5个针的的usbl转TTL请不要购买,踩到坑里死都不知道怎么死的信号灯会闪亮,但中间数据时断时通,如果它不通也就罢了,但偶尔又会通。尤其是对于新手来说,不知道那方面毛病会把人整疯的。

请注意:由于串口转射频是无线不稳定性,建议使用的学习型射频开关模块,可以单键开,单键关的遥控模块,目前市面上大部分学习型的开关模块基本上都支持单开和单关,不适用仅单键开关控制(按一下开,再按同一个遥控键关闭,这样切换的),不是学习型的,不支持单键开、单键关的不支持使用,不是学习型的需要购买串口转射频模块公司的射频解码模块(解码射频遥控器的编码,便于通过串口转射频通过编码把其命令发送出去——上位机发送命令给下位机)。

二、原理

 

原理图

使用语音,小度红外音箱把语音转化为红外信号,红外信号再经过红外解码器识别为16进制的byte数据,向上位机树莓派传送数据,树莓派接到信号数据,在库中查到相应的射频信号数据,再由串口转射频发送给灯的遥控开关模块,来控制开关的通路或断路,达到灯的开关与熄灭;如果人们使用手机或者电脑登陆树莓派的服务,访问网站点击按纽,即可发送相应的射频信号。

需要要说明的是,红外解码器是串口(ttl),串口转射频也是串口,由于树莓派板载仅一个串口,因此需要购一个usb转串口的(ttl)的,由于一个串口仅能对应一个设备(ttl或232通信),可以考虑485通信,由于我的ttl转485通信模块不够(要3个),因此没有使用此方案进行,后期看有时间可以考虑此方案。

三、代码

代码已经存在github上,使用的是spring boot 框架,使用pi4j 1.3包。

 <dependency>
     <groupId>com.pi4j</groupId>
     <artifactId>pi4j-core</artifactId>
     <version>1.3</version>
 </dependency>

 

四、实现步骤及核心代码

1、上位机和下位机通信

物联网中,一切都要从上位机和下位机通信开始,这些对于从事物联网开发的人并不陌生,但是,我们做java网络应用开发的就不是很熟悉了,什么是上位机,什么是下位机,这些名词不多做解释,不明白自行百度,但它们间的通信都是串口通信的,使用UART(通用异步收发传输器)进行通信的,说白了上位机就像你的领导,下位机就是你,领导给你说一段话(16进制一串数字,代表的意义只有你们知道),其实就是一个命令,他说的你明白,然后你再执行他的命令要求就完了,至于你怎么执行的,或执行命令中遇到问题都要向上级通报(返回值),但如果你不明白这命令的意思,可以不理他,他可能给别人讲的,这就是上位机和下位机的通信。那我们就用电脑控制灯的开关吧。

2、拿到串口转射频开关的命令控制射频开关模块

认真阅读串口转射频说明书,如下:

 

 

其实大部分串口转射频无论315还是433信号使用的规则都是差不多的,我的是双频率的,仅的发射频率时选择即可,我是315信号,帧头和帧尾不能改变的,注意发射时间,一般看学习型开关需要多长的时间,正常情况下使用3秒以上,FD,01,03,01,01,01,60,DF,为一个开关的开灯键,根据开关模块说明书操作,把开关模块设置为常开学习使用电脑串口调试工具发送命令(注意不带逗号,选择十六进制——HEX)

 

根据串口模块的波特率设置(常用多是9600),发送给开关的常开学习,,蓝色数据表示返回值,即发送的去了帧头和帧尾及315和433区分码后的值,学习后测试一下,再次发送一次同样的命令开关打开,表示学习成功,再设置FD,01,03,01,02,01,60,DF(注意一般自己家里要地址改,不要区分键值,我区分键值导致发送命令时两个灯同时开或关——一个命令两个开关同时执行),看一下命令,再加入键值区分,6个16进制数字能模拟多少遥控器来?然后再学习其它灯的控制开关。

3、使用让小度录制红外信号

我们使用到红外解码器,它可以解码,但同时它又能够发射红外信号,查看其说明红外解码说明:

 

同样帧头和操作位是固定的,通过串口调试工具发送红外信号给小度,让其学习,小度学习完红外信号,等我们使用语言唤起开关灯命令时,红外解码器收到小度发送的红外信号妈是后三个两位16进制的数据——地址和键值。

4、列表对应起相关的数据

红外开启信号红外关闭信号群组名称开关状态开启射频信号关闭射频信号
FF0001FF0101客厅1FD01010101060DFFD010101020260DF
FF0201FF0301卫生间0FD010101030260DFFD010101040260DF
FF0401FF0501卫生间热水器0FD010101050260DFFD010101060260DF
FF0601FF0701厨房0FD010101070260DFFD010101080260DF

注意红外信号不加入帧头和操作位,这样便于数据查询(当然也可以)

5、系统设计

到现在基本上系统设计架构就有了,呼唤小度开灯——小度发送红外信号给红外解码器,红外解码器收到信号,给数据树莓派,数据莓派通过查询库中对就的数据编码找到相对应的射频信号后转给串口转射频,发送射频信号即可以控制电路通路或断路。

四、树莓派系统安装与java环境设置

1、系统烧录

树莓派4b安装自带有java,但是只有full版本的才有java环境(目前是jdk11),其它版本需要自己安装,树莓派原版系统和乌班图系统一样操作。

我们使用的是2021-01-11-raspios-buster-armhf-lite版本,它是不含桌面版,可以到其官网下载,初次玩树莓派的,官方建议烧录含桌版的(full)。使用烧录软件balenaEtcher

官网都可以下载,然后烧录系统,打开软件根据提示一步步进行:

然后点击flash时行烧录:

 

烧录完后,不要拨sd卡,加入wifi连接 ssid和密码,打开网站:

 

点击提交它会自动生成一个文件:wpa_supplicant.conf

打开为:

 ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
 update_config=1
 ap_scan=1
 fast_reauth=1
 country=HK
 ​
 network={
     #ssid="he"
     ssid=6865
     #psk="123456789"
     psk=a13b170506e9b8b2756f52857f9b950e8c6d9acbe554943297af2ea7abcf6616
     id_str="0"
     priority=100
 }

你可以不用此网站直接复制此代码修改ssid和psk(密码)为你的wifi密码,把文件wpa_supplicant.conf复制到boot下:

 

同时还在要目录下建一个名字为ssh空文件(不是文件夹)

把卡插入树莓派,然后插电树莓派指示灯不闪,打开路由器看到树莓派连接上后的ip地址,无法打开路由器查看,可以使用局域网扫瞄工具,电脑或手机都有,我使用的是安卓局域网扫瞄工具扫瞄——要在同一局域网上扫瞄:

 

使用ssh工具连接树莓派,用户名:pi,默认密码:raspberry

2、系统初设值:

桌面版设置不在此说明,仅使用ssh访问使用树莓派,linux(乌班图)命令不好的,请自补

1)设置ssh中文

ssh命令:

 sudo raspi-config

一步步进行操作:

按上下键、tab制表符(光标位置选项切换)、空格(选择)、回车(确认)

 

 

按上下键,空格表示 选择到:

 

 

选择:en_GB.UTF-8``zh_CN GBKzh_CN UTF-8三个后按tab键选择ok,再次按tab选择OK,回车设定完毕

 

2)设置时区

同样一步步选择:

 

 

选择亚洲:

 

tab制表符到ok到地区选择,在键盘英文情况下按s键——找上海(Shanghai)后确定,时间设置成功东八区

 

系统时间设置成功:

 

3)更新系统

一种方式可以使用设置界面选择:

直接回车更新系统;

另一方面可以使用ssh命令:

 sudo apt-get update 

至到系统从更新完成。

五、添加控制系统

WiringPi是树莓派java开发工具类,里面有大量的demo测试案例,包含gpio控制和串口调试的类库,pi4j.com是其官方网站。

1、java环境配置和wingpi

查看是否安装java环境:

 java -version

 

看到没有安装java环境(注意老版本树莓派有些已经内置jdk1.7版本),如果没有java环境就别说wingpi,我们先去网站看一下:

[pi4j安装]  https://pi4j.com/1.3/install.html pi4j安装

 

说明WiringPi的1.3版本必须要jdk1.8以上版本,如果是老版系统,请先卸载java 1.7版本的

我们直接使用命令安装opnejdk:

 sudo apt-get purge openjdk-8-jre-headless
 sudo apt-get install openjdk-8-jre-headless -y
 sudo apt-get install openjdk-8-jre -y

安装完成后再次查看版本:

 

已经满足了WiringPi版本1.3的要求,接着安装WiringPi——树莓派的java开发工具类:

 sudo apt-get remove wiringpi -y
 sudo apt-get --yes install git-core gcc make
 cd ~
 git clone https://github.com/WiringPi/WiringPi --branch master --single-branch wiringpi
 cd ~/wiringpi
 sudo ./build

如果没有出现粉红字如下,表示wiringPi没有下载成功:

 

 ls  

查看文件时:

 

表明wiringPi安装成功了。

2、安装redis缓存

树莓派系统4b和zero w都能安装redis,由于要使用数据库,我直接使用redis——原因我使用比较方便,如果你对sqlite数据库比较用的可以的话,建议使用SQLite数据库(前端的同事告诉我安卓系统开发经常使用到这个数据库),它比较量级。

 sudo apt-get install redis-server -y

打开redis客户端:

 redis-cli

 

能够进入redis客户端,并测试,表示安装成功,quit回车退出redis客户端。

3、打包并上传应用程序

1)从github下载程序并打包:

[项目地址​]   项目下载地址

打包并上传到树莓派上:

本人使用的是Xshell工具,上传使用xFtp工具,

首先退到根目录下:

 cd ~

在树莓派下,默认使用pi用户,其实路径为:

 

点周XFTP:

 

直上传打包文件:

 

4、书写启动脚本

1)编写启动文件:

 sudo nano start.sh

树莓派使用nano编辑器比较好用,使用vi有时候出问题,现默认使用nano编辑器

复制代码进去:

 #!/bin/sh
 echo "项目正在启动中。。。。。。"
 sudo mkdir logs
 time=`date +%Y%m%d`
 sudo touch logs/${time}.log
 sudo nohup java -jar /home/pi/piHome-0.0.1-SNAPSHOT.jar  >>logs/${time}.log /dev/null 2>&1 &
 echo "项目启动了》》》》》》》》》》》》"

ctr+o回车保存,ctr+x退出nano编辑器

2)更改start.sh为可执行脚本:

 sudo chmod 777 start.sh 

3)启动项目

 sudo ./start.sh 

注意一定要加sudo,否则会出错

 

出现这些表示项目后台启动了,再看日志,目录在logs下

 

查看日志文件:

仅能使用cat命令

 

项目正常启动

设置参数数据(截止目前系统还不太完善,逐步升级,很多接口没有时间写,慢慢完善),把上面数据结构表,使用csv格式保存,使用postman把其数据能过接口写进系统中(使用swagger测试会出问题):

 

post请求,数据是csv格式的(utf-8编码)——excel保存的csv默认不是utf-8格式,请转换格式。返回状态码为200表示上传数据成功。

呼唤一下小度让开灯和关灯命令看一下。。。。。。。。。。。。。。

六、设置开机启动

树莓派开机启动比较麻烦,尤其是新的版本更是麻烦,国内各大论坛都是以前的老版本,过时了,通过查找目前最简单的使用,详见:

[树莓派开机启动​]  https://howchoo.com/pi/how-to-run-a-simple-command-when-your-raspberry-pi-boots 

使用crontab设置开机启动:

 crontab -e

第一次使用crontab时要绑定文本编辑工具,我习惯nano,其它习惯自行选择

 

加入启动命令——为了保险期间写绝对路径啊!

 sudo /home/pi/start.sh

 

重启树莓派,项目也启动了。

 sudo reboot

使用手机或电脑访问路径是ip+端口号/home

 

后语

花了近半个多月的时间终于把系统写完并开发完成了,但里面还有很多要完善的,无论是代码还是需要求,比如加入一个开机会响的模块(程序运行完成会响两声,信号成功发送响一下)等需求都可以,试用485通信仅板载串口即可(不使用usb to ttl),更可以方便加入其它485模块,比较电表及温湿度等。。。

继续添加维护

1、2021-3-25 修复了web按纽bug;

2、添加了蜂鸣器提示: java程序员如何进行物联网开发之二——piHome添加蜂鸣器

Java语言开发物联网设备应用(1)
max1k的博客
08-19 1万+
将移动互联网的应用开发体验带到物联网的世界中来! 这篇文章介绍了如何通过JOSH,实现用Java物联网终端硬件编程
Java物联网技术知识点总结(持续更新中
2301_79835671的博客
04-05 921
Selector是NIO中用于多路复用的核心组件,它可以用一个线程管理多个Channel。Selector可以检测多个注册的通道上是否有事件发生(可设置选择器监听通道的某某事件),例如连接就绪、数据可读、数据可写等。实现了一个I/O线程可以并发处理N个客户端连接和读写的操作。异步非阻塞,通过异步的方式来进行I/O操作,当I/O操作完成时,会通知应用程序进行处理,不需要等待。Netty是一个异步事件驱动的网络应用程序框架,用于快速开发可维护、可拓展的网络服务器和客户端。
基于Java物联网云平台完整源码及功能模块解析
最新发布
RQBIoslnSCZ的博客
04-24 1179
物联网云平台包含多个功能模块,包括设备管理、开关管理、计划管理、传感器管理、传感器数据展示、报警规则管理、设备日志、用户管理、角色管理、菜单管理、部门管理、岗位管理、字典管理、参数管理、通知公告、操作日志、登录日志、在线用户、定时任务、数据监控、服务监控、缓存监控、表单构建、代码生成和系统接口等。设备管理模块还提供了设备状态的监控和展示功能,用户可以实时查看设备的在线状态和各个开关的状态。3、云平台可对各类传感器(温度、湿度、光照、人体感应、电压、电流、电平状态等等)管理,对传感器数据有多种展示方式。
Java物联网开发(一) —— MQTT协议
时间静止
05-13 6102
物联网消息通信协议MQTT出发,由协议的原理,数据包的结构,到遵循该协议的消息引擎EMQX,完整的讲授了EMQX Broker消息处理服务器的基础功能及高级功能的使用,快速掌握物联网消息引擎EMQX
Java物联网技术知识点总结(持续更新中...)
weixin_44268936的博客
09-13 759
物联网领域Java开发知识点归纳
java中的电表项目_深度讲解Java多线程开发—电子表项目实现
weixin_28977123的博客
02-25 883
目录1、前端界面的设计2、添加控件的事件监听3、通过主线程对时间实时显示4、启用线程实现对时间的修改5、线程同步实现秒表功能6、运行并进行调试Hello,大家好,我是灰小猿!今天和大家分享一个使用Java多线程开发的电子表项目,可以实现电子表中时间的实时显示,修改以及秒表的功能。Java电子表设计的设计顺序为从前端界面到后端类及线程的设计,之后将前后端相结合而成。以下是电子表的开发过程:1、前端界...
Java物联网开发“尚方宝剑”之EMQ视频教程
06-09
同样也可以作为从事物联网开发人员的速查宝典。 适用人群: 1.有一定JAVA编程基础,希望快速提升技术水平。 2.有一定项目开发经验,希望从事物联网行业应用开发程序员。 课程内容: 1.MQTT协议 2.EMQ Dashboard 3....
Java从零开始开发一个物联网项目
06-14
从业这么多年,学习了大量的视频教程,也跟很多毕业三年左右的程序员做过交流,但一直没发现一套特别好的教程,能让小伙伴们从零基础一直到高级进阶,持续得到学习。在工作中,他们也反馈,视频教程各种高大上的技术...
Java程序员如何度过迷茫期?这些建议给你些许帮助
01-20
从目前产业互联网发展的大趋势来看,云计算、大数据、区块链、物联网和人工智能领域会释放出大量的开发岗位,而Java语言在这些领域都有一定的应用,所以未来在产业互联网阶段,Java语言依然会是最为流行的编程语言之...
【127套】Java前端后端个人简历模板互联网IT行业程序员
05-26
大概从这几个维度去写,但是很多程序员都漏了最重要的一点,因为我们是做程序开发的,我们最要体现出来的是项目中我们的技术运用,你将什么技术运用到项目中,这一点非常重要, 因为这个能体现出你到底用没用过这些...
Android、Java程序员面试资源总结,涉及Java、Android、网络、操作系统、算法等.zip
03-06
包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python...
java com组件开发_实现通过COM组件方式实现java调用C#写的DLL文件的完整demo
weixin_36354492的博客
02-13 703
最近因为工作需要,客户那边工程师使用的是JAVA语言开发的程序,我们这边平台中是用C#语言开发的,因为有些操作必须统一,所以我在网上查找解决方法,自己也实践过,在这里做个笔记吧,分享一下。一、使用C#编写com组件开发环境 :VS20171、新建工程:CalcTest(类库项目,根据自己喜好需要取工程名,框架我这里使用的是:.NET Framework 4 ,你可以根据自己的来选。 (注:下面红色...
javaweb项目调用大华sdk_微信JS-SDK开发小结
weixin_31477251的博客
12-20 1091
需求利用微信jssdk接口完成定位技术背景前端项目:Vue框架服务端项目:PHP Laravel 框架 引用vue npm包:weixin-js-sdk 安装: npm i wexin-js-sdk2. laravel 微信开发composer包:easywechat。 详见:EasyWeChat - 世界上最好的微信开发 SDK开发流程介绍服务端安装easywechat包,参照 官网 ...
Java语言开发物联网设备应用(4)
max1k的博客
08-22 2130
#认识外设 #使用串口通讯——UART控制篇 #输出高低电平——GPIO控制篇
mqtt物联网协议java实现
java之书-资源
04-18 1400
mqtt物联网协议java实现
【亿可控】第一天系统分析与设计
aaMyCup的博客
01-22 5309
物联网项目,emqx实战教程
java后端经验和技术总结(1)
孤云博客
08-02 1766
随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、博主微信(guyun297890152)、QQ技术交流群(183198395)。 from:https://www.cnblogs.com/luminqiang/p/7875300.html 1.在这几年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为系统维护和发布当救火队员的苦...
java程序员的未来前景
07-11
作为一个AI助手,我可以告诉你Java程序员的未来前景非常广阔。Java是一种流行的编程语言,被广泛应用于企业级应用开发、移动应用开发、大数据处理等领域。以下是一些关于Java程序员未来前景的重要信息: 1. 高需求:Java是一种被广泛使用的编程语言,许多公司和组织都需要Java开发人员来构建和维护他们的软件系统。因此,Java程序员的需求量一直很高。 2. 跨行业应用:Java不仅在软件开发行业有需求,还在金融、医疗、电子商务、物联网等各个行业中得到广泛应用。这意味着Java程序员可以在不同领域找到工作机会。 3. 大数据和云计算:随着大数据和云计算技术的发展,Java在这些领域的需求也越来越大。Java程序员可以通过学习相关技术和框架,如Hadoop、Spark和Spring Cloud,进一步扩展自己的职业发展。 4. Android开发Java是Android应用开发的主要编程语言。随着智能手机和移动应用的普及,Android开发领域对Java程序员的需求也很高。 5. 薪资和职业发展:Java程序员通常享有竞争力的薪资待遇。此外,Java是一种成熟的编程语言,有很多相关的工具、框架和库可供使用,这为Java程序员提供了丰富的职业发展机会。 总的来说,Java程序员在未来仍然有着广阔的就业前景和职业发展机会。然而,要保持竞争力,持续学习和掌握新技术是非常重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • java程序员如何进行物联网开发 8482
  • springboot整合netty的正确姿势 4850
  • ngrok客户端访问超时问题 java.net.SocketTimeoutException: Read timed out 1876
  • java程序员如何进行物联网开发之二——piHome添加蜂鸣器 498
  • network is unreachable 网关PING不通解决办法 418

分类专栏

  • netty 2篇
  • java物联网 4篇
  • linux知识 5篇
  • java知识 5篇
  • PowerDesigner
  • shiro

最新评论

  • springboot整合netty的正确姿势

    王忠元: IdleStateHandler起作用了吗

  • springboot整合netty的正确姿势

    木一番: 为了验证你说的会报错,我从0开始搭环境,觉得没这么多时间,已经拿着百度看了下了。感谢回答。

  • springboot整合netty的正确姿势

    wskvfhprrk: 你不写启动看一下不就知道了表情包

  • springboot整合netty的正确姿势

    木一番: 需要添加@ChannelHandler.Sharable注解,防止程序报错. 这句话怎么理解,兄弟。怎么从来没见过这个注解,要是写得更明白点就好了,比如说报什么错

  • springboot整合netty的正确姿势

    Young.棒子๑: chatGPT这么猛的嘛

大家在看

  • ubuntu虚拟机重启后,共享文件夹无法生效
  • 小花猫抖音短视频app_高仿抖音短视频app

最新文章

  • 如何解决netty拆包问题
  • 断线重连功能的Netty客户端程序示例。它将不断地尝试重新连接到服务器,如果连接被意外中断,将自动重新连接。
  • springboot整合netty的正确姿势
2023年3篇
2021年2篇
2019年1篇
2017年5篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司漳州SEO按天扣费报价仙桃关键词按天计费公司忻州网站建设推荐潮州关键词按天计费衡水网站优化按天扣费哪家好鹰潭推广网站西安SEO按天计费马鞍山网络推广报价永新网页制作哪家好乐山网站优化按天计费价格娄底网站制作价格大庆网站定制哪家好郴州网站推广方案甘孜seo优化公司广元网站优化软件报价丽江企业网站改版湖州网页制作公司仙桃网站建设设计推荐哈尔滨企业网站制作价格临猗网站建设报价柳州百度爱采购多少钱甘南网站制作价格木棉湾模板制作海东seo推荐喀什百搜标王公司海口外贸网站制作价格本溪网站seo优化推荐西安网页设计报价厦门模板制作推荐玉林网站改版歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化