物联网

这好像是今后一个影响我们日常生活的伟大东西。最近一直在想一个问题,如何低成本简单的实现物联网数据的采集及简易显示。

我的构思是这样的,首先,传感器的数据采集。最基本的数据节点。我考虑了工业上最广泛的协议,Modbus,但这是一个应答、回复的协议,数据之间的传输需要服务器去主动获取。适合小范围数据的采集。但如果有很多零散的设备时,数据都需要服务器主动获取效率可能不太好。这就需要传感器主动发送数据到服务器。就不是适用于modbus了。json是一个轻量级的交换协议,也许不错。

数据传输后,需要后台处理,当然很多不错的平台都可以做,可是我不会,又有什么办法呢?我一直在想,既然是互联网,为何不用web呢?PHP就是一个web开发的好语言,为什么不能用呢?所以,服务器上用php监听一个数据端口,然后根据设备的数据进行处理,再以适当的方式处理,呈现,不就可以了么?php做socks应该很容易,但并发怎么处理?swoole已经解决了这个问题,并行、异步、高性能。

数据的后台处理,用PHP完全是没有问题的。那么数据的呈现应该怎么做呢?这可是我最不擅长的部分。考虑了很多,有地图的方式显示数据的方法,如Open layers地图引擎、raphael.js引擎等都是很好的显示引擎,但是好像还是不太合适。又突然想到游戏是怎么做的?那么绚丽的特效技术如果只用其皮毛就可以显示我想要的效果了!果然很多这方面优秀的引擎非常多!如cocos2d、白鹭引擎等搞些绚丽的显示没有问题。

所以我目前的思路是,现场用单片机采集一些数据,用modbus协议传输给服务器后用php进行解析处理得到数据。或者是用scada软件采集modbus后经过软件转发数据到服务器,得到的数据可以全在web上处理。(使用wincc采集的数据使用socks发送的话,采用vbs的方式发送如何实现?ChilkatAx也许很方便。)

数据的呈现使用游戏引擎显示出HMI画面。

当然一些数据的处理可以使用微信等技术通知到一些人,使用的场景应该还是存在的。

现场单片机的方案。STC单片机为MCU、DS18B20为温度传感器、网络模块将数据发送。

服务器使用modbus解析,或者json解析。

从基础开始学习,让我实现它吧!

发表在 随手杂记 | 物联网已关闭评论

斐讯PSG1208刷机

首先开启telnet

http://192.168.2.1/goform/Diagnosis?pingAddr=192.168.2.100|echo””|telnetd

下载安装breed:

cd /tmp
wget http://breed.hackpascal.net/breed-mt7620-reset1.bin
mtd_write write breed-mt7620-reset1.bin Bootloader

刷入华硕固件或潘多拉固件。比原厂好太多。

华硕固件下载地址:http://yun.baidu.com/s/1qWr367y
https://eyun.baidu.com/s/3kV0JV19

对于K2,开启telnet的方式有所改变。恢复为备份文件就可以。config_telnetd_K2

最新版开启telnet方法


http://192.168.2.1/goform/gra_NTPSyncWithLocal?text_year="2016|`telnetd`"

发表在 网络知识 | 斐讯PSG1208刷机已关闭评论

讯斐路由器免费领

http://s.click.taobao.com/6TYXgax

上边的链接就是免费领取双频路由器的地址。今天是有活动的,159元,平日都是169元。

淘宝付款后,随路由器带一个铃铛卡,这个铃铛卡激活30天后提款到自己的银行卡就可以。相当于免费领取一台路由器!需要的不要错过今天啊!

发表在 待分类 | 讯斐路由器免费领已关闭评论

三星不能看互联网电视的解决方法

三星UA65HU8500J这款电视内有smart HUB 应用中心。 中国互联网电视可以点播各种视频资源。但经常出现各种故障导致无法收看。
互联网电视出现问题后只有通过重设来恢复出厂来解决。
1、重设快捷方式
遥控按键smartHUB键,下边快捷方式最后一个就是复位。选择复位看看效果。
2、故障不能解决时,复位Smart HUB
遥控器按:项目/更多——Smart HUB——重设Smart HUB——pin码为0000(先连接网络)——项目/更多——Smart HUB——Smart HUB条款和隐私政策——同意——确定——选择无电视(只显示)——设置完毕——完成——更新服务——软件更新——立即更新即可。
3、还不能解决
直接按项目——支持——自诊断——复位,PIN吗0000
复位会重启电视,重启后等待10分钟看是否正常。若不正常可再重启电视。再看是否正常。
至此,一般都可以解决故障。
如果还是不能,联系0319-8822444广电售后来解决。

