Compare commits

...

2 Commits

  1. 2
      archives/2018/09/index.html
  2. 2
      archives/2018/12/index.html
  3. 2
      archives/2018/index.html
  4. 2
      archives/2019/01/index.html
  5. 2
      archives/2019/02/index.html
  6. 2
      archives/2019/03/index.html
  7. 2
      archives/2019/04/index.html
  8. 2
      archives/2019/05/index.html
  9. 2
      archives/2019/07/index.html
  10. 4
      archives/2019/09/index.html
  11. 2
      archives/2019/10/index.html
  12. 4
      archives/2019/index.html
  13. 2
      archives/2020/01/index.html
  14. 2
      archives/2020/02/index.html
  15. 2
      archives/2020/06/index.html
  16. 2
      archives/2020/08/index.html
  17. 704
      archives/2020/09/index.html
  18. 12
      archives/2020/index.html
  19. 14
      archives/index.html
  20. 78
      atom.xml
  21. 2
      categories/index.html
  22. 22
      categories/tech/index.html
  23. 20
      categories/tech/page/2/index.html
  24. 10
      categories/tech/page/3/index.html
  25. 2
      category-sitemap.xml
  26. 28
      index.html
  27. 7
      life/gre.html
  28. 2
      life/liverpool-accom-inves.html
  29. 56
      post-sitemap.xml
  30. 35
      search.xml
  31. 6
      sitemap.xml
  32. 104
      tag-sitemap.xml
  33. 10
      tags/WiFi/index.html
  34. 2
      tags/crown-place/index.html
  35. 2
      tags/erp/index.html
  36. 2
      tags/index.html
  37. 10
      tags/iot/index.html
  38. 2
      tags/liverpool/index.html
  39. 10
      tags/nodeJS/index.html
  40. 2
      tags/system/index.html
  41. 2
      tags/uk/index.html
  42. 87
      tech/crown-place-erp.html
  43. 127
      tech/smart-home.html
  44. 20
      tech/wiot.html
  45. 925
      tech/wiot2.html
  46. 2
      tech/words-api.html

@ -400,7 +400,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">

@ -400,7 +400,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">

@ -400,7 +400,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">

@ -400,7 +400,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">

@ -400,7 +400,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">

@ -400,7 +400,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">

@ -400,7 +400,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">

@ -400,7 +400,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">

@ -400,7 +400,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">

@ -400,7 +400,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">
@ -412,7 +412,7 @@ pjax_google_analytics = () => {
</span>
<span class="archive-post-title">
<a href="/tech/crown-place-erp.html" class="archive-post-link">
<span class=".zh">公共开支结算系统</span><span class=".en">Public expenditure settlement system</span>
<span class=".zh">公共开支结算系统</span><span class=".en">Shared Expense Management System</span>
</a>
</span>
</div>

@ -400,7 +400,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">

@ -400,7 +400,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">
@ -442,7 +442,7 @@ pjax_google_analytics = () => {
</span>
<span class="archive-post-title">
<a href="/tech/crown-place-erp.html" class="archive-post-link">
<span class=".zh">公共开支结算系统</span><span class=".en">Public expenditure settlement system</span>
<span class=".zh">公共开支结算系统</span><span class=".en">Shared Expense Management System</span>
</a>
</span>
</div>

@ -400,7 +400,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">

@ -400,7 +400,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">

@ -400,7 +400,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">

@ -400,7 +400,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">

@ -0,0 +1,704 @@
<!DOCTYPE html>
<html lang="">
<head>
<title>Archives - EEE.DOG
</title><meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<meta name="theme-color" content="#f8f5ec" />
<meta name="msapplication-navbutton-color" content="#f8f5ec">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="#f8f5ec">
<meta name="description" content="跻身世外,随欲而安!- We see what we thought."/><meta name="keywords" content="iotcat,yimian,blog" /><link rel="alternate" href="/atom.xml" title="EEE.DOG"><link rel="shortcut icon" type="image/x-icon" href="/favicon.ico?v=1.0.0" /><script>lang = ['zh', 'en'];</script>
<script type="text/javascript" src="https://cdn.yimian.xyz/ushio-js/ushio-head.min.js"></script>
<script>page.proj = 'iotcat/eee.dog-public';</script>
<!--<link rel="stylesheet" type="text/css" href="https://cdn.yimian.xyz/kayo/lib/iziModal/iziModal.min.css" />-->
<!--<link rel="stylesheet" type="text/css" href="https://cdn.yimian.xyz/kayo/lib/iziToast/iziToast.min.css" />-->
<link rel="stylesheet" media="none" onload="this.media='all'" type="text/css" href="https://cdn.yimian.xyz/shaky/shaky.css">
<link rel="canonical" href="https://www.eee.dog/archives/2020/09/"/>
<link rel="stylesheet" media="none" onload="this.media='all'" type="text/css" href="https://cdn.yimian.xyz/kayo/lib/fancybox/jquery.fancybox.css" /><script type="text/x-mathjax-config">
MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ['\\(','\\)']] } });
</script>
<script type="text/javascript" async src="https://cdn.yimian.xyz/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.yimian.xyz/kayo/css/style.css?v=1.0.0" />
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-169276192-1" data-pjax></script>
<script>
pjax_google_analytics = () => {
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-169276192-1');
}
</script><script id="baidu_push">
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script>
<script>
window.config = {"leancloud":"","toc":true,"fancybox":true,"pjax":{"enable":true,"loadingbar":true},"latex":true};
</script>
<meta name="generator" content="Hexo 4.2.1"><link rel="alternate" href="/atom.xml" title="EEE.DOG" type="application/atom+xml">
</head>
<body><div id="mobile-navbar" class="mobile-navbar">
<div class="mobile-header-logo">
<a href="/." class="logo">EEE.DOG</a>
</div>
<div class="mobile-navbar-icon">
<span></span>
<span></span>
<span></span>
</div>
<div class="loading-bar">
<div class="progress"></div>
</div>
</div>
<nav id="mobile-menu" class="mobile-menu slideout-menu">
<ul class="mobile-menu-list"><div id="mobile-menu-Home">
<a href="/">
<li class="mobile-menu-item"><span class=".en">Home</span><span class=".zh">主页</span>
</li>
</a></div><div id="mobile-menu-Archives">
<a href="/archives/">
<li class="mobile-menu-item"><span class=".en">Archives</span><span class=".zh">归档</span>
</li>
</a></div><div id="mobile-menu-Categories">
<a href="/categories/">
<li class="mobile-menu-item"><span class=".en">Categories</span><span class=".zh">分类</span>
</li>
</a></div><div id="mobile-menu-Projects">
<a href="#">
<li class="mobile-menu-item"><span class=".en">Projects</span><span class=".zh">项目</span>
</li>
</a><ul class="sub-menu" style="display: none;">
<li>
<a href="https://fp.yimian.xyz/" target="_blank" rel="noopener">
<span class=".en">fp</span><span class=".zh">fp</span>
</a>
</li>
<li>
<a href="https://wiot.yimian.xyz/" target="_blank" rel="noopener">
<span class=".en">wiot</span><span class=".zh">wiot</span>
</a>
</li>
</ul>
<script>$('#mobile-menu-Projects').click(function(){
$("#mobile-menu-Projects ul").toggle();
})</script>
</div><div id="mobile-menu-Map">
<a href="#">
<li class="mobile-menu-item"><span class=".en">Map</span><span class=".zh">导航</span>
</li>
</a><ul class="sub-menu" style="display: none;">
<li>
<a href="https://api.yimian.xyz/" target="_blank" rel="noopener">
<span class=".en">APIs</span><span class=".zh">接口</span>
</a>
</li>
<li>
<a href="https://img.yimian.xyz/" target="_blank" rel="noopener">
<span class=".en">Imgs</span><span class=".zh">图库</span>
</a>
</li>
<li>
<a href="/">
<span class=".en">Imgbed</span><span class=".zh">图床</span>
</a>
</li>
<li>
<a href="https://share.yimian.xyz/" target="_blank" rel="noopener">
<span class=".en">Fileshare</span><span class=".zh">文件分享</span>
</a>
</li>
<li>
<a href="https://monitor.yimian.xyz/" target="_blank" rel="noopener">
<span class=".en">Monitor</span><span class=".zh">监控</span>
</a>
</li>
<li>
<a href="https://acg.watch/" target="_blank" rel="noopener">
<span class=".en">ACG.WATCH</span><span class=".zh">视频</span>
</a>
</li>
<li>
<a href="https://onedrive.yimian.xyz/" target="_blank" rel="noopener">
<span class=".en">Oneindex</span><span class=".zh">网盘</span>
</a>
</li>
<li>
<a href="https://proxy.yimian.xyz/" target="_blank" rel="noopener">
<span class=".en">Proxy</span><span class=".zh">下载代理</span>
</a>
</li>
<li>
<a href="https://shorturl.yimian.xyz/" target="_blank" rel="noopener">
<span class=".en">ShortenURL</span><span class=".zh">短链</span>
</a>
</li>
</ul>
<script>$('#mobile-menu-Map').click(function(){
$("#mobile-menu-Map ul").toggle();
})</script>
</div><div id="mobile-menu-About">
<a href="#">
<li class="mobile-menu-item"><span class=".en">About</span><span class=".zh">关于</span>
</li>
</a><ul class="sub-menu" style="display: none;">
<li>
<a href="/links/">
<span class=".en">links</span><span class=".zh">友链</span>
</a>
</li>
<li>
<a href="https://iotcat.me/" target="_blank" rel="noopener">
<span class=".en">Me</span><span class=".zh">关于我</span>
</a>
</li>
</ul>
<script>$('#mobile-menu-About').click(function(){
$("#mobile-menu-About ul").toggle();
})</script>
</div></ul>
</nav>
<div class="container" id="mobile-panel">
<header id="header" class="header"><div class="logo-wrapper">
<a href="/." class="logo">EEE.DOG</a>
</div>
<nav class="site-navbar"><ul id="menu" class="menu"><li class="menu-item">
<a id="menu-Home" class="menu-item-link" href="/">
<span class=".en">Home</span><span class=".zh">主页</span>
</a>
</li>
<li class="menu-item">
<a id="menu-Archives" class="menu-item-link" href="/archives/">
<span class=".en">Archives</span><span class=".zh">归档</span>
</a>
</li>
<li class="menu-item">
<a id="menu-Categories" class="menu-item-link" href="/categories/">
<span class=".en">Categories</span><span class=".zh">分类</span>
</a>
</li>
<li class="menu-item">
<a id="menu-Projects" class="menu-item-link" href="#">
<span class=".en">Projects</span><span class=".zh">项目</span>
</a>
<script>
$("#menu-Projects").click(function(){
tips.question({
timeout: 20000,
close: false,
overlay: true,
displayMode: 'once',
//id: 'question',
zindex: 999,
title: 'Projects',
message: '',
position: 'center',
buttons: [
['<button><b>'+((page.tran.getLang() != 'zh')?'fp':'fp')+'</b></button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
if("undefined" == "true")
pjax.loadUrl("https://fp.yimian.xyz/");
else
window.location.href="https://fp.yimian.xyz/";
}, true],
['<button><b>'+((page.tran.getLang() != 'zh')?'wiot':'wiot')+'</b></button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
if("undefined" == "true")
pjax.loadUrl("https://wiot.yimian.xyz/");
else
window.location.href="https://wiot.yimian.xyz/";
}, true],
['<button><b>close</b></button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
}, true],
]
});
});
</script>
</li>
<li class="menu-item">
<a id="menu-Map" class="menu-item-link" href="#">
<span class=".en">Map</span><span class=".zh">导航</span>
</a>
<script>
$("#menu-Map").click(function(){
tips.question({
timeout: 20000,
close: false,
overlay: true,
displayMode: 'once',
//id: 'question',
zindex: 999,
title: 'Map',
message: '',
position: 'center',
buttons: [
['<button><b>'+((page.tran.getLang() != 'zh')?'APIs':'接口')+'</b></button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
if("undefined" == "true")
pjax.loadUrl("https://api.yimian.xyz/");
else
window.location.href="https://api.yimian.xyz/";
}, true],
['<button><b>'+((page.tran.getLang() != 'zh')?'Imgs':'图库')+'</b></button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
if("undefined" == "true")
pjax.loadUrl("https://img.yimian.xyz/");
else
window.location.href="https://img.yimian.xyz/";
}, true],
['<button><b>'+((page.tran.getLang() != 'zh')?'Imgbed':'图床')+'</b></button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
if("undefined" == "true")
pjax.loadUrl("/");
else
window.location.href="undefined";
}, true],
['<button><b>'+((page.tran.getLang() != 'zh')?'Fileshare':'文件分享')+'</b></button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
if("undefined" == "true")
pjax.loadUrl("https://share.yimian.xyz/");
else
window.location.href="https://share.yimian.xyz/";
}, true],
['<button><b>'+((page.tran.getLang() != 'zh')?'Monitor':'监控')+'</b></button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
if("undefined" == "true")
pjax.loadUrl("https://monitor.yimian.xyz/");
else
window.location.href="https://monitor.yimian.xyz/";
}, true],
['<button><b>'+((page.tran.getLang() != 'zh')?'ACG.WATCH':'视频')+'</b></button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
if("undefined" == "true")
pjax.loadUrl("https://acg.watch/");
else
window.location.href="https://acg.watch/";
}, true],
['<button><b>'+((page.tran.getLang() != 'zh')?'Oneindex':'网盘')+'</b></button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
if("undefined" == "true")
pjax.loadUrl("https://onedrive.yimian.xyz/");
else
window.location.href="https://onedrive.yimian.xyz/";
}, true],
['<button><b>'+((page.tran.getLang() != 'zh')?'Proxy':'下载代理')+'</b></button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
if("undefined" == "true")
pjax.loadUrl("https://proxy.yimian.xyz/");
else
window.location.href="https://proxy.yimian.xyz/";
}, true],
['<button><b>'+((page.tran.getLang() != 'zh')?'ShortenURL':'短链')+'</b></button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
if("undefined" == "true")
pjax.loadUrl("https://shorturl.yimian.xyz/");
else
window.location.href="https://shorturl.yimian.xyz/";
}, true],
['<button><b>close</b></button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
}, true],
]
});
});
</script>
</li>
<li class="menu-item">
<a id="menu-About" class="menu-item-link" href="#">
<span class=".en">About</span><span class=".zh">关于</span>
</a>
<script>
$("#menu-About").click(function(){
tips.question({
timeout: 20000,
close: false,
overlay: true,
displayMode: 'once',
//id: 'question',
zindex: 999,
title: 'About',
message: '',
position: 'center',
buttons: [
['<button><b>'+((page.tran.getLang() != 'zh')?'links':'友链')+'</b></button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
if("true" == "true")
pjax.loadUrl("/links/");
else
window.location.href="/links/";
}, true],
['<button><b>'+((page.tran.getLang() != 'zh')?'Me':'关于我')+'</b></button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
if("undefined" == "true")
pjax.loadUrl("https://iotcat.me/");
else
window.location.href="https://iotcat.me/";
}, true],
['<button><b>close</b></button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
}, true],
]
});
});
</script>
</li>
</ul></nav>
</header>
<main id="main" class="main">
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
40 Posts In Total
</span>
</div>
<div class="collection-title">
<h2 class="archive-year">2020</h2>
</div>
<div class="archive-post">
<span class="archive-post-time">
09-15
</span>
<span class="archive-post-title">
<a href="/tech/wiot2.html" class="archive-post-link">
<span class=".zh">wIoT发展展望</span><span class=".en">wIoT - What is the future</span>
</a>
</span>
</div>
</section><nav class="pagination"></nav></div></div>
</main>
<footer id="footer" class="footer">
<script>
page_obj = {
layout: "",
comments: ""
};
</script><div class="social-links"><a href="mailto:i@iotcat.me" class="iconfont icon-email" title="email"></a>
<a href="https://github.com/iotcat" target="_blank" rel="noopener" class="iconfont icon-github" title="github"></a>
<a href="/atom.xml" class="iconfont icon-rss" title="rss"></a>
</div><div class="copyright"><span class="power-by">
Powered by <a class="hexo-link" href="https://ushio.cool/" target="_blank" rel="noopener">Ushio</a>
</span>
<span class="division">|</span>
<span class="theme-info">
Theme -
<a class="theme-link" href="https://github.com/iotcat/kayo" target="_blank" rel="noopener">Kayo</a>
</span>
<span class="copyright-year">&copy;2018 - 2020<span class="heart shaky">
<i class="iconfont icon-heart"></i>
</span>
<span class="author"><a href="https://iotcat.me/" target="_blank" rel="noopener">IoTcat</a></span>
</span>
</div>
</footer>
<div class="back-to-top" id="back-to-top">
<i class="iconfont icon-up"></i>
</div>
</div>
<script src="https://cdn.yimian.xyz/kayo/lib/valine/valine.min.js" data-pjax></script>
<style>
/* 背景图片 */
#veditor {
background-image: url(https://cdn.yimian.xyz/img/blog/comments_bg.webp);
background-size: contain;
background-repeat: no-repeat;
background-position: right;
background-color: rgba(255, 255, 255, 0);
resize: vertical
}
/* 头像旋转 */
img.vimg {
transition: all 1s /* 旋转时间为 1s */
}
img.vimg:hover {
transform: rotate(360deg);
-webkit-transform: rotate(360deg);
-moz-transform: rotate(360deg);
-o-transform: rotate(360deg);
-ms-transform: rotate(360deg);
}
/* 盒子模式 */
#vcomments .vcards .vcard {
padding: 15px 20px 0 20px;
border-radius: 10px;
margin-bottom: 15px;
box-shadow: 0 0 4px 1px rgba(0, 0, 0, .12);
transition: all .3s
}
#vcomments .vcards .vcard:hover {
box-shadow: 0 0 8px 3px rgba(0, 0, 0, .12)
}
#vcomments .vcards .vcard .vh .vcard {
border: none;
box-shadow: none;
}
</style>
<script>
pjax_valine = () => {
$.get('https://auth.yimian.xyz/getEmailHash.php', function(res){
if(page.tran.getLang() == 'zh'){
var lan = 'zh-CN';
var metaPlaceholder = {"nick":"昵称/QQ号","mail":"邮箱(完全保密)"};
var tagMeta = ["博主","小伙伴","访客"];
var placeholder = "填写邮箱可以及时收到回复哦(●'◡'●)";
}else{
var lan = 'en';
var metaPlaceholder = {"nick":"Nickname/QQ","mail":"EMail"};
var tagMeta = ["Master","Friend","Visitor"];
var placeholder = "Leave some comments here (●'◡'●)";
}
new Valine({
el: '#vcomments',
appId: 'eVzpK7EyT6OafJvXWIRminWT-gzGzoHsz',
appKey: '2qjuEBgVE0BscTQnTmoS9roU',
master: '9b616ff4cd6c305e5970bee7b1bd9b1f', //博主邮箱md5
tagMeta: tagMeta, //标识字段名
friends: res, //["b6ddef7c7e1c647e7767afeacdfb7b64","46dd4e6fef4f9591736c4723a965ca2e","6132d77f9f0ae060bc733090991acecb","3e00e104b79d7c6e866c6b23c6ba6dfc"], //小伙伴邮箱Md5
metaPlaceholder: metaPlaceholder,
placeholder: placeholder,
lang: lan,
path: window.location.pathname,
enableQQ: true,
visitor: true,
emojiCDN: '//i0.hdslb.com/bfs/emote/',
emojiMaps: {
"tv_doge": "6ea59c827c414b4a2955fe79e0f6fd3dcd515e24.png",
"tv_亲亲": "a8111ad55953ef5e3be3327ef94eb4a39d535d06.png",
"tv_偷笑": "bb690d4107620f1c15cff29509db529a73aee261.png",
"tv_再见": "180129b8ea851044ce71caf55cc8ce44bd4a4fc8.png",
"tv_冷漠": "b9cbc755c2b3ee43be07ca13de84e5b699a3f101.png",
"tv_发怒": "34ba3cd204d5b05fec70ce08fa9fa0dd612409ff.png",
"tv_发财": "34db290afd2963723c6eb3c4560667db7253a21a.png",
"tv_可爱": "9e55fd9b500ac4b96613539f1ce2f9499e314ed9.png",
"tv_吐血": "09dd16a7aa59b77baa1155d47484409624470c77.png",
"tv_呆": "fe1179ebaa191569b0d31cecafe7a2cd1c951c9d.png",
"tv_呕吐": "9f996894a39e282ccf5e66856af49483f81870f3.png",
"tv_困": "241ee304e44c0af029adceb294399391e4737ef2.png",
"tv_坏笑": "1f0b87f731a671079842116e0991c91c2c88645a.png",
"tv_大佬": "093c1e2c490161aca397afc45573c877cdead616.png",
"tv_大哭": "23269aeb35f99daee28dda129676f6e9ea87934f.png",
"tv_委屈": "d04dba7b5465779e9755d2ab6f0a897b9b33bb77.png",
"tv_害羞": "a37683fb5642fa3ddfc7f4e5525fd13e42a2bdb1.png",
"tv_尴尬": "7cfa62dafc59798a3d3fb262d421eeeff166cfa4.png",
"tv_微笑": "70dc5c7b56f93eb61bddba11e28fb1d18fddcd4c.png",
"tv_思考": "90cf159733e558137ed20aa04d09964436f618a1.png",
"tv_惊吓": "0d15c7e2ee58e935adc6a7193ee042388adc22af.png",
"tv_打脸": "56ab10b624063e966bfcb76ea5dc4794d87dfd47.png",
"tv_抓狂": "fe31c08edad661d63762b04e17b8d5ae3c71a757.png",
"tv_抠鼻": "c666f55e88d471e51bbd9fab9bb308110824a6eb.png",
"tv_斜眼笑": "911f987aa8bc1bee12d52aafe62bc41ef4474e6c.png",
"tv_无奈": "ea8ed89ee9878f2fece2dda0ea8a5dbfe21b5751.png",
"tv_晕": "5443c22b4d07fb1907ccc610c8e6db254f2461b7.png",
"tv_流汗": "cead1c351ab8d79e9f369605beb90148db0fbed3.png",
"tv_流泪": "7e71cde7858f0cd50d74b0264aa26db612a8a167.png",
"tv_流鼻血": "c32d39db2737f89b904ca32700d140a9241b0767.png",
"tv_点赞": "f85c354995bd99e28fc76c869bfe42ba6438eff4.png",
"tv_生气": "26702dcafdab5e8225b43ffd23c94ac1ff932654.png",
"tv_生病": "8b0ec90e6b86771092a498c54f09fc94621c1900.png",
"tv_疑问": "0793d949b18d7be716078349c202c15ff166f314.png",
"tv_白眼": "c1d59f439e379ee50eef488bcb5e5378e5044ea4.png",
"tv_皱眉": "72ccad6679fea0d14cce648b4d818e09b8ffea2d.png",
"tv_目瞪口呆": "0b8cb81a68de5d5365212c99375e7ace3e7891b7.png",
"tv_睡着": "8b196675b53af58264f383c50ad0945048290b33.png",
"tv_笑哭": "1abc628f6d4f4caf9d0e7800878f4697abbc8273.png",
"tv_腼腆": "89712c0d4af73e67f89e35cbc518420380a7f6f4.png",
"tv_色": "61822c7e9aae5da76475e7892534545336b23a6f.png",
"tv_调侃": "4bc022533ef31544ca0d72c12c808cf4a1cce3e3.png",
"tv_调皮": "b9c41de8e82dd7a8515ae5e3cb63e898bf245186.png",
"tv_鄙视": "6e72339f346a692a495b123174b49e4e8e781303.png",
"tv_闭嘴": "c9e990da7f6e93975e25fd8b70e2e290aa4086ef.png",
"tv_难过": "87f46748d3f142ebc6586ff58860d0e2fc8263ba.png",
"tv_馋": "fc7e829b845c43c623c8b490ee3602b7f0e76a31.png",
"tv_鬼脸": "0ffbbddf8a94d124ca2f54b360bbc04feb6bbfea.png",
"tv_黑人问号": "45821a01f51bc867da9edbaa2e070410819a95b2.png",
"tv_鼓掌": "1d21793f96ef4e6f48b23e53e3b9e42da833a0f6.png"
// ... 更多表情
}
});
});
};
</script><script type="text/javascript" src="https://cdn.yimian.xyz/ushio-js/ushio-footer.min.js"></script>
<script>
session.onload(function(){
if(session.get('group') != 'anonymous'){
function insertNick(){
if($('.vnick').length){
$('.vnick').val(session.get('nickname'));
}else{
setTimeout(insertNick, 500);
}
}
function insertMail(){
if($('.vmail').length){
$('.vmail').val(session.get('email'));
}else{
setTimeout(insertMail, 500);
}
}
if(session.get('nickname')){
insertNick();
}
if(session.get('email')){
insertMail();
}
}
});
</script>
<script type="text/javascript" src="https://cdn.yimian.xyz/kayo/lib/slideout/slideout.js"></script>
<script type="text/javascript" src="https://cdn.yimian.xyz/kayo/lib/fancybox/jquery.fancybox.pack.js"></script>
<script type="text/javascript" src="https://cdn.yimian.xyz/kayo/lib/iziToast/iziToast.min.js"></script>
<script type="text/javascript" src="https://cdn.yimian.xyz/kayo/lib/iziModal/iziModal.min.js"></script>
<script type="text/javascript" src="https://cdn.yimian.xyz/kayo/lib/mermaid/mermaid.min.js"></script>
<script type="text/javascript" src="https://cdn.yimian.xyz/kayo/js/src/kayo.js?v=1.0.0" data-pjax></script>
<script type="text/javascript" src="https://cdn.yimian.xyz/kayo/js/src/kayo-no-pjax.js?v=1.0.0"></script>
<script src="https://cdn.yimian.xyz/kayo/lib/pjax/pjax.min.js"></script>
<script>window.pjax = new Pjax({
elements: 'a[href]:not([href^="#"]):not([href="javascript:void(0)"])',
selectors: ["head title, #main", "#footer"],
});/* lazyload */
window.imageLazyLoadSetting = {
isSPA: false,
processImages: null,
};
window.addEventListener("load",function(){var t=/\.(gif|jpg|jpeg|tiff|png)$/i,r=/^data:image\/[a-z]+;base64,/;Array.prototype.slice.call(document.querySelectorAll("img[data-original]")).forEach(function(a){var e=a.parentNode;"A"===e.tagName&&(e.href.match(t)||e.href.match(r))&&(e.href=a.dataset.original)})});
/* 第一次载入页面加载的函数 */
pjax_ini = () => {
/* 关闭侧边栏 */
window.slideout.close();
if(page_obj.comments == "true"){pjax_valine();}pjax_google_analytics();mermaid.init(undefined, $(".mermaid"));/* lazy load */
!function(n){n.imageLazyLoadSetting.processImages=o;var i=n.imageLazyLoadSetting.isSPA,r=Array.prototype.slice.call(document.querySelectorAll("img[data-original]"));function o(){i&&(r=Array.prototype.slice.call(document.querySelectorAll("img[data-original]")));for(var t,e,a=0;a<r.length;a++)t=r[a],e=void 0,0<=(e=t.getBoundingClientRect()).bottom&&0<=e.left&&e.top<=(n.innerHeight||document.documentElement.clientHeight)&&function(){var t,e,n,i,o=r[a];t=o,e=function(){r=r.filter(function(t){return o!==t})},n=new Image,i=t.getAttribute("data-original"),n.onload=function(){t.src=i,e&&e()},n.src=i}()}o(),n.addEventListener("scroll",function(){var t,e;t=o,e=n,clearTimeout(t.tId),t.tId=setTimeout(function(){t.call(e)},500)})}(this);
!function(){var t=/\.(gif|jpg|jpeg|tiff|png)$/i,r=/^data:image\/[a-z]+;base64,/;Array.prototype.slice.call(document.querySelectorAll("img[data-original]")).forEach(function(a){var e=a.parentNode;"A"===e.tagName&&(e.href.match(t)||e.href.match(r))&&(e.href=a.dataset.original)})}();
};
/* 第一次 执行 */
pjax_ini();var loadingBar = document.querySelector(".loading-bar");
var progress = document.querySelector(".loading-bar .progress");
var timer = null;
// Pjax 开始时执行的函数
var loadingbarStart = function () {
// 进度条默认已经加载 20%
var loadingBarWidth = 20;
// 进度条的最大增加宽度
var MAX_LOADING_WIDTH = 95;
// 显示进度条
loadingBar.classList.add("loading");
// 初始化进度条的宽度
progress.style.width = loadingBarWidth + "%";
clearInterval(timer);
timer = setInterval(function () {
// 进度条的增加速度(可以改为一个随机值,显得更加真实)
loadingBarWidth += 3;
// 当进度条到达 95% 后停止增加
if (loadingBarWidth > MAX_LOADING_WIDTH) {
loadingBarWidth = MAX_LOADING_WIDTH;
}
progress.style.width = loadingBarWidth + "%";
}, 500);
};
// Pjax 完成之后执行的函数
var loadingbarStop = function () {
clearInterval(timer);
progress.style.width = "100%";
loadingBar.classList.remove("loading");
setTimeout(function () {
progress.style.width = 0;
}, 400);
};/* Pjax 开始时,重新加载的函数 */
document.addEventListener("pjax:send", function () {loadingbarStart();
});
/* Pjax 完成后,重新加载的函数 */
document.addEventListener("pjax:complete", function () {
/* 重载带data-pjax的script,或者.pjax-reload属性内容的script */
$("script[data-pjax], .pjax-reload script").each(function () {
$(this).parent().append($(this).remove());
});
pjax_ini();loadingbarStop();
page.tran.setLang();
});
/* Pjax 出错,执行的函数 */
document.addEventListener("pjax:error", function () {
});</script>
</body>
</html>