发表在 随手杂记 | 三星不能看互联网电视的解决方法已关闭评论

crysadm+搭建

根据http://blog.csdn.net/haven200/article/details/50636407实践成功。
为了crysadm+,我特意下载了kali2.0系统。
kali2.0系统有三个版本,mini版/ligth版/完整版。
mini版最小,但引导后发现需要联网下载镜像才能正常装。
light版为轻量级版,安装过程中文没有问题,但进入系统后中文不能显示。放弃。
最后完整版安装顺利,自带了好多软件。kali这个专业的系统应该还是不错了。
kali安装完成后,更新到最新系统可以使用国内的源,速度快。
进入系统后可以打开/etc/apt/sources.list
更改为自己较快的源:
#中科大kali源
deb http://mirrors.ustc.edu.cn/kali sana main non-free contrib
deb http://mirrors.ustc.edu.cn/kali-security/ sana/updates main contrib non-free
deb-src http://mirrors.ustc.edu.cn/kali-security/ sana/updates main contrib non-free
#阿里云kali源
deb http://mirrors.aliyun.com/kali sana main non-free contrib
deb http://mirrors.aliyun.com/kali-security/ sana/updates main contrib non-free
deb-src http://mirrors.aliyun.com/kali-security/ sana/updates main contrib non-free
我选择了阿里云,速度还非常快。
保存后对软件进行一次整体更新:
apt-get update & apt-get upgrade
apt-get dist-upgrade
apt-get clean
至此,kali系统部分的工作完成。

crysadm+需要一些特定的环境才能正常运行。
1. 安装Python3.4+,我们这里安装python3.4版本
:~$ sudo apt-get update
:~$ sudo apt-get install python3.4 python3.4-dev

2. 安装redis-server,requests,flask
:~$ sudo apt-get install redis-server python3-flask python3-requests python3-redis

3. 设置redis-server
:~$ sudo vim /etc/redis/redis.conf
…..
port 6379 #查看此设置是否为6379
…..
:~$ sudo systemctl restart redis-server.service
:~$ redis-cli
127.0.0.1:6379> # 显示此行代表redis-server设置成功,如果没有显示此行,代表redis配置有问题,请自行google解决
127.0.0.1:6379>exit
:~$
4. 安装迅雷云监工(Crysadm)
# 此库为当前2016-02-04最新版,可以正常管理赚钱宝,但缺少config.py文件,所以需要从其它库里下载此文件
:~$ git clone https://github.com/sanzuwu/crysadm.git
:~$ cd crysadm
# 此库缺少config.py,所以我们去github中的其它crysadm下载config.py
:crysadm$ wget https://raw.githubusercontent.com/zhansw/crysadm/master/config.py.example
:crysadm$ mv config.py.example config.py

5. 启动迅雷云监工(Crysadm)
:crysadm$ sudo python3.4 crysadm_helper.py &
:crysadm$ sudo python3.4 crysadm.py &

用浏览器打开http://127.0.0.1:5000/install,此页面只显示一次,所以请记住此页面上的用户名与密码

问题1:忘记用户名与密码了,如何重置crysadm?
[plain] view plain copy 在CODE上查看代码片派生到我的代码片
# 一定要停止crysadm与redis-server
# 一定要停止crysadm与redis-server
:~$ sudo killall python3.4
:~$ sudo systemctl stop redis-server.service

# 如果你的redis-server为默认的,则其数据库存储在var/lib/redis/dump.rdb,删除其即可
# 如果你修改了redis-server的配置文件,请自行删除其的缓存文件
# PS:删除此文件后,crysadm中添加的水晶帐号等相关的信息会全部消失
:~$ sudo rm /var/lib/redis/dump.rdb

# 启动redis-server与crysadm
:~$ sudo systemctl start redis-server.service
:~$ sudo python3.4 ~/crysadm/crysadm.py &
:~$ sudo python3.4 ~/crysadm/crysadm_helper.py &

# 用浏览器打开http://127.0.0.1:5000/install,会再次显示用户名与密码
问题2:如何修改crysadm网站的端口?
[sql] view plain copy 在CODE上查看代码片派生到我的代码片
# 修改config.py
:~$ vim ~/crysadm/config.py
….
class Config(object):
….
SERVER_PORT = 5000 # 修改此变量即可,如改为80

# 重启crysadm与redis-server
# 用浏览器打开http://127.0.0.1/即可

发表在 待分类 | crysadm+搭建已关闭评论

无线设备安装

在无线网桥视频传输系统中,无线网桥的传输距离跟无线网桥的发射功率和频率及天线增益有着很大的联系。这一节我们来介绍一下无线网桥传输距离、发射功率、接收灵敏度和工作频率的关系:

[Lfs](dB)=32.44+20lgd(km)+20lgf(MHz)

式中Lfs为传输损耗,d为传输距离,频率的单位以MHz计算。

由上式可见,自由空间中电波传播损耗(亦称衰减)只与工作频率f和传播距离d有关,当f或d增大一倍时,[Lfs]将分别增加6dB.

下面的公式说明在自由空间下电波传播的损耗

Los = 32.44 + 20lg d(Km) + 20lg f(MHz)

Los 是传播损耗,单位为dB

d是距离,单位是Km

f是工作频率,单位是MHz

下面举例说明一个工作频率为433.92MHz,发射功率为+10dBm(10mW),接收灵敏度为-105dBm的系统在自由空间的传播距离:

1. 由发射功率+10dBm,接收灵敏度为-105dBm

Los = 115dB

2. 由Los、f

计算得出d =30公里

这是理想状况下的传输距离,实际的应用中是会低于该值,这是因为无线通信要受到各种外界因素的影响,如大气、阻挡物、多径等造成的损耗,将上述损耗的参考值计入上式中,即可计算出近似通信距离。

假定大气、遮挡等造成的损耗为25dB,可以计算得出通信距离为:

d =1.7公里

结论: 无线传输损耗每增加6dB, 传送距离减小一倍

可见影响无线网桥传输距离的几个最主要的因素是:发射功率、天线增益、工作频率以及现场环境是否有遮挡等。

 

功率的大小与传输距离有关,较近的距离,很高的功率反而会影响传输的效果。

根据距离选择合适的发射功率,还需要根据周围环境选择合适的频率。

发表在 待分类 | 无线设备安装已关闭评论

K3 防火墙规则设置

数据库与中间层在同一台计算机上安装,为保护服务器与客户机之间通讯安全,设置必要防火墙规则。使用服务器一键设置工具进行设置后。

防火墙使用ESET,开启网络端口为允许共享模式,防火墙模式为允许例外规则的自动模式。

添加规则:

TCP协议,信任C:\WINDOWS\system32\KDCOM\KDSvrMgrService.exe应用  5159端口
TCP协议,信任C:\WINDOWS\system32\dllhost.exe应用  4000-4051 端口
发表在 k3 | K3 防火墙规则设置已关闭评论

破解excle的单元格保护

添加一个宏,编辑代码:


Public Sub AllInternalPasswords()
' Breaks worksheet and workbook structure passwords. Bob McCormick
' probably originator of base code algorithm modified for coverage
' of workbook structure / windows passwords and for multiple passwords
'
' Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1)
' Modified 2003-Apr-04 by JEM: All msgs to constants, and
' eliminate one Exit Sub (Version 1.1.1)
' Reveals hashed passwords NOT original passwords
Const DBLSPACE As String = vbNewLine & vbNewLine
Const AUTHORS As String = DBLSPACE & vbNewLine & _
"Adapted from Bob McCormick base code by" & _
"Norman Harker and JE McGimpsey"
Const HEADER As String = "AllInternalPasswords User Message"
Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04"
Const REPBACK As String = DBLSPACE & "Please report failure " & _
"to the microsoft.public.excel.programming newsgroup."
Const ALLCLEAR As String = DBLSPACE & "The workbook should " & _
"now be free of all password protection, so make sure you:" & _
DBLSPACE & "SAVE IT NOW!" & DBLSPACE & "and also" & _
DBLSPACE & "BACKUP!, BACKUP!!, BACKUP!!!" & _
DBLSPACE & "Also, remember that the password was " & _
"put there for a reason. Don't stuff up crucial formulas " & _
"or data." & DBLSPACE & "Access and use of some data " & _
"may be an offense. If in doubt, don't."
Const MSGNOPWORDS1 As String = "There were no passwords on " & _
"sheets, or workbook structure or windows." & AUTHORS & VERSION
Const MSGNOPWORDS2 As String = "There was no protection to " & _
"workbook structure or windows." & DBLSPACE & _
"Proceeding to unprotect sheets." & AUTHORS & VERSION
Const MSGTAKETIME As String = "After pressing OK button this " & _
"will take some time." & DBLSPACE & "Amount of time " & _
"depends on how many different passwords, the " & _
"passwords, and your computer's specification." & DBLSPACE & _
"Just be patient! Make me a coffee!" & AUTHORS & VERSION
Const MSGPWORDFOUND1 As String = "You had a Worksheet " & _
"Structure or Windows Password set." & DBLSPACE & _
"The password found was: " & DBLSPACE & "$$" & DBLSPACE & _
"Note it down for potential future use in other workbooks by " & _
"the same person who set this password." & DBLSPACE & _
"Now to check and clear other passwords." & AUTHORS & VERSION
Const MSGPWORDFOUND2 As String = "You had a Worksheet " & _
"password set." & DBLSPACE & "The password found was: " & _
DBLSPACE & "$$" & DBLSPACE & "Note it down for potential " & _
"future use in other workbooks by same person who " & _
"set this password." & DBLSPACE & "Now to check and clear " & _
"other passwords." & AUTHORS & VERSION
Const MSGONLYONE As String = "Only structure / windows " & _
"protected with the password that was just found." & _
ALLCLEAR & AUTHORS & VERSION & REPBACK
Dim w1 As Worksheet, w2 As Worksheet
Dim i As Integer, j As Integer, k As Integer, l As Integer
Dim m As Integer, n As Integer, i1 As Integer, i2 As Integer
Dim i3 As Integer, i4 As Integer, i5 As Integer, i6 As Integer
Dim PWord1 As String
Dim ShTag As Boolean, WinTag As Boolean
Application.ScreenUpdating = False
With ActiveWorkbook
WinTag = .ProtectStructure Or .ProtectWindows
End With
ShTag = False
For Each w1 In Worksheets
ShTag = ShTag Or w1.ProtectContents
Next w1
If Not ShTag And Not WinTag Then
MsgBox MSGNOPWORDS1, vbInformation, HEADER
Exit Sub
End If
MsgBox MSGTAKETIME, vbInformation, HEADER
If Not WinTag Then
MsgBox MSGNOPWORDS2, vbInformation, HEADER
Else
On Error Resume Next
Do 'dummy do loop
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
With ActiveWorkbook
.Unprotect Chr(i) & Chr(j) & Chr(k) & _
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
If .ProtectStructure = False And _
.ProtectWindows = False Then
PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _
Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
MsgBox Application.Substitute(MSGPWORDFOUND1, _
"$$", PWord1), vbInformation, HEADER
Exit Do 'Bypass all for...nexts
End If
End With
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
Loop Until True
On Error GoTo 0
End If
If WinTag And Not ShTag Then
MsgBox MSGONLYONE, vbInformation, HEADER
Exit Sub
End If
On Error Resume Next
For Each w1 In Worksheets
'Attempt clearance with PWord1
w1.Unprotect PWord1
Next w1
On Error GoTo 0
ShTag = False
For Each w1 In Worksheets
'Checks for all clear ShTag triggered to 1 if not.
ShTag = ShTag Or w1.ProtectContents
Next w1
If ShTag Then
For Each w1 In Worksheets
With w1
If .ProtectContents Then
On Error Resume Next
Do 'Dummy do loop
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
.Unprotect Chr(i) & Chr(j) & Chr(k) & _
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
If Not .ProtectContents Then
PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _
Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
MsgBox Application.Substitute(MSGPWORDFOUND2, _
"$$", PWord1), vbInformation, HEADER
'leverage finding Pword by trying on other sheets
For Each w2 In Worksheets
w2.Unprotect PWord1
Next w2
Exit Do 'Bypass all for...nexts
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
Loop Until True
On Error GoTo 0
End If
End With
Next w1
End If
MsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK, vbInformation, HEADER
End Sub

两次确定,最后出现的密码并不是原始密码,只是这个密码和原来的密码一样可以共同使用。

发表在 随手杂记 | 破解excle的单元格保护已关闭评论

最近公司电脑总有打不开word的情况

win7下,如果normal.dot被病毒感染,就会出现word打不开的情况,这时候删除这个normal.dot就可以。路径为C:\Users\“用户名”\AppData\Roaming\Microsoft\Templates

网上方法为运行:%appdata%\Microsoft\Templates\Normal.dot

发表在 待分类 | 最近公司电脑总有打不开word的情况已关闭评论

磁盘柜风扇

http://s.click.taobao.com/eXt2Kix

发表在 待分类 | 磁盘柜风扇已关闭评论