@ -400,13 +400,23 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">
<h2 class="archive-year">2020</h2>
</div>
<div class="archive-post">
<span class="archive-post-time">
09-15
</span>
<span class="archive-post-title">
<a href="/tech/wiot2.html" class="archive-post-link">
<span class=".zh">wIoT发展展望</span><span class=".en">wIoT - What is the future</span>
</a>
</span>
</div>
<div class="archive-post">
<span class="archive-post-time">
08-21
</span>

@ -400,13 +400,23 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-title">
<span class="archive-post-counter">
39 Posts In Total
40 Posts In Total
</span>
</div>
<div class="collection-title">
<h2 class="archive-year">2020</h2>
</div>
<div class="archive-post">
<span class="archive-post-time">
09-15
</span>
<span class="archive-post-title">
<a href="/tech/wiot2.html" class="archive-post-link">
<span class=".zh">wIoT发展展望</span><span class=".en">wIoT - What is the future</span>
</a>
</span>
</div>
<div class="archive-post">
<span class="archive-post-time">
08-21
</span>
@ -535,7 +545,7 @@ pjax_google_analytics = () => {
</span>
<span class="archive-post-title">
<a href="/tech/crown-place-erp.html" class="archive-post-link">
<span class=".zh">公共开支结算系统</span><span class=".en">Public expenditure settlement system</span>
<span class=".zh">公共开支结算系统</span><span class=".en">Shared Expense Management System</span>
</a>
</span>
</div>

File diff suppressed because one or more lines are too long

@ -402,7 +402,7 @@ pjax_google_analytics = () => {
6 Categories In Total
</div>
<div class="categories-tags">
<a class="category-link" href="/categories/cook/">cook<span class="category-count">2</span></a> <a class="category-link" href="/categories/life/">life<span class="category-count">5</span></a> <a class="category-link" href="/categories/notes/">notes<span class="category-count">2</span></a> <a class="category-link" href="/categories/tech/">tech<span class="category-count">22</span></a> <a class="category-link" href="/categories/thoughts/">thoughts<span class="category-count">6</span></a> <a class="category-link" href="/categories/travel/">travel<span class="category-count">2</span></a>
<a class="category-link" href="/categories/cook/">cook<span class="category-count">2</span></a> <a class="category-link" href="/categories/life/">life<span class="category-count">5</span></a> <a class="category-link" href="/categories/notes/">notes<span class="category-count">2</span></a> <a class="category-link" href="/categories/tech/">tech<span class="category-count">23</span></a> <a class="category-link" href="/categories/thoughts/">thoughts<span class="category-count">6</span></a> <a class="category-link" href="/categories/travel/">travel<span class="category-count">2</span></a>
</div>
</div></div></div>
</main>

@ -402,6 +402,16 @@ pjax_google_analytics = () => {
<h2 class="archive-name">tech</h2>
</div>
<div class="archive-post">
<span class="archive-post-time">
2020-09-15
</span>
<span class="archive-post-title">
<a href="/tech/wiot2.html" class="archive-post-link">
<span class=".zh">wIoT发展展望</span><span class=".en">wIoT - What is the future</span>
</a>
</span>
</div>
<div class="archive-post">
<span class="archive-post-time">
2020-06-16
</span>
@ -437,7 +447,7 @@ pjax_google_analytics = () => {
</span>
<span class="archive-post-title">
<a href="/tech/crown-place-erp.html" class="archive-post-link">
<span class=".zh">公共开支结算系统</span><span class=".en">Public expenditure settlement system</span>
<span class=".zh">公共开支结算系统</span><span class=".en">Shared Expense Management System</span>
</a>
</span>
</div>
@ -491,16 +501,6 @@ pjax_google_analytics = () => {
</a>
</span>
</div>
<div class="archive-post">
<span class="archive-post-time">
2019-07-10
</span>
<span class="archive-post-title">
<a href="/tech/rand-pic-api.html" class="archive-post-link">
<span class=".zh">随机图片API</span><span class=".en">Random Picture API</span>
</a>
</span>
</div>
</section><nav class="pagination"><a class="next" href="/categories/tech/page/2/">
<span class="next-text">Next</span>
<i class="iconfont icon-right"></i>

@ -399,6 +399,16 @@ pjax_google_analytics = () => {
<main id="main" class="main">
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-post">
<span class="archive-post-time">
2019-07-10
</span>
<span class="archive-post-title">
<a href="/tech/rand-pic-api.html" class="archive-post-link">
<span class=".zh">随机图片API</span><span class=".en">Random Picture API</span>
</a>
</span>
</div>
<div class="archive-post">
<span class="archive-post-time">
2019-05-20
</span>
@ -488,16 +498,6 @@ pjax_google_analytics = () => {
</a>
</span>
</div>
<div class="archive-post">
<span class="archive-post-time">
2018-12-08
</span>
<span class="archive-post-title">
<a href="/tech/build-nextcloud-server-on-centos7.html" class="archive-post-link">
<span class=".zh">在Centos 7.5上构建Nextcloud服务器</span><span class=".en">Build Nextcloud Server on Centos 7.5</span>
</a>
</span>
</div>
</section><nav class="pagination"><a class="prev" href="/categories/tech/">
<i class="iconfont icon-left"></i>
<span class="prev-text">Prev</span>

@ -399,6 +399,16 @@ pjax_google_analytics = () => {
<main id="main" class="main">
<div class="content-wrapper">
<div id="content" class="content"><section id="archive" class="archive"><div class="archive-post">
<span class="archive-post-time">
2018-12-08
</span>
<span class="archive-post-title">
<a href="/tech/build-nextcloud-server-on-centos7.html" class="archive-post-link">
<span class=".zh">在Centos 7.5上构建Nextcloud服务器</span><span class=".en">Build Nextcloud Server on Centos 7.5</span>
</a>
</span>
</div>
<div class="archive-post">
<span class="archive-post-time">
2018-09-08
</span>

@ -9,7 +9,7 @@
<url>
<loc>https://www.eee.dog/categories/tech/</loc>
<lastmod>2020-09-07T15:55:16.091Z</lastmod>
<lastmod>2020-09-15T15:22:42.110Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>

@ -398,6 +398,32 @@ pjax_google_analytics = () => {
<main id="main" class="main">
<div class="content-wrapper">
<div id="content" class="content"><section id="posts" class="posts"><article class="post">
<header class="post-header">
<h1 class="post-title"><a class="post-link" href="/tech/wiot2.html"><span class=".zh">wIoT发展展望</span><span class=".en" hidden>wIoT - What is the future</span></a>
</h1>
<div class="post-meta">
<span class="post-time">
2020-09-15
</span><span class="post-category">
<a href="/categories/tech/">tech</a>
</span>
</div>
</header>
<div class="post-content"><span class=".zh">
<p>本文将讨论wiot项目下一步的发展目标与实施方法。</p>
</span>
<span class=".en">
<p>This article will discuss the next development goals and implementation methods of the Wiot project.</p>
</span>
<div class="read-more">
<a href="/tech/wiot2.html" class="read-more-link">Read more..</a>
</div>
</div></article>
<article class="post">
<header class="post-header">
<h1 class="post-title"><a class="post-link" href="/tech/kms.html"><span class=".zh">一键激活win10</span><span class=".en" hidden>Activate win10 with one click</span></a>
</h1>
@ -451,7 +477,7 @@ pjax_google_analytics = () => {
</div></article>
<article class="post">
<header class="post-header">
<h1 class="post-title"><a class="post-link" href="/tech/crown-place-erp.html"><span class=".zh">公共开支结算系统</span><span class=".en" hidden>Public expenditure settlement system</span></a>
<h1 class="post-title"><a class="post-link" href="/tech/crown-place-erp.html"><span class=".zh">公共开支结算系统</span><span class=".en" hidden>Shared Expense Management System</span></a>
</h1>
<div class="post-meta">

@ -503,7 +503,12 @@ pjax_google_analytics = () => {
<a href="/tags/gre/">gre</a>
</div>
<nav class="post-nav"><a class="next" href="/life/cs-ece-master-programs.html">
<nav class="post-nav"><a class="prev" href="/tech/wiot2.html">
<i class="iconfont icon-left"></i>
<span class="prev-text nav-default"><span class=".zh">wIoT发展展望</span><span class=".en">wIoT - What is the future</span></span>
<span class="prev-text nav-mobile">Prev</span>
</a>
<a class="next" href="/life/cs-ece-master-programs.html">
<span class="next-text nav-default"><span class=".zh">CS, ECE硕士项目调研</span><span class=".en">CS, ECE Master Program Investigation</span></span>
<span class="prev-text nav-mobile">Next</span>
<i class="iconfont icon-right"></i>

@ -639,7 +639,7 @@ pjax_google_analytics = () => {
<span class="prev-text nav-mobile">Prev</span>
</a>
<a class="next" href="/tech/crown-place-erp.html">
<span class="next-text nav-default"><span class=".zh">公共开支结算系统</span><span class=".en">Public expenditure settlement system</span></span>
<span class="next-text nav-default"><span class=".zh">公共开支结算系统</span><span class=".en">Shared Expense Management System</span></span>
<span class="prev-text nav-mobile">Next</span>
<i class="iconfont icon-right"></i>
</a>

@ -8,96 +8,104 @@
</url>
<url>
<loc>https://www.eee.dog/tech/memobird-printer-api.html</loc>
<lastmod>2020-09-07T15:55:16.091Z</lastmod>
<loc>https://www.eee.dog/tech/wiot2.html</loc>
<lastmod>2020-09-15T15:22:42.110Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.eee.dog/tech/words-api.html</loc>
<lastmod>2020-09-07T15:16:37.656Z</lastmod>
<loc>https://www.eee.dog/tech/wiot.html</loc>
<lastmod>2020-09-15T09:11:16.774Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.eee.dog/tech/music-api.html</loc>
<lastmod>2020-09-07T15:16:36.478Z</lastmod>
<loc>https://www.eee.dog/tech/smart-home.html</loc>
<lastmod>2020-09-08T12:58:29.284Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.eee.dog/notes/electromagnetism.html</loc>
<lastmod>2020-09-07T08:42:30.667Z</lastmod>
<loc>https://www.eee.dog/tech/crown-place-erp.html</loc>
<lastmod>2020-09-08T10:37:15.710Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.eee.dog/life/gre.html</loc>
<lastmod>2020-09-07T08:33:46.083Z</lastmod>
<loc>https://www.eee.dog/tech/memobird-printer-api.html</loc>
<lastmod>2020-09-07T15:55:16.091Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.eee.dog/thoughts/fog-architecture-and-internet-of-things.html</loc>
<lastmod>2020-09-06T16:19:09.491Z</lastmod>
<loc>https://www.eee.dog/tech/words-api.html</loc>
<lastmod>2020-09-07T15:16:37.656Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.eee.dog/thoughts/global-climate-change.html</loc>
<lastmod>2020-09-06T16:17:24.242Z</lastmod>
<loc>https://www.eee.dog/tech/music-api.html</loc>
<lastmod>2020-09-07T15:16:36.478Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.eee.dog/tech/wiot.html</loc>
<lastmod>2020-09-06T16:14:13.377Z</lastmod>
<loc>https://www.eee.dog/notes/electromagnetism.html</loc>
<lastmod>2020-09-07T08:42:30.667Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.eee.dog/tech/rand-pic-api.html</loc>
<lastmod>2020-09-06T16:12:46.077Z</lastmod>
<loc>https://www.eee.dog/life/gre.html</loc>
<lastmod>2020-09-07T08:33:46.083Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.eee.dog/tech/smartfarming-surf.html</loc>
<lastmod>2020-09-06T16:09:30.505Z</lastmod>
<loc>https://www.eee.dog/thoughts/fog-architecture-and-internet-of-things.html</loc>
<lastmod>2020-09-06T16:19:09.491Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.eee.dog/tech/smart-home.html</loc>
<lastmod>2020-09-05T13:05:36.029Z</lastmod>
<loc>https://www.eee.dog/thoughts/global-climate-change.html</loc>
<lastmod>2020-09-06T16:17:24.242Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.eee.dog/tech/crown-place-erp.html</loc>
<lastmod>2020-09-05T13:04:51.789Z</lastmod>
<loc>https://www.eee.dog/tech/rand-pic-api.html</loc>
<lastmod>2020-09-06T16:12:46.077Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.eee.dog/tech/smartfarming-surf.html</loc>
<lastmod>2020-09-06T16:09:30.505Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>

File diff suppressed because one or more lines are too long

@ -4,7 +4,7 @@
<sitemap>
<loc>https://www.eee.dog/post-sitemap.xml</loc>
<lastmod>2020-09-07T15:55:16.091Z</lastmod>
<lastmod>2020-09-15T15:22:42.110Z</lastmod>
</sitemap>
<sitemap>
@ -14,12 +14,12 @@
<sitemap>
<loc>https://www.eee.dog/category-sitemap.xml</loc>
<lastmod>2020-09-07T15:55:16.091Z</lastmod>
<lastmod>2020-09-15T15:22:42.110Z</lastmod>
</sitemap>
<sitemap>
<loc>https://www.eee.dog/tag-sitemap.xml</loc>
<lastmod>2020-09-07T15:55:16.091Z</lastmod>
<lastmod>2020-09-15T15:22:42.110Z</lastmod>
</sitemap>
</sitemapindex>

@ -3,183 +3,183 @@
<url>
<loc>https://www.eee.dog/tags/motto/</loc>
<lastmod>2020-09-07T15:55:16.091Z</lastmod>
<loc>https://www.eee.dog/tags/WiFi/</loc>
<lastmod>2020-09-15T15:22:42.110Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/api/</loc>
<lastmod>2020-09-07T15:55:16.091Z</lastmod>
<loc>https://www.eee.dog/tags/nodeJS/</loc>
<lastmod>2020-09-15T15:22:42.110Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/music/</loc>
<lastmod>2020-09-07T15:16:36.478Z</lastmod>
<loc>https://www.eee.dog/tags/iot/</loc>
<lastmod>2020-09-15T15:22:42.110Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/maxwell/</loc>
<lastmod>2020-09-07T08:42:30.667Z</lastmod>
<loc>https://www.eee.dog/tags/MQTT/</loc>
<lastmod>2020-09-08T12:58:29.284Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/gre/</loc>
<lastmod>2020-09-07T08:33:46.083Z</lastmod>
<loc>https://www.eee.dog/tags/ESP8266/</loc>
<lastmod>2020-09-08T12:58:29.284Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/fog/</loc>
<lastmod>2020-09-06T16:19:09.491Z</lastmod>
<loc>https://www.eee.dog/tags/LoRa/</loc>
<lastmod>2020-09-08T12:58:29.284Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/internet/</loc>
<lastmod>2020-09-06T16:19:09.491Z</lastmod>
<loc>https://www.eee.dog/tags/smart-home/</loc>
<lastmod>2020-09-08T12:58:29.284Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/iot/</loc>
<lastmod>2020-09-06T16:19:09.491Z</lastmod>
<loc>https://www.eee.dog/tags/Arduino/</loc>
<lastmod>2020-09-08T12:58:29.284Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/climate/</loc>
<lastmod>2020-09-06T16:17:24.242Z</lastmod>
<loc>https://www.eee.dog/tags/system/</loc>
<lastmod>2020-09-08T10:37:15.710Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/environment/</loc>
<lastmod>2020-09-06T16:17:24.242Z</lastmod>
<loc>https://www.eee.dog/tags/erp/</loc>
<lastmod>2020-09-08T10:37:15.710Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/WiFi/</loc>
<lastmod>2020-09-06T16:14:13.377Z</lastmod>
<loc>https://www.eee.dog/tags/liverpool/</loc>
<lastmod>2020-09-08T10:37:15.710Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/nodeJS/</loc>
<lastmod>2020-09-06T16:14:13.377Z</lastmod>
<loc>https://www.eee.dog/tags/uk/</loc>
<lastmod>2020-09-08T10:37:15.710Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/moe/</loc>
<lastmod>2020-09-06T16:12:46.077Z</lastmod>
<loc>https://www.eee.dog/tags/crown-place/</loc>
<lastmod>2020-09-08T10:37:15.710Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/random/</loc>
<lastmod>2020-09-06T16:12:46.077Z</lastmod>
<loc>https://www.eee.dog/tags/motto/</loc>
<lastmod>2020-09-07T15:55:16.091Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/img/</loc>
<lastmod>2020-09-06T16:12:46.077Z</lastmod>
<loc>https://www.eee.dog/tags/api/</loc>
<lastmod>2020-09-07T15:55:16.091Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/smart-farming/</loc>
<lastmod>2020-09-06T16:09:30.505Z</lastmod>
<loc>https://www.eee.dog/tags/music/</loc>
<lastmod>2020-09-07T15:16:36.478Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/MQTT/</loc>
<lastmod>2020-09-06T16:09:30.505Z</lastmod>
<loc>https://www.eee.dog/tags/maxwell/</loc>
<lastmod>2020-09-07T08:42:30.667Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/LoRa/</loc>
<lastmod>2020-09-06T16:09:30.505Z</lastmod>
<loc>https://www.eee.dog/tags/gre/</loc>
<lastmod>2020-09-07T08:33:46.083Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/Arduino/</loc>
<lastmod>2020-09-06T16:09:30.505Z</lastmod>
<loc>https://www.eee.dog/tags/fog/</loc>
<lastmod>2020-09-06T16:19:09.491Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/ESP8266/</loc>
<lastmod>2020-09-05T13:05:36.029Z</lastmod>
<loc>https://www.eee.dog/tags/internet/</loc>
<lastmod>2020-09-06T16:19:09.491Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/smart-home/</loc>
<lastmod>2020-09-05T13:05:36.029Z</lastmod>
<loc>https://www.eee.dog/tags/climate/</loc>
<lastmod>2020-09-06T16:17:24.242Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/system/</loc>
<lastmod>2020-09-05T13:04:51.789Z</lastmod>
<loc>https://www.eee.dog/tags/environment/</loc>
<lastmod>2020-09-06T16:17:24.242Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/erp/</loc>
<lastmod>2020-09-05T13:04:51.789Z</lastmod>
<loc>https://www.eee.dog/tags/moe/</loc>
<lastmod>2020-09-06T16:12:46.077Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/liverpool/</loc>
<lastmod>2020-09-05T13:04:51.789Z</lastmod>
<loc>https://www.eee.dog/tags/random/</loc>
<lastmod>2020-09-06T16:12:46.077Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/uk/</loc>
<lastmod>2020-09-05T13:04:51.789Z</lastmod>
<loc>https://www.eee.dog/tags/img/</loc>
<lastmod>2020-09-06T16:12:46.077Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>https://www.eee.dog/tags/crown-place/</loc>
<lastmod>2020-09-05T13:04:51.789Z</lastmod>
<loc>https://www.eee.dog/tags/smart-farming/</loc>
<lastmod>2020-09-06T16:09:30.505Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>

@ -402,6 +402,16 @@ pjax_google_analytics = () => {
<h2 class="archive-name">WiFi</h2>
</div>
<div class="archive-post">
<span class="archive-post-time">
2020-09-15
</span>
<span class="archive-post-title">
<a href="/tech/wiot2.html" class="archive-post-link">
<span class=".zh">wIoT发展展望</span><span class=".en">wIoT - What is the future</span>
</a>
</span>
</div>
<div class="archive-post">
<span class="archive-post-time">
2019-07-28
</span>

@ -407,7 +407,7 @@ pjax_google_analytics = () => {
</span>
<span class="archive-post-title">
<a href="/tech/crown-place-erp.html" class="archive-post-link">
<span class=".zh">公共开支结算系统</span><span class=".en">Public expenditure settlement system</span>
<span class=".zh">公共开支结算系统</span><span class=".en">Shared Expense Management System</span>
</a>
</span>
</div>

@ -407,7 +407,7 @@ pjax_google_analytics = () => {
</span>
<span class="archive-post-title">
<a href="/tech/crown-place-erp.html" class="archive-post-link">
<span class=".zh">公共开支结算系统</span><span class=".en">Public expenditure settlement system</span>
<span class=".zh">公共开支结算系统</span><span class=".en">Shared Expense Management System</span>
</a>
</span>
</div>

@ -402,7 +402,7 @@ pjax_google_analytics = () => {
56 Tags In Total
</div>
<div class="tag-cloud-tags">
<a href="/tags/summary/" style="font-size: 16px;">summary</a> <a href="/tags/iot/" style="font-size: 28px;">iot</a> <a href="/tags/Arduino/" style="font-size: 25px;">Arduino</a> <a href="/tags/beef/" style="font-size: 16px;">beef</a> <a href="/tags/noodle/" style="font-size: 16px;">noodle</a> <a href="/tags/docker/" style="font-size: 16px;">docker</a> <a href="/tags/php/" style="font-size: 22px;">php</a> <a href="/tags/nginx/" style="font-size: 16px;">nginx</a> <a href="/tags/cpp/" style="font-size: 22px;">cpp</a> <a href="/tags/centos7/" style="font-size: 19px;">centos7</a> <a href="/tags/typecho/" style="font-size: 16px;">typecho</a> <a href="/tags/master/" style="font-size: 16px;">master</a> <a href="/tags/investigation/" style="font-size: 19px;">investigation</a> <a href="/tags/circuit/" style="font-size: 16px;">circuit</a> <a href="/tags/development/" style="font-size: 16px;">development</a> <a href="/tags/environment/" style="font-size: 19px;">environment</a> <a href="/tags/Covid-19/" style="font-size: 16px;">Covid-19</a> <a href="/tags/API/" style="font-size: 16px;">API</a> <a href="/tags/maxwell/" style="font-size: 16px;">maxwell</a> <a href="/tags/climate/" style="font-size: 16px;">climate</a> <a href="/tags/gre/" style="font-size: 16px;">gre</a> <a href="/tags/crown-place/" style="font-size: 16px;">crown-place</a> <a href="/tags/uk/" style="font-size: 22px;">uk</a> <a href="/tags/liverpool/" style="font-size: 19px;">liverpool</a> <a href="/tags/erp/" style="font-size: 16px;">erp</a> <a href="/tags/system/" style="font-size: 16px;">system</a> <a href="/tags/internet/" style="font-size: 16px;">internet</a> <a href="/tags/fog/" style="font-size: 16px;">fog</a> <a href="/tags/love/" style="font-size: 16px;">love</a> <a href="/tags/hexo/" style="font-size: 19px;">hexo</a> <a href="/tags/nodeJS/" style="font-size: 19px;">nodeJS</a> <a href="/tags/api/" style="font-size: 28px;">api</a> <a href="/tags/mail/" style="font-size: 16px;">mail</a> <a href="/tags/italy/" style="font-size: 16px;">italy</a> <a href="/tags/visa/" style="font-size: 16px;">visa</a> <a href="/tags/kms/" style="font-size: 16px;">kms</a> <a href="/tags/win10/" style="font-size: 16px;">win10</a> <a href="/tags/accomodation/" style="font-size: 16px;">accomodation</a> <a href="/tags/wordpress/" style="font-size: 16px;">wordpress</a> <a href="/tags/img/" style="font-size: 16px;">img</a> <a href="/tags/random/" style="font-size: 16px;">random</a> <a href="/tags/moe/" style="font-size: 16px;">moe</a> <a href="/tags/smart-home/" style="font-size: 16px;">smart-home</a> <a href="/tags/LoRa/" style="font-size: 19px;">LoRa</a> <a href="/tags/WiFi/" style="font-size: 19px;">WiFi</a> <a href="/tags/ESP8266/" style="font-size: 16px;">ESP8266</a> <a href="/tags/MQTT/" style="font-size: 19px;">MQTT</a> <a href="/tags/ssl/" style="font-size: 16px;">ssl</a> <a href="/tags/smart-farming/" style="font-size: 16px;">smart-farming</a> <a href="/tags/war/" style="font-size: 16px;">war</a> <a href="/tags/traveler-s-cheque/" style="font-size: 16px;">traveler's cheque</a> <a href="/tags/Europe/" style="font-size: 16px;">Europe</a> <a href="/tags/society/" style="font-size: 16px;">society</a> <a href="/tags/chiken/" style="font-size: 16px;">chiken</a> <a href="/tags/music/" style="font-size: 16px;">music</a> <a href="/tags/motto/" style="font-size: 19px;">motto</a>
<a href="/tags/summary/" style="font-size: 16px;">summary</a> <a href="/tags/iot/" style="font-size: 28px;">iot</a> <a href="/tags/Arduino/" style="font-size: 23.2px;">Arduino</a> <a href="/tags/beef/" style="font-size: 16px;">beef</a> <a href="/tags/noodle/" style="font-size: 16px;">noodle</a> <a href="/tags/docker/" style="font-size: 16px;">docker</a> <a href="/tags/php/" style="font-size: 20.8px;">php</a> <a href="/tags/nginx/" style="font-size: 16px;">nginx</a> <a href="/tags/cpp/" style="font-size: 20.8px;">cpp</a> <a href="/tags/centos7/" style="font-size: 18.4px;">centos7</a> <a href="/tags/typecho/" style="font-size: 16px;">typecho</a> <a href="/tags/master/" style="font-size: 16px;">master</a> <a href="/tags/investigation/" style="font-size: 18.4px;">investigation</a> <a href="/tags/circuit/" style="font-size: 16px;">circuit</a> <a href="/tags/development/" style="font-size: 16px;">development</a> <a href="/tags/environment/" style="font-size: 18.4px;">environment</a> <a href="/tags/Covid-19/" style="font-size: 16px;">Covid-19</a> <a href="/tags/API/" style="font-size: 16px;">API</a> <a href="/tags/maxwell/" style="font-size: 16px;">maxwell</a> <a href="/tags/climate/" style="font-size: 16px;">climate</a> <a href="/tags/gre/" style="font-size: 16px;">gre</a> <a href="/tags/crown-place/" style="font-size: 16px;">crown-place</a> <a href="/tags/uk/" style="font-size: 20.8px;">uk</a> <a href="/tags/liverpool/" style="font-size: 18.4px;">liverpool</a> <a href="/tags/erp/" style="font-size: 16px;">erp</a> <a href="/tags/system/" style="font-size: 16px;">system</a> <a href="/tags/internet/" style="font-size: 16px;">internet</a> <a href="/tags/fog/" style="font-size: 16px;">fog</a> <a href="/tags/love/" style="font-size: 16px;">love</a> <a href="/tags/hexo/" style="font-size: 18.4px;">hexo</a> <a href="/tags/nodeJS/" style="font-size: 20.8px;">nodeJS</a> <a href="/tags/api/" style="font-size: 25.6px;">api</a> <a href="/tags/mail/" style="font-size: 16px;">mail</a> <a href="/tags/italy/" style="font-size: 16px;">italy</a> <a href="/tags/visa/" style="font-size: 16px;">visa</a> <a href="/tags/kms/" style="font-size: 16px;">kms</a> <a href="/tags/win10/" style="font-size: 16px;">win10</a> <a href="/tags/accomodation/" style="font-size: 16px;">accomodation</a> <a href="/tags/wordpress/" style="font-size: 16px;">wordpress</a> <a href="/tags/img/" style="font-size: 16px;">img</a> <a href="/tags/random/" style="font-size: 16px;">random</a> <a href="/tags/moe/" style="font-size: 16px;">moe</a> <a href="/tags/smart-home/" style="font-size: 16px;">smart-home</a> <a href="/tags/LoRa/" style="font-size: 18.4px;">LoRa</a> <a href="/tags/WiFi/" style="font-size: 20.8px;">WiFi</a> <a href="/tags/ESP8266/" style="font-size: 16px;">ESP8266</a> <a href="/tags/MQTT/" style="font-size: 18.4px;">MQTT</a> <a href="/tags/ssl/" style="font-size: 16px;">ssl</a> <a href="/tags/smart-farming/" style="font-size: 16px;">smart-farming</a> <a href="/tags/war/" style="font-size: 16px;">war</a> <a href="/tags/traveler-s-cheque/" style="font-size: 16px;">traveler's cheque</a> <a href="/tags/Europe/" style="font-size: 16px;">Europe</a> <a href="/tags/society/" style="font-size: 16px;">society</a> <a href="/tags/chiken/" style="font-size: 16px;">chiken</a> <a href="/tags/music/" style="font-size: 16px;">music</a> <a href="/tags/motto/" style="font-size: 18.4px;">motto</a>
</div>
</div></div></div>
</main>

@ -402,6 +402,16 @@ pjax_google_analytics = () => {
<h2 class="archive-name">iot</h2>
</div>
<div class="archive-post">
<span class="archive-post-time">
2020-09-15
</span>
<span class="archive-post-title">
<a href="/tech/wiot2.html" class="archive-post-link">
<span class=".zh">wIoT发展展望</span><span class=".en">wIoT - What is the future</span>
</a>
</span>
</div>
<div class="archive-post">
<span class="archive-post-time">
2019-07-28
</span>

@ -417,7 +417,7 @@ pjax_google_analytics = () => {
</span>
<span class="archive-post-title">
<a href="/tech/crown-place-erp.html" class="archive-post-link">
<span class=".zh">公共开支结算系统</span><span class=".en">Public expenditure settlement system</span>
<span class=".zh">公共开支结算系统</span><span class=".en">Shared Expense Management System</span>
</a>
</span>
</div>

@ -402,6 +402,16 @@ pjax_google_analytics = () => {
<h2 class="archive-name">nodeJS</h2>
</div>
<div class="archive-post">
<span class="archive-post-time">
2020-09-15
</span>
<span class="archive-post-title">
<a href="/tech/wiot2.html" class="archive-post-link">
<span class=".zh">wIoT发展展望</span><span class=".en">wIoT - What is the future</span>
</a>
</span>
</div>
<div class="archive-post">
<span class="archive-post-time">
2019-05-20
</span>

@ -407,7 +407,7 @@ pjax_google_analytics = () => {
</span>
<span class="archive-post-title">
<a href="/tech/crown-place-erp.html" class="archive-post-link">
<span class=".zh">公共开支结算系统</span><span class=".en">Public expenditure settlement system</span>
<span class=".zh">公共开支结算系统</span><span class=".en">Shared Expense Management System</span>
</a>
</span>
</div>

@ -427,7 +427,7 @@ pjax_google_analytics = () => {
</span>
<span class="archive-post-title">
<a href="/tech/crown-place-erp.html" class="archive-post-link">
<span class=".zh">公共开支结算系统</span><span class=".en">Public expenditure settlement system</span>
<span class=".zh">公共开支结算系统</span><span class=".en">Shared Expense Management System</span>
</a>
</span>
</div>

@ -399,7 +399,7 @@ pjax_google_analytics = () => {
<div class="content-wrapper">
<div id="content" class="content"><article class="post">
<header class="post-header">
<h1 class="post-title"><span class=".zh">公共开支结算系统</span><span class=".en" hidden>Public expenditure settlement system</span>
<h1 class="post-title"><span class=".zh">公共开支结算系统</span><span class=".en" hidden>Shared Expense Management System</span>
</h1>
<div class="post-meta">
@ -415,7 +415,7 @@ pjax_google_analytics = () => {
<div class="post-toc" id="post-toc">
<h2 class="post-toc-title">Contents</h2>
<div class="post-toc-content">
<ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#1-功能介绍"><span class="toc-text">1.功能介绍</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-系统架构"><span class="toc-text">2.系统架构</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#2-1-前端"><span class="toc-text">2.1 前端</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-2-后端"><span class="toc-text">2.2 后端</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-3-数据库"><span class="toc-text">2.3 数据库</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-4-图片上传"><span class="toc-text">2.4 图片上传</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-5-用户系统"><span class="toc-text">2.5 用户系统</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#3-外观"><span class="toc-text">3. 外观</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#1-Function-introduction"><span class="toc-text">1. Function introduction</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-System-Architecture"><span class="toc-text">2. System Architecture</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#2-1-Frontend"><span class="toc-text">2.1 Frontend</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-2-Backend"><span class="toc-text">2.2 Backend</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-3-Database"><span class="toc-text">2.3 Database</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-4-Image-upload"><span class="toc-text">2.4 Image upload</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-5-User-System"><span class="toc-text">2.5 User System</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#3-Appearance"><span class="toc-text">3. Appearance</span></a></li></ol>
<ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#1-功能介绍"><span class="toc-text">1.功能介绍</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-系统架构"><span class="toc-text">2.系统架构</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#2-1-前端"><span class="toc-text">2.1 前端</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-2-后端"><span class="toc-text">2.2 后端</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-3-数据库"><span class="toc-text">2.3 数据库</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-4-图片上传"><span class="toc-text">2.4 图片上传</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-5-用户系统"><span class="toc-text">2.5 用户系统</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#3-外观"><span class="toc-text">3. 外观</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#主要收获"><span class="toc-text">主要收获</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#开发方法论"><span class="toc-text">开发方法论</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#遇到的挑战"><span class="toc-text">遇到的挑战</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#解决方法"><span class="toc-text">解决方法</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#新功能"><span class="toc-text">新功能</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#体验"><span class="toc-text">体验</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#1-Function-introduction"><span class="toc-text">1. Function introduction</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-System-Architecture"><span class="toc-text">2. System Architecture</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#2-1-Frontend"><span class="toc-text">2.1 Frontend</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-2-Backend"><span class="toc-text">2.2 Backend</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-3-Database"><span class="toc-text">2.3 Database</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-4-Image-upload"><span class="toc-text">2.4 Image upload</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-5-User-System"><span class="toc-text">2.5 User System</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#3-Appearance"><span class="toc-text">3. Appearance</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Main-gains"><span class="toc-text">Main gains</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Development-Methodology"><span class="toc-text">Development Methodology</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Challenges-encountered"><span class="toc-text">Challenges encountered</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Solution"><span class="toc-text">Solution</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#New-features"><span class="toc-text">New features</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Experience"><span class="toc-text">Experience</span></a></li></ol>
</div>
</div>
<script>var arr = [];var ts = '';if($('.post-toc-content').children().length>1){var el = '.post-toc-content';ts = ($(el).children('ol')[0].outerHTML);}else{var el = '.toc';};for(var i = 0; i < $(el).children('li').length; i++){arr.push($(el).children('li')[i].outerHTML);}; arr.splice(arr.length / 2, 0, '</span><span class=".en">');arr.unshift(ts);arr.unshift('<span class=".zh">');arr.push('</span>');$(el).html(arr.join(''));</script><div class="post-content"><span class=".zh">
@ -457,6 +457,7 @@ pjax_google_analytics = () => {
<li>监视各成员间支出不均衡程度,计算方差,并可视化显示</li>
<li>对比本周与上周的开支,给出增减比例</li>
<li>当存在一人支出超出均值阈值,并且存在至少一人支出少于均值阈值,则会邮件这两个人产生一次内部交易</li>
<li>邮件通知内部交易的双方</li>
<li>当上例中收款人收到款项后,需要到平台确认收到</li>
<li>平台所有历史公共开支及发票可查</li>
</ul>
@ -469,6 +470,44 @@ pjax_google_analytics = () => {
<h2 id="3-外观"><a href="#3-外观" class="headerlink" title="3. 外观"></a>3. 外观</h2><p>没啥可说的,摆图,自己看<br><img src="https://api.yimian.xyz/img/?path=imgbed/img_ed08c497_1080x6654_8_null_normal.jpeg" alt="imgbed_ed08c497"></p>
<p><img src="https://api.yimian.xyz/img/?path=imgbed/img_ea04ad82_1080x5082_8_null_normal.jpeg" alt="imgbed_ea04ad82"></p>
<p><img src="https://api.yimian.xyz/img/?path=imgbed/img_a8b3adb0_1080x2160_8_null_normal.jpeg" alt="imgbed_a8b3adb0"></p>
<hr>
<p><strong>2020-03-22 更新</strong> </p>
<p>由于疫情原因,考虑到大家都已撤回中国。为节约服务器费用,停止提供服务。</p>
<p>结合过去半年运行状况,我做了一些分析总结:</p>
<h2 id="主要收获"><a href="#主要收获" class="headerlink" title="主要收获"></a>主要收获</h2><ol>
<li>分析客户真需求的经验</li>
<li>快速搭建生产环境网站工具的能力</li>
<li>室友对我能力的认可</li>
</ol>
<h2 id="开发方法论"><a href="#开发方法论" class="headerlink" title="开发方法论"></a>开发方法论</h2><ol>
<li>基于一系列自己过去的项目,3天时间快速立项并投入使用</li>
<li>仔细研究需求,判断哪些是真需求,哪些是伪需求。</li>
</ol>
<h2 id="遇到的挑战"><a href="#遇到的挑战" class="headerlink" title="遇到的挑战"></a>遇到的挑战</h2><ol>
<li>快速开发,因为大家在抵达英国后已经开始大量花钱买公共用品,因此,急需使用这个系统</li>
<li>算法一定要稳定可靠,因为是牵扯到大家钱的东西</li>
<li>本系统的目的是为了更加方便,把会计的工作交给系统来自动化处理。以此一定要在保证公平的前提下,使得大家之间的内部交易的次数尽可能少,且指示明确。</li>
<li>如何让大家对系统产生信任。</li>
</ol>
<h2 id="解决方法"><a href="#解决方法" class="headerlink" title="解决方法"></a>解决方法</h2><ol>
<li>基于大量自己先前的项目。用1天开发成型,1天测试debug,1天优化前端,加入方差,百分比等功能。</li>
<li>参考记账表,使用了表格模式。每次有新的上传,就会实时计算出新的状态。多次测试,充分验证后才投入使用。</li>
<li>使用“平衡”的构想,关注差异,当差异过大时使支出最多者和支出最少者产生内部交易。且内部交易值为整数。比如我们生产场景应用的是20磅。</li>
<li>在系统算法稳定的情况下,参考支付宝的设计。内部交易有两个步骤。首选支出者和收入者都收到邮件,告知给谁(从谁收),多少钱。然后在支出者把钱给收入者后,收入者需要登录网页或从邮件链接进行确认。截至此时,系统才认为一笔内部交易完成。</li>
</ol>
<hr>
<p><strong>2020-9-8 更新</strong></p>
<p>基于Ushio用户系统,结合过去半年的运行情况和大家的需求变化,我重构并开发出了新一版的公共支出系统。</p>
<h2 id="新功能"><a href="#新功能" class="headerlink" title="新功能"></a>新功能</h2><ul>
<li>实现了Ushio用户系统的接入</li>
<li>用户能够随时注册并新建公共账单</li>
<li>同一个用户能够同时在多个账单</li>
<li>用户能够随时加入公共账单</li>
<li>用户能够随时结算并退出某个公共账单</li>
<li>更加智能的结算算法</li>
<li>使用LocalStorage优化了二次访问的速度</li>
</ul>
<h2 id="体验"><a href="#体验" class="headerlink" title="体验"></a>体验</h2><p>cp-acc现在已经对公众开放,您可以进入其<a href="https://cp-acc.yimian.xyz" target="_blank" rel="noopener">网站</a>进行体验。不过在体验前,您需要先通过ushio用户系统使用您的邮箱登录,以便接收账单消息。</p>
</span>
<span class=".en">
@ -488,9 +527,47 @@ pjax_google_analytics = () => {
<h3 id="2-3-Database"><a href="#2-3-Database" class="headerlink" title="2.3 Database"></a>2.3 Database</h3><p>The database uses yimian-db/mysql. Three tables are constructed, which are used to store flow, public expenditure details, and internal circulation.</p>
<h3 id="2-4-Image-upload"><a href="#2-4-Image-upload" class="headerlink" title="2.4 Image upload"></a>2.4 Image upload</h3><p>Directly quote the code of <a href="https://imgbed.yimian.xyz" target="_blank" rel="noopener">呓喵酱の图床</a> with a small amount of rewriting.</p>
<h3 id="2-5-User-System"><a href="#2-5-User-System" class="headerlink" title="2.5 User System"></a>2.5 User System</h3><p>At present, it is simple to implement with additional web pages, waiting for the <a href="https://github.com/iotcat/ushio-auth" target="_blank" rel="noopener">ushio-auth project</a> to complete the unified integration.</p>
<h2 id="3-Appearance"><a href="#3-Appearance" class="headerlink" title="3. Appearance"></a>3. Appearance</h2><p>Nothing to say, show the picture, see for yourself<br><img src="https://api.yimian.xyz/img/?path=imgbed/img_ed08c497_1080x6654_8_null_normal.jpeg" alt="imgbed_ed08c497"></p>
<h2 id="3-Appearance"><a href="#3-Appearance" class="headerlink" title="3. Appearance"></a>3. Appearance</h2><p><img src="https://api.yimian.xyz/img/?path=imgbed/img_ed08c497_1080x6654_8_null_normal.jpeg" alt="imgbed_ed08c497"></p>
<p><img src="https://api.yimian.xyz/img/?path=imgbed/img_ea04ad82_1080x5082_8_null_normal.jpeg" alt="imgbed_ea04ad82"></p>
<p><img src="https://api.yimian.xyz/img/?path=imgbed/img_a8b3adb0_1080x2160_8_null_normal.jpeg" alt="imgbed_a8b3adb0"></p>
<hr>
<p><strong>2020-03-22 update</strong></p>
<p>Due to the epidemic, considering that everyone has withdrawn to China. To save server costs, stop providing services.</p>
<p>Combining the operation status of the past six months, I have made some analysis and summary:</p>
<h2 id="Main-gains"><a href="#Main-gains" class="headerlink" title="Main gains"></a>Main gains</h2><ol>
<li>Experience in analyzing the real needs of customers</li>
<li>Ability to quickly build production environment website tools</li>
<li>My roommate’s recognition of my ability</li>
</ol>
<h2 id="Development-Methodology"><a href="#Development-Methodology" class="headerlink" title="Development Methodology"></a>Development Methodology</h2><ol>
<li>Based on a series of past projects, quickly set up and put into use in 3 days</li>
<li>Carefully study the requirements and determine which are true and which are false.</li>
</ol>
<h2 id="Challenges-encountered"><a href="#Challenges-encountered" class="headerlink" title="Challenges encountered"></a>Challenges encountered</h2><ol>
<li>Rapid development, because everyone has started to spend a lot of money on public goods after arriving in the UK, so there is an urgent need to use this system</li>
<li>The algorithm must be stable and reliable, because it involves everyone’s money</li>
<li>The purpose of this system is to make it more convenient to delegate the accounting work to the system for automated processing. In this way, the number of internal transactions between everyone must be as few as possible and the instructions must be clear under the premise of ensuring fairness.</li>
<li>How to make everyone trust the system.</li>
</ol>
<h2 id="Solution"><a href="#Solution" class="headerlink" title="Solution"></a>Solution</h2><ol>
<li>Based on a large number of own previous projects. It takes 1 day to develop and form, 1 day to test debug, 1 day to optimize the front-end, add variance, percentage and other functions.</li>
<li>Refer to the accounting table and use the table mode. Every time there is a new upload, the new status will be calculated in real time. Tested many times and put into use after full verification.</li>
<li>Use the concept of “balance” and pay attention to differences. When the differences are too large, make internal transactions between those who spend the most and those who spend the least. And the internal transaction value is an integer. For example, our production scenario uses 20 pounds.</li>
<li>When the system algorithm is stable, refer to the design of Alipay. There are two steps to internal transactions. Both the first-choice payer and the earner receive emails telling to whom (from whom) and how much money. Then after the payer gives the money to the earner, the earner needs to log in to the web page or confirm it from the email link. As of this time, the system considers that an internal transaction is complete.</li>
</ol>
<hr>
<p><strong>2020-9-8 update</strong></p>
<p>Based on the Ushio user system, combined with the operation of the past six months and the changes in everyone’s needs, I reconstructed and developed a new version of the public expenditure system.</p>
<h2 id="New-features"><a href="#New-features" class="headerlink" title="New features"></a>New features</h2><ul>
<li>Achieved access to Ushio user system</li>
<li>Users can register and create new public bills at any time</li>
<li>The same user can be in multiple bills at the same time</li>
<li>Users can join the public bill at any time</li>
<li>Users can settle and exit a public bill at any time</li>
<li>Smarter settlement algorithm</li>
<li>Use LocalStorage to optimize the speed of secondary access</li>
</ul>
<h2 id="Experience"><a href="#Experience" class="headerlink" title="Experience"></a>Experience</h2><p>cp-acc is now open to the public, you can go to its <a href="https://cp-acc.yimian.xyz" target="_blank" rel="noopener">website</a> to experience it. But before the experience, you need to log in with your email address through the ushio user system in order to receive bill messages.</p>
</span>
</div>
<div class="post-copyright">
@ -529,7 +606,7 @@ pjax_google_analytics = () => {
</article><script>$(()=>{var p = window.location.pathname;setTimeout(()=>{if(window.location.pathname == p)tips.show({
title: 'tips',
position: 'topRight',
message: ((page.tran.getLang() == 'zh')?"此文章预计阅读 3 分钟哦~": "Read this page will spend around 6 minutes~")
message: ((page.tran.getLang() == 'zh')?"此文章预计阅读 7 分钟哦~": "Read this page will spend around 15 minutes~")
})}, 6000)})</script>
</div><div class="comments" id="comments"><div id="vcomments"></div>
</div></div>
@ -547,7 +624,7 @@ pjax_google_analytics = () => {
</div><div class="copyright"><span id="/tech/crown-place-erp.html" class="statistic leancloud_visitors">
<em>Visitors </em> <i class="leancloud-visitors-count">??</i>
<span class="division"> |</span>
<em>Reading </em> 6 min
<em>Reading </em> 15 min
</span>
<br>
<span class="power-by">

File diff suppressed because one or more lines are too long

@ -451,9 +451,6 @@ pjax_google_analytics = () => {
<span class=".zh">
<blockquote>
<p>正式开发文档见<a href="https://wiot.yimian.xyz" target="_blank" rel="noopener"><strong>这里</strong></a></p>
</blockquote>
<h3 id="wIoT-for-NodeJS"><a href="#wIoT-for-NodeJS" class="headerlink" title="wIoT for NodeJS"></a>wIoT for NodeJS</h3><p>适用于NodeJS的wIoT服务器控制组件,轻松物联</p>
<h1 id="项目简介"><a href="#项目简介" class="headerlink" title="项目简介"></a>项目简介</h1><h2 id="立项初衷"><a href="#立项初衷" class="headerlink" title="立项初衷"></a>立项初衷</h2><p>本项目旨在帮助不熟悉固件编程的网络开发者实现出自己的物联网应用。您仅需要一台网络内部的服务器(比如树莓派),以及若干个支持可联网(通过串口,WiFi,LoRa,蓝牙,Zigbee等)的单片机,即可轻松创建并管理属于您自己的物联网集群。</p>
<h2 id="支持功能"><a href="#支持功能" class="headerlink" title="支持功能"></a>支持功能</h2><ul>
@ -469,7 +466,10 @@ pjax_google_analytics = () => {
<li>开发nodeJS wiot-cli 命令行程序</li>
<li>支持nodeJS自动烧写固件,并自动配置(很重要)</li>
</ul>
<h1 id="使用方法"><a href="#使用方法" class="headerlink" title="使用方法"></a>使用方法</h1><h2 id="先觉条件"><a href="#先觉条件" class="headerlink" title="先觉条件"></a>先觉条件</h2><ul>
<h1 id="使用方法"><a href="#使用方法" class="headerlink" title="使用方法"></a>使用方法</h1><blockquote>
<p>正式开发文档见<a href="https://wiot.yimian.xyz/#/home" target="_blank" rel="noopener"><strong>这里</strong></a></p>
</blockquote>
<h2 id="先觉条件"><a href="#先觉条件" class="headerlink" title="先觉条件"></a>先觉条件</h2><ul>
<li>拥有烧录好<a href="https://wiot-ota.yimian.xyz/get.php" target="_blank" rel="noopener">wIoT固件</a><strong>D1 MINI</strong>单片机</li>
<li>一台或多台无线WiFi路由器2.4G/5G</li>
<li>局域网内拥有一台装有<strong>NodeJS</strong>的服务器或电脑 (NodeJS装法非常简单, 请自行Google或百度)</li>
@ -490,7 +490,7 @@ pjax_google_analytics = () => {
<figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> wiot = <span class="built_in">require</span>(<span class="string">'wiot'</span>); <span class="comment">//引入wiot依赖包</span></span><br><span class="line"></span><br><span class="line"><span class="comment">// 新建一个单片机对象</span></span><br><span class="line"><span class="comment">// 这里使用了两个参数,MAC是单片机的MAC地址,pin中指定需要OUTPUT输出的端口</span></span><br><span class="line"><span class="comment">// 请自行修改MAC地址的值</span></span><br><span class="line"><span class="keyword">var</span> MyMCU = <span class="keyword">new</span> wiot.client(&#123;<span class="attr">MAC</span>: <span class="string">"xx:xx:xx:xx:xx:xx"</span>, <span class="attr">pin</span>: &#123;<span class="attr">D4</span>: wiot.OUTPUT&#125;&#125;);</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment">// 以下代码将实现,板载led亮1秒,灭1秒的循环</span></span><br><span class="line"></span><br><span class="line"><span class="comment">// 等待所有单品即准备就绪</span></span><br><span class="line">wiot.begin([MyMCU], ()=&gt;&#123; <span class="comment">// 第一个参数为要等待的单片机对象数组,第二个参数为要执行的函数</span></span><br><span class="line"> <span class="comment">// 设置计时器,每隔2000毫秒, MyMCU的3号pin口将拉高一次电平</span></span><br><span class="line"> setInterval(<span class="function"><span class="params">()</span>=&gt;</span>&#123;</span><br><span class="line"> MyMCU.write(wiot.D4, wiot.HIGH);</span><br><span class="line"> &#125;, <span class="number">2000</span>);</span><br><span class="line"></span><br><span class="line"> <span class="comment">// 设置计时器,延时1000毫秒后开始执行大括号中指令</span></span><br><span class="line"> setTimeout(<span class="function"><span class="params">()</span>=&gt;</span>&#123;</span><br><span class="line"> <span class="comment">// 设置计时器,每隔2000毫秒,MyMCU的3号pin口将拉低一次电平</span></span><br><span class="line"> setInterval(<span class="function"><span class="params">()</span>=&gt;</span>&#123;</span><br><span class="line"> MyMCU.write(wiot.D4, wiot.LOW);</span><br><span class="line"> &#125;, <span class="number">2000</span>);</span><br><span class="line"> &#125;, <span class="number">1000</span>);</span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure>
<h3 id="开始执行"><a href="#开始执行" class="headerlink" title="开始执行"></a>开始执行</h3><p>在项目文件夹中打开命令行,输入以下指令:</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">node app.js</span><br></pre></td></tr></table></figure>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">node app.js</span><br></pre></td></tr></table></figure>
<h3 id="预期结果"><a href="#预期结果" class="headerlink" title="预期结果"></a>预期结果</h3><p>如果一切顺利,你现在应该会发现你的板载led在闪烁了</p>
<h3 id="社区支持"><a href="#社区支持" class="headerlink" title="社区支持"></a>社区支持</h3><p>也许你会觉得上述代码难以理解,这是正常的,由于delay功能在JS中难以实现。但是不用担心,这些问题将会由社区中的其它开发者帮你解决。 </p>
@ -726,17 +726,21 @@ pjax_google_analytics = () => {
</ul>
<figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> gugu = wiot.guguji(<span class="string">"9e55121803474371bfa25d20e554b31f"</span>, <span class="string">"832598"</span>, <span class="string">"b3ee06a8bd9b49e1"</span>);</span><br><span class="line"></span><br><span class="line">gugu.print(<span class="string">"This is from wIoT!!"</span>);</span><br></pre></td></tr></table></figure>
</span>
<span class=".en">
<h1 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h1><h2 id="Current-Support-devices"><a href="#Current-Support-devices" class="headerlink" title="Current Support devices"></a>Current Support devices</h2><ul>
<h1 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h1><p>This project aims to help web developers who are not familiar with firmware programming to implement their own IoT applications. You only need a server inside the network (such as Raspberry Pi) and several MCUs (single-chip computers) that support networking (via serial port, WiFi, LoRa, Bluetooth, Zigbee, etc.), you can easily create and manage your own Internet of Things Cluster.</p>
<h2 id="Current-Support-devices"><a href="#Current-Support-devices" class="headerlink" title="Current Support devices"></a>Current Support devices</h2><ul>
<li>D1 MINI</li>
</ul>
<h2 id="Node-js-Install-Node-js"><a href="#Node-js-Install-Node-js" class="headerlink" title="Node.js Install Node.js"></a>Node.js Install Node.js</h2><p>Node.js is a widely used programming language for web developers. To make use of wIoT, you should first install Node.js to your computer. </p>
<p>For <strong>windows</strong> user, you can follow the instruction in <a href="https://www.jianshu.com/p/03a76b2e7e00" target="_blank" rel="noopener">this website</a> </p>
<h2 id="Install-wIoT-package"><a href="#Install-wIoT-package" class="headerlink" title="Install wIoT package"></a>Install wIoT package</h2><p>After install Node.js and configure npm successfully, you should then use npm to download wIoT package by enter following command in your command window.</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install wiot</span><br></pre></td></tr></table></figure>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install wiot</span><br></pre></td></tr></table></figure>
<p>Windows user can use cmd or powershell.It should be notice that this may report error for some users. The solution is to open your cmd window as administrator. You can right click on cmd and choose <em>run as an administrator</em>. You can also press windows+R and input <em>cmd</em> then press Ctrl+Shift+Enter to open it as administrator. </p>
<h2 id="Burn-firmware"><a href="#Burn-firmware" class="headerlink" title="Burn firmware"></a>Burn firmware</h2><h2 id="Connect-your-device-to-D1-MINI"><a href="#Connect-your-device-to-D1-MINI" class="headerlink" title="Connect your device to D1 MINI"></a>Connect your device to D1 MINI</h2><ul>
@ -878,7 +882,7 @@ pjax_google_analytics = () => {
<li><code>disConnected</code> Disconnect from MCU</li>
<li><code>reConnected</code> Connection with MCU restored</li>
</ul>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">js</span><br><span class="line">var MCU &#x3D; new wiot.client(&#123;&quot;MAC&quot;: &quot;xx:xx:xx:xx:xx:xx&quot;&#125;);</span><br><span class="line"></span><br><span class="line">MCU.on(&#39;disConnected&#39;, function () &#123;</span><br><span class="line"></span><br><span class="line"> &#x2F;&#x2F; Execute the command below when lost connection with MCU</span><br><span class="line"> console.log(&#39;Disconnected with MCU!!&#39;);</span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure>
<figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> MCU = <span class="keyword">new</span> wiot.client(&#123;<span class="string">"MAC"</span>: <span class="string">"xx:xx:xx:xx:xx:xx"</span>&#125;);</span><br><span class="line"></span><br><span class="line">MCU.on(<span class="string">'disConnected'</span>, <span class="function"><span class="keyword">function</span> (<span class="params"></span>) </span>&#123;</span><br><span class="line"></span><br><span class="line"> <span class="comment">// Execute the command below when lost connection with MCU</span></span><br><span class="line"> <span class="built_in">console</span>.log(<span class="string">'Disconnected with MCU!!'</span>);</span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure>
<h3 id="Pin"><a href="#Pin" class="headerlink" title="Pin"></a>Pin</h3><p><code>.pinOn(pin, event, handler)</code></p>
<h4 id="Event-List-of-pin"><a href="#Event-List-of-pin" class="headerlink" title="Event List of pin"></a>Event List of pin</h4><ul>

File diff suppressed because one or more lines are too long

@ -495,7 +495,7 @@ pjax_google_analytics = () => {
<nav class="post-nav"><a class="prev" href="/tech/crown-place-erp.html">
<i class="iconfont icon-left"></i>
<span class="prev-text nav-default"><span class=".zh">公共开支结算系统</span><span class=".en">Public expenditure settlement system</span></span>
<span class="prev-text nav-default"><span class=".zh">公共开支结算系统</span><span class=".en">Shared Expense Management System</span></span>
<span class="prev-text nav-mobile">Prev</span>
</a>
<a class="next" href="/tech/music-api.html">

Loading…
Cancel
Save