zeus
4 years ago
13 changed files with 10061 additions and 0 deletions
@ -0,0 +1,41 @@ |
|||
= IoT Docs on SwarmLab.io ! |
|||
Apostolos rootApostolos@swarmlab.io |
|||
// Metadata: |
|||
:description: SwarmLab Labs |
|||
:keywords: iot, swarm, Linux, OS, Sec |
|||
:data-uri: |
|||
:toc: right |
|||
:toc-title: Πίνακας περιεχομένων |
|||
:toclevels: 4 |
|||
:source-highlighter: highlight |
|||
:icons: font |
|||
:sectnums: |
|||
|
|||
include::header.adoc[] |
|||
|
|||
|
|||
{empty} + |
|||
|
|||
|
|||
Lab docs |
|||
|
|||
|
|||
|
|||
== IoT Docs |
|||
|
|||
|
|||
=== http://docs.swarmlab.io/SwarmLab-HowTos/labs/IoT/Intro-IoT.adoc.html[^Intro IoT] |
|||
|
|||
=== http://docs.swarmlab.io/SwarmLab-HowTos/labs/IoT/Intro-Arduino.adoc.html[^Intro Arduino] |
|||
|
|||
=== http://docs.swarmlab.io/SwarmLab-HowTos/labs/IoT/SensorNode.adoc.html[^Sensor Node/Mote] |
|||
|
|||
=== http://docs.swarmlab.io/SwarmLab-HowTos/labs/IoT/SensorNode2Server.adoc.html[^Sensor node/mote Connect2Server] |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
@ -0,0 +1,518 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="en"> |
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|||
<meta name="generator" content="Asciidoctor 2.0.10"> |
|||
<meta name="description" content="SwarmLab Labs"> |
|||
<meta name="keywords" content="iot, swarm, Linux, OS, Sec"> |
|||
<meta name="author" content="Apostolos rootApostolos@swarmlab.io"> |
|||
<title>IoT Docs on SwarmLab.io !</title> |
|||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"> |
|||
<style> |
|||
/* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */ |
|||
/* Uncomment @import statement to use as custom stylesheet */ |
|||
/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/ |
|||
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block} |
|||
audio,video{display:inline-block} |
|||
audio:not([controls]){display:none;height:0} |
|||
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%} |
|||
a{background:none} |
|||
a:focus{outline:thin dotted} |
|||
a:active,a:hover{outline:0} |
|||
h1{font-size:2em;margin:.67em 0} |
|||
abbr[title]{border-bottom:1px dotted} |
|||
b,strong{font-weight:bold} |
|||
dfn{font-style:italic} |
|||
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0} |
|||
mark{background:#ff0;color:#000} |
|||
code,kbd,pre,samp{font-family:monospace;font-size:1em} |
|||
pre{white-space:pre-wrap} |
|||
q{quotes:"\201C" "\201D" "\2018" "\2019"} |
|||
small{font-size:80%} |
|||
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} |
|||
sup{top:-.5em} |
|||
sub{bottom:-.25em} |
|||
img{border:0} |
|||
svg:not(:root){overflow:hidden} |
|||
figure{margin:0} |
|||
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em} |
|||
legend{border:0;padding:0} |
|||
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0} |
|||
button,input{line-height:normal} |
|||
button,select{text-transform:none} |
|||
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer} |
|||
button[disabled],html input[disabled]{cursor:default} |
|||
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0} |
|||
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0} |
|||
textarea{overflow:auto;vertical-align:top} |
|||
table{border-collapse:collapse;border-spacing:0} |
|||
*,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box} |
|||
html,body{font-size:100%} |
|||
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased} |
|||
a:hover{cursor:pointer} |
|||
img,object,embed{max-width:100%;height:auto} |
|||
object,embed{height:100%} |
|||
img{-ms-interpolation-mode:bicubic} |
|||
.left{float:left!important} |
|||
.right{float:right!important} |
|||
.text-left{text-align:left!important} |
|||
.text-right{text-align:right!important} |
|||
.text-center{text-align:center!important} |
|||
.text-justify{text-align:justify!important} |
|||
.hide{display:none} |
|||
img,object,svg{display:inline-block;vertical-align:middle} |
|||
textarea{height:auto;min-height:50px} |
|||
select{width:100%} |
|||
.center{margin-left:auto;margin-right:auto} |
|||
.stretch{width:100%} |
|||
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em} |
|||
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr} |
|||
a{color:#2156a5;text-decoration:underline;line-height:inherit} |
|||
a:hover,a:focus{color:#1d4b8f} |
|||
a img{border:0} |
|||
p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility} |
|||
p aside{font-size:.875em;line-height:1.35;font-style:italic} |
|||
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em} |
|||
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0} |
|||
h1{font-size:2.125em} |
|||
h2{font-size:1.6875em} |
|||
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em} |
|||
h4,h5{font-size:1.125em} |
|||
h6{font-size:1em} |
|||
hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0} |
|||
em,i{font-style:italic;line-height:inherit} |
|||
strong,b{font-weight:bold;line-height:inherit} |
|||
small{font-size:60%;line-height:inherit} |
|||
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)} |
|||
ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit} |
|||
ul,ol{margin-left:1.5em} |
|||
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em} |
|||
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit} |
|||
ul.square{list-style-type:square} |
|||
ul.circle{list-style-type:circle} |
|||
ul.disc{list-style-type:disc} |
|||
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0} |
|||
dl dt{margin-bottom:.3125em;font-weight:bold} |
|||
dl dd{margin-bottom:1.25em} |
|||
abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help} |
|||
abbr{text-transform:none} |
|||
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd} |
|||
blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)} |
|||
blockquote cite::before{content:"\2014 \0020"} |
|||
blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)} |
|||
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)} |
|||
@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2} |
|||
h1{font-size:2.75em} |
|||
h2{font-size:2.3125em} |
|||
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em} |
|||
h4{font-size:1.4375em}} |
|||
table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede} |
|||
table thead,table tfoot{background:#f7f8f7} |
|||
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left} |
|||
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)} |
|||
table tr.even,table tr.alt{background:#f8f8f7} |
|||
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6} |
|||
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em} |
|||
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400} |
|||
.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table} |
|||
.clearfix::after,.float-group::after{clear:both} |
|||
:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word} |
|||
:not(pre)>code.nobreak{word-wrap:normal} |
|||
:not(pre)>code.nowrap{white-space:nowrap} |
|||
pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed} |
|||
pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit} |
|||
pre>code{display:block} |
|||
pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal} |
|||
em em{font-style:normal} |
|||
strong strong{font-weight:400} |
|||
.keyseq{color:rgba(51,51,51,.8)} |
|||
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap} |
|||
.keyseq kbd:first-child{margin-left:0} |
|||
.keyseq kbd:last-child{margin-right:0} |
|||
.menuseq,.menuref{color:#000} |
|||
.menuseq b:not(.caret),.menuref{font-weight:inherit} |
|||
.menuseq{word-spacing:-.02em} |
|||
.menuseq b.caret{font-size:1.25em;line-height:.8} |
|||
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em} |
|||
b.button::before,b.button::after{position:relative;top:-1px;font-weight:400} |
|||
b.button::before{content:"[";padding:0 3px 0 2px} |
|||
b.button::after{content:"]";padding:0 2px 0 3px} |
|||
p a>code:hover{color:rgba(0,0,0,.9)} |
|||
#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em} |
|||
#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table} |
|||
#header::after,#content::after,#footnotes::after,#footer::after{clear:both} |
|||
#content{margin-top:1.25em} |
|||
#content::before{content:none} |
|||
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0} |
|||
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf} |
|||
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px} |
|||
#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap} |
|||
#header .details span:first-child{margin-left:-.125em} |
|||
#header .details span.email a{color:rgba(0,0,0,.85)} |
|||
#header .details br{display:none} |
|||
#header .details br+span::before{content:"\00a0\2013\00a0"} |
|||
#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)} |
|||
#header .details br+span#revremark::before{content:"\00a0|\00a0"} |
|||
#header #revnumber{text-transform:capitalize} |
|||
#header #revnumber::after{content:"\00a0"} |
|||
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem} |
|||
#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em} |
|||
#toc>ul{margin-left:.125em} |
|||
#toc ul.sectlevel0>li>a{font-style:italic} |
|||
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0} |
|||
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none} |
|||
#toc li{line-height:1.3334;margin-top:.3334em} |
|||
#toc a{text-decoration:none} |
|||
#toc a:active{text-decoration:underline} |
|||
#toctitle{color:#7a2518;font-size:1.2em} |
|||
@media screen and (min-width:768px){#toctitle{font-size:1.375em} |
|||
body.toc2{padding-left:15em;padding-right:0} |
|||
#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto} |
|||
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em} |
|||
#toc.toc2>ul{font-size:.9em;margin-bottom:0} |
|||
#toc.toc2 ul ul{margin-left:0;padding-left:1em} |
|||
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em} |
|||
body.toc2.toc-right{padding-left:0;padding-right:15em} |
|||
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}} |
|||
@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0} |
|||
#toc.toc2{width:20em} |
|||
#toc.toc2 #toctitle{font-size:1.375em} |
|||
#toc.toc2>ul{font-size:.95em} |
|||
#toc.toc2 ul ul{padding-left:1.25em} |
|||
body.toc2.toc-right{padding-left:0;padding-right:20em}} |
|||
#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px} |
|||
#content #toc>:first-child{margin-top:0} |
|||
#content #toc>:last-child{margin-bottom:0} |
|||
#footer{max-width:100%;background:rgba(0,0,0,.8);padding:1.25em} |
|||
#footer-text{color:rgba(255,255,255,.8);line-height:1.44} |
|||
#content{margin-bottom:.625em} |
|||
.sect1{padding-bottom:.625em} |
|||
@media screen and (min-width:768px){#content{margin-bottom:1.25em} |
|||
.sect1{padding-bottom:1.25em}} |
|||
.sect1:last-child{padding-bottom:0} |
|||
.sect1+.sect1{border-top:1px solid #e7e7e9} |
|||
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400} |
|||
#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em} |
|||
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible} |
|||
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none} |
|||
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221} |
|||
details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em} |
|||
details>summary:first-of-type{cursor:pointer;display:list-item;outline:none;margin-bottom:.75em} |
|||
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic} |
|||
table.tableblock.fit-content>caption.title{white-space:nowrap;width:0} |
|||
.paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)} |
|||
table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit} |
|||
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%} |
|||
.admonitionblock>table td.icon{text-align:center;width:80px} |
|||
.admonitionblock>table td.icon img{max-width:none} |
|||
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase} |
|||
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6)} |
|||
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0} |
|||
.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px} |
|||
.exampleblock>.content>:first-child{margin-top:0} |
|||
.exampleblock>.content>:last-child{margin-bottom:0} |
|||
.sidebarblock{border-style:solid;border-width:1px;border-color:#dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;-webkit-border-radius:4px;border-radius:4px} |
|||
.sidebarblock>:first-child{margin-top:0} |
|||
.sidebarblock>:last-child{margin-bottom:0} |
|||
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center} |
|||
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0} |
|||
.literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em} |
|||
@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}} |
|||
@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}} |
|||
.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class="highlight"],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8} |
|||
.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)} |
|||
.listingblock>.content{position:relative} |
|||
.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5} |
|||
.listingblock:hover code[data-lang]::before{display:block} |
|||
.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5} |
|||
.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"} |
|||
.listingblock pre.highlightjs{padding:0} |
|||
.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px} |
|||
.listingblock pre.prettyprint{border-width:0} |
|||
.prettyprint{background:#f7f7f8} |
|||
pre.prettyprint .linenums{line-height:1.45;margin-left:2em} |
|||
pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0} |
|||
pre.prettyprint li code[data-lang]::before{opacity:1} |
|||
pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none} |
|||
table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none} |
|||
table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal} |
|||
table.linenotable td.code{padding-left:.75em} |
|||
table.linenotable td.linenos{border-right:1px solid currentColor;opacity:.35;padding-right:.5em} |
|||
pre.pygments .lineno{border-right:1px solid currentColor;opacity:.35;display:inline-block;margin-right:.75em} |
|||
pre.pygments .lineno::before{content:"";margin-right:-.125em} |
|||
.quoteblock{margin:0 1em 1.25em 1.5em;display:table} |
|||
.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em} |
|||
.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify} |
|||
.quoteblock blockquote{margin:0;padding:0;border:0} |
|||
.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)} |
|||
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0} |
|||
.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right} |
|||
.verseblock{margin:0 1em 1.25em} |
|||
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility} |
|||
.verseblock pre strong{font-weight:400} |
|||
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex} |
|||
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic} |
|||
.quoteblock .attribution br,.verseblock .attribution br{display:none} |
|||
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)} |
|||
.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none} |
|||
.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0} |
|||
.quoteblock.abstract{margin:0 1em 1.25em;display:block} |
|||
.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center} |
|||
.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf} |
|||
.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0} |
|||
.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem} |
|||
.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;text-align:left;margin-right:0} |
|||
table.tableblock{max-width:100%;border-collapse:separate} |
|||
p.tableblock:last-child{margin-bottom:0} |
|||
td.tableblock>.content>:last-child{margin-bottom:-1.25em} |
|||
td.tableblock>.content>:last-child.sidebarblock{margin-bottom:0} |
|||
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede} |
|||
table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0} |
|||
table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0} |
|||
table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0} |
|||
table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px} |
|||
table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0} |
|||
table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0} |
|||
table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0} |
|||
table.frame-all{border-width:1px} |
|||
table.frame-sides{border-width:0 1px} |
|||
table.frame-topbot,table.frame-ends{border-width:1px 0} |
|||
table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7} |
|||
th.halign-left,td.halign-left{text-align:left} |
|||
th.halign-right,td.halign-right{text-align:right} |
|||
th.halign-center,td.halign-center{text-align:center} |
|||
th.valign-top,td.valign-top{vertical-align:top} |
|||
th.valign-bottom,td.valign-bottom{vertical-align:bottom} |
|||
th.valign-middle,td.valign-middle{vertical-align:middle} |
|||
table thead th,table tfoot th{font-weight:bold} |
|||
tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7} |
|||
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold} |
|||
p.tableblock>code:only-child{background:none;padding:0} |
|||
p.tableblock{font-size:1em} |
|||
ol{margin-left:1.75em} |
|||
ul li ol{margin-left:1.5em} |
|||
dl dd{margin-left:1.125em} |
|||
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0} |
|||
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em} |
|||
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none} |
|||
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em} |
|||
ul.unstyled,ol.unstyled{margin-left:0} |
|||
ul.checklist{margin-left:.625em} |
|||
ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em} |
|||
ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em} |
|||
ul.inline{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em} |
|||
ul.inline>li{margin-left:1.25em} |
|||
.unstyled dl dt{font-weight:400;font-style:normal} |
|||
ol.arabic{list-style-type:decimal} |
|||
ol.decimal{list-style-type:decimal-leading-zero} |
|||
ol.loweralpha{list-style-type:lower-alpha} |
|||
ol.upperalpha{list-style-type:upper-alpha} |
|||
ol.lowerroman{list-style-type:lower-roman} |
|||
ol.upperroman{list-style-type:upper-roman} |
|||
ol.lowergreek{list-style-type:lower-greek} |
|||
.hdlist>table,.colist>table{border:0;background:none} |
|||
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none} |
|||
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em} |
|||
td.hdlist1{font-weight:bold;padding-bottom:1.25em} |
|||
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em} |
|||
.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top} |
|||
.colist td:not([class]):first-child img{max-width:none} |
|||
.colist td:not([class]):last-child{padding:.25em 0} |
|||
.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd} |
|||
.imageblock.left{margin:.25em .625em 1.25em 0} |
|||
.imageblock.right{margin:.25em 0 1.25em .625em} |
|||
.imageblock>.title{margin-bottom:0} |
|||
.imageblock.thumb,.imageblock.th{border-width:6px} |
|||
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em} |
|||
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0} |
|||
.image.left{margin-right:.625em} |
|||
.image.right{margin-left:.625em} |
|||
a.image{text-decoration:none;display:inline-block} |
|||
a.image object{pointer-events:none} |
|||
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super} |
|||
sup.footnote a,sup.footnoteref a{text-decoration:none} |
|||
sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline} |
|||
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em} |
|||
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0} |
|||
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em} |
|||
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em} |
|||
#footnotes .footnote:last-of-type{margin-bottom:0} |
|||
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0} |
|||
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0} |
|||
.gist .file-data>table td.line-data{width:99%} |
|||
div.unbreakable{page-break-inside:avoid} |
|||
.big{font-size:larger} |
|||
.small{font-size:smaller} |
|||
.underline{text-decoration:underline} |
|||
.overline{text-decoration:overline} |
|||
.line-through{text-decoration:line-through} |
|||
.aqua{color:#00bfbf} |
|||
.aqua-background{background:#00fafa} |
|||
.black{color:#000} |
|||
.black-background{background:#000} |
|||
.blue{color:#0000bf} |
|||
.blue-background{background:#0000fa} |
|||
.fuchsia{color:#bf00bf} |
|||
.fuchsia-background{background:#fa00fa} |
|||
.gray{color:#606060} |
|||
.gray-background{background:#7d7d7d} |
|||
.green{color:#006000} |
|||
.green-background{background:#007d00} |
|||
.lime{color:#00bf00} |
|||
.lime-background{background:#00fa00} |
|||
.maroon{color:#600000} |
|||
.maroon-background{background:#7d0000} |
|||
.navy{color:#000060} |
|||
.navy-background{background:#00007d} |
|||
.olive{color:#606000} |
|||
.olive-background{background:#7d7d00} |
|||
.purple{color:#600060} |
|||
.purple-background{background:#7d007d} |
|||
.red{color:#bf0000} |
|||
.red-background{background:#fa0000} |
|||
.silver{color:#909090} |
|||
.silver-background{background:#bcbcbc} |
|||
.teal{color:#006060} |
|||
.teal-background{background:#007d7d} |
|||
.white{color:#bfbfbf} |
|||
.white-background{background:#fafafa} |
|||
.yellow{color:#bfbf00} |
|||
.yellow-background{background:#fafa00} |
|||
span.icon>.fa{cursor:default} |
|||
a span.icon>.fa{cursor:inherit} |
|||
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default} |
|||
.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c} |
|||
.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111} |
|||
.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900} |
|||
.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400} |
|||
.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000} |
|||
.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold} |
|||
.conum[data-value] *{color:#fff!important} |
|||
.conum[data-value]+b{display:none} |
|||
.conum[data-value]::after{content:attr(data-value)} |
|||
pre .conum[data-value]{position:relative;top:-.125em} |
|||
b.conum *{color:inherit!important} |
|||
.conum:not([data-value]):empty{display:none} |
|||
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility} |
|||
h1,h2,p,td.content,span.alt{letter-spacing:-.01em} |
|||
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em} |
|||
p,blockquote,dt,td.content,span.alt{font-size:1.0625rem} |
|||
p{margin-bottom:1.25rem} |
|||
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em} |
|||
.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc} |
|||
.print-only{display:none!important} |
|||
@page{margin:1.25cm .75cm} |
|||
@media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important} |
|||
html{font-size:80%} |
|||
a{color:inherit!important;text-decoration:underline!important} |
|||
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important} |
|||
a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em} |
|||
abbr[title]::after{content:" (" attr(title) ")"} |
|||
pre,blockquote,tr,img,object,svg{page-break-inside:avoid} |
|||
thead{display:table-header-group} |
|||
svg{max-width:100%} |
|||
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3} |
|||
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid} |
|||
#toc,.sidebarblock,.exampleblock>.content{background:none!important} |
|||
#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important} |
|||
body.book #header{text-align:center} |
|||
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em} |
|||
body.book #header .details{border:0!important;display:block;padding:0!important} |
|||
body.book #header .details span:first-child{margin-left:0!important} |
|||
body.book #header .details br{display:block} |
|||
body.book #header .details br+span::before{content:none!important} |
|||
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important} |
|||
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always} |
|||
.listingblock code[data-lang]::before{display:block} |
|||
#footer{padding:0 .9375em} |
|||
.hide-on-print{display:none!important} |
|||
.print-only{display:block!important} |
|||
.hide-for-print{display:none!important} |
|||
.show-for-print{display:inherit!important}} |
|||
@media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem} |
|||
.sect1{padding:0!important} |
|||
.sect1+.sect1{border:0} |
|||
#footer{background:none} |
|||
#footer-text{color:rgba(0,0,0,.6);font-size:.9em}} |
|||
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}} |
|||
</style> |
|||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> |
|||
</head> |
|||
<body class="article toc2 toc-right"> |
|||
<div id="header"> |
|||
<h1>IoT Docs on SwarmLab.io !</h1> |
|||
<div class="details"> |
|||
<span id="author" class="author">Apostolos rootApostolos@swarmlab.io</span><br> |
|||
</div> |
|||
<div id="toc" class="toc2"> |
|||
<div id="toctitle">Πίνακας περιεχομένων</div> |
|||
<ul class="sectlevel1"> |
|||
<li><a href="#_iot_docs">1. IoT Docs</a> |
|||
<ul class="sectlevel2"> |
|||
<li><a href="#_intro_iot">1.1. ^Intro IoT</a></li> |
|||
<li><a href="#_intro_arduino">1.2. ^Intro Arduino</a></li> |
|||
<li><a href="#_sensor_nodemote">1.3. ^Sensor Node/Mote</a></li> |
|||
<li><a href="#_sensor_nodemote_connect2server">1.4. ^Sensor node/mote Connect2Server</a></li> |
|||
</ul> |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
<div id="content"> |
|||
<div id="preamble"> |
|||
<div class="sectionbody"> |
|||
<table class="tableblock frame-all grid-all stretch"> |
|||
<colgroup> |
|||
<col style="width: 25%;"> |
|||
<col style="width: 25%;"> |
|||
<col style="width: 25%;"> |
|||
<col style="width: 25%;"> |
|||
</colgroup> |
|||
<thead> |
|||
<tr> |
|||
<th class="tableblock halign-left valign-top"><a href="http://docs.swarmlab.io">Home</a> <span class="icon"><a class="image" href="http://docs.swarmlab.io" target="_self"><i class="fa fa-home"></i></a></span></th> |
|||
<th class="tableblock halign-left valign-top"><a href="http://docs.swarmlab.io/Howtos">HowTos</a> <span class="icon"><a class="image" href="http://docs.swarmlab.io/Howtos" target="_self"><i class="fa fa-wpbeginner"></i></a></span></th> |
|||
<th class="tableblock halign-left valign-top"><a href="http://docs.swarmlab.io/lab">Labs</a> <span class="icon"><a class="image" href="http://docs.swarmlab.io/lab" target="_self"><i class="fa fa-mixcloud"></i></a></span></th> |
|||
<th class="tableblock halign-left valign-top"><a href="http://docs.swarmlab.io/SwarmLab-HowTos/">SwarmLab</a> <span class="icon"><a class="image" href="http://docs.swarmlab.io/SwarmLab-HowTos" target="_self"><i class="fa fa-mixcloud"></i></a></span></th> |
|||
</tr> |
|||
</thead> |
|||
</table> |
|||
<div class="paragraph right text-center"> |
|||
<p><br></p> |
|||
</div> |
|||
<div class="paragraph"> |
|||
<p>Lab docs</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="sect1"> |
|||
<h2 id="_iot_docs">1. IoT Docs</h2> |
|||
<div class="sectionbody"> |
|||
<div class="sect2"> |
|||
<h3 id="_intro_iot">1.1. <a href="http://docs.swarmlab.io/SwarmLab-HowTos/labs/IoT/Intro-IoT.adoc.html">^Intro IoT</a></h3> |
|||
|
|||
</div> |
|||
<div class="sect2"> |
|||
<h3 id="_intro_arduino">1.2. <a href="http://docs.swarmlab.io/SwarmLab-HowTos/labs/IoT/Intro-Arduino.adoc.html">^Intro Arduino</a></h3> |
|||
|
|||
</div> |
|||
<div class="sect2"> |
|||
<h3 id="_sensor_nodemote">1.3. <a href="http://docs.swarmlab.io/SwarmLab-HowTos/labs/IoT/SensorNode.adoc.html">^Sensor Node/Mote</a></h3> |
|||
|
|||
</div> |
|||
<div class="sect2"> |
|||
<h3 id="_sensor_nodemote_connect2server">1.4. <a href="http://docs.swarmlab.io/SwarmLab-HowTos/labs/IoT/SensorNode2Server.adoc.html">^Sensor node/mote Connect2Server</a></h3> |
|||
|
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div id="footer"> |
|||
<div id="footer-text"> |
|||
Last updated 2020-10-12 10:29:47 UTC |
|||
</div> |
|||
</div> |
|||
</body> |
|||
</html> |
File diff suppressed because it is too large
@ -0,0 +1,8 @@ |
|||
<html> |
|||
<body> |
|||
<script type="text/javascript"> |
|||
// Javascript URL redirection |
|||
window.location.replace("http://docs.swarmlab.io/SwarmLab-HowTos/index-lab.adoc.html"); |
|||
</script> |
|||
</body> |
|||
</html> |
After Width: | Height: | Size: 89 KiB |
@ -0,0 +1,243 @@ |
|||
= Εισαγωγή στο Διαδίκτυο των Αντικειμένων ! |
|||
Apostolos rootApostolos@swarmlab.io |
|||
// Metadata: |
|||
:description: IoT Εισαγωγή στο Διαδίκτυο των Αντικειμένων |
|||
:keywords: iot, swarm |
|||
:data-uri: |
|||
:toc: right |
|||
:toc-title: Πίνακας περιεχομένων |
|||
:toclevels: 4 |
|||
:source-highlighter: highlight |
|||
:icons: font |
|||
:sectnums: |
|||
|
|||
|
|||
|
|||
{empty} + |
|||
|
|||
|
|||
Ορισμός, βασικά χαρακτηριστικά και αρχιτεκτονικές IoT, εφαρμογές ΙοΤ, αντιδιαστολή με τον ιστό των αντικειμένων (Web of Things / WoT), προκλήσεις του IoT όπως προτυποποίηση, κλιμάκωση, μέγεθος συσκευών, κατανάλωση ενέργειας, διευθυνσιοδότηση, ασφάλεια/ιδιωτικότητα, ποιότητας υπηρεσιών, κινητικότητα κ.α |
|||
|
|||
Δομή και τεχνολογία κόμβων. Αρχιτεκτονική και τοπολογίες. Πρότυπα και πρωτόκολλα φυσικού επιπέδου. Θέματα διανομής, επικοινωνίας και οργάνωσης. Πρωτόκολλα δρομολόγησης. Ενεργειακά αποδοτικοί αλγόριθμοι συλλογής και επεξεργασίας δεδομένων. |
|||
|
|||
Μελέτη εφαρμόγων στους τομείς της υγείας, έξυπνα σπίτια και πόλεις, γεωργία ακριβείας, μεταφορές, βιομηχανικές εφαρμογές κ.α. Ενδεικτικά παραδείγματα σχεδίασης εφαρμογών (case studies). |
|||
|
|||
[[cheat-Articles]] |
|||
== Articles-and-Papers |
|||
|
|||
- Networked objects and smart devices + |
|||
https://www.theinternetofthings.eu/sites/default/files/Rob%20van%20Kranenburg/networked_objects.pdf[^] |
|||
|
|||
- Privacy of the Internet of Things + |
|||
https://arxiv.org/pdf/1611.03340.pdf[^] |
|||
|
|||
[[cheat-Links]] |
|||
== Links-and-Apps |
|||
|
|||
=== IoT |
|||
|
|||
* IoT - Explained in less than 3 minutes |
|||
+ |
|||
video::GIfWNtMfYvk[youtube] |
|||
|
|||
* Internet of Things explained simply |
|||
+ |
|||
video::uEsKZGOxNKw[youtube] |
|||
|
|||
* How It Works: Internet of Things |
|||
+ |
|||
video::QSIPNhOiMoE[youtube] |
|||
|
|||
|
|||
=== Network |
|||
|
|||
* Network Topologies (Star, Bus, Ring, Mesh, Ad hoc, Infrastructure, & Wireless Mesh Topology) |
|||
+ |
|||
video::zbqrNg4C98U[youtube] |
|||
|
|||
* Mesh Routing |
|||
+ |
|||
video::Kjrib-BflHw[youtube] |
|||
|
|||
|
|||
* How a DNS Server (Domain Name System) works. |
|||
+ |
|||
video::mpQZVYPuDGU[youtube] |
|||
|
|||
=== Apps |
|||
|
|||
==== Smart City |
|||
|
|||
* Connected Vehicle: The Future of Transportation |
|||
+ |
|||
video::Q8Cn47L8FRQ[youtube] |
|||
|
|||
* Communication protocols for Vehicular Ad hoc NETworks (VENG) |
|||
+ |
|||
video::14fOqMBn9aw[youtube] |
|||
|
|||
* Solution to Traffic |
|||
+ |
|||
video::iHzzSao6ypE[youtube] |
|||
|
|||
==== Exoskeleton |
|||
|
|||
* Exoskeleton |
|||
+ |
|||
video::qTxxwLWsMoA[youtube] |
|||
|
|||
==== Military |
|||
|
|||
* Military Robots |
|||
+ |
|||
video::JGNopwFcz3A[youtube] |
|||
|
|||
==== Sports |
|||
|
|||
* 3D Tracking with IMU |
|||
+ |
|||
video::6ijArKE8vKU[youtube] |
|||
|
|||
* Usain Bolt |
|||
+ |
|||
https://www.facebook.com/Eurosport/videos/10156447549454745[^] |
|||
|
|||
* Wearable Sports Tech for Future Champions |
|||
+ |
|||
video::dIyhUE1Jt9s[youtube] |
|||
|
|||
* The Duel (Now) |
|||
+ |
|||
video::ive4sKkpCqs[youtube] |
|||
|
|||
* The Duel in the near future |
|||
+ |
|||
video::tIIJME8-au8[youtube] |
|||
|
|||
=== Misc |
|||
|
|||
* Why Industrial IoT..? |
|||
+ |
|||
video::S352lyPZP00[youtube] |
|||
|
|||
|
|||
=== DiY |
|||
|
|||
* Motion Tracking Using IMUa - I |
|||
+ |
|||
video::6QJ_3lJSh8w[youtube] |
|||
|
|||
|
|||
* Motion Tracking Using IMU - II |
|||
+ |
|||
video::JzMaCKzWyiY[youtube] |
|||
|
|||
|
|||
[[cheat-Swarm]] |
|||
== Swarm |
|||
|
|||
=== The Five Principles of Swarm Intelligence |
|||
|
|||
|
|||
image:./swarm.jpeg[alt="Swarm Intelligence"] |
|||
|
|||
- Awareness |
|||
|
|||
Each member must be aware of its surroundings and abilities. |
|||
|
|||
- Autonomy |
|||
|
|||
Each member must operate as an autonomous master (not as a slave;) this is essential to self-coordinate allocation of labor. |
|||
|
|||
- Solidarity |
|||
|
|||
Each member must cooperate in solidarity: when a task is completed, each member should autonomously look for a new task (leveraging its current position.) |
|||
|
|||
- Expandability |
|||
|
|||
The system must permit expansion where members are dynamically aggregated. |
|||
|
|||
- Resiliency |
|||
|
|||
The system must be self-healing: when members are removed, the remaining members should undertake the unfinished tasks. |
|||
|
|||
=== The Five Principles of Swarm Intelligence (Video) |
|||
|
|||
* Five Principles of Swarm Intelligence |
|||
+ |
|||
video::axxXz2BM0yw[youtube] |
|||
|
|||
=== Swarm Apps |
|||
|
|||
==== Harvard Universityi (thousand tiny robots) |
|||
|
|||
Harvard University scientists have developed about a thousand tiny robots that, like swarming bees or army ants, can work together in vast numbers without a guiding central intelligence |
|||
|
|||
* Programmable self-assembly in a thousand-robot swarm |
|||
+ |
|||
video::xK54Bu9HFRw[youtube] |
|||
|
|||
More Info: |
|||
https://www.seas.harvard.edu/news/2014/08/self-organizing-thousand-robot-swarm[^] |
|||
|
|||
|
|||
==== Intel's Shooting Star Drone |
|||
|
|||
The Shooting Star system is designed for light shows, so it will initially be used for entertainment, such as shows as theme parks, sports stadiums, and large public events (Fourth of July, New Year's Eve, etc.). The show is a bit like battery-powered fireworks, but with Intel's brains behind the operation, fancy animation can be created in just a few days. |
|||
|
|||
Each quadcopter weighs just over half a pound, with built-in LED lights that can create more than 4 billion color combinations. The system's algorithms determine where drones should be placed and optimize the flight path. An entire fleet of hundreds of drones can be controlled by a single computer. |
|||
|
|||
|
|||
* Programmable swarm light show |
|||
+ |
|||
video::aOd4-T_p5fA[youtube] |
|||
|
|||
More Info: |
|||
https://www.zdnet.com/article/500-intel-drones-dance-in-the-night-sky/[^] |
|||
|
|||
|
|||
|
|||
=== Swarm intelligence approaches |
|||
|
|||
* Intel's Shooting Star Drone |
|||
Each member is controlled through a central computer |
|||
|
|||
* Harvard University |
|||
Each member behaves autonomously without a central computer |
|||
|
|||
Both approaches have merits and limitations. |
|||
|
|||
In the case of “a” above, members are slaves in a system controlled by a central computer with sufficient channels of communication. The results can be visually spectacular, as illustrated by Intel’s drones. However, since a central computer dictates the movement of each member, there is limited flexibility to adapt to changing environments |
|||
|
|||
TIP: vulnerability due to single point of failure |
|||
|
|||
|
|||
In the case of "b" |
|||
|
|||
image:./Image3_650.jpg[alt="Traffic jams"] + |
|||
In a swarm of a thousand simple robots, errors like traffic jams (second from left) and imprecise positioning (far right) are common. (Photo courtesy of Mike Rubenstein and Science/AAAS.) |
|||
|
|||
https://www.linkedin.com/pulse/five-principles-swarm-intelligence-alfonso-%C3%AD%C3%B1iguez[origin] |
|||
|
|||
:hardbreaks: |
|||
|
|||
{empty} + |
|||
{empty} + |
|||
{empty} |
|||
|
|||
:!hardbreaks: |
|||
|
|||
''' |
|||
|
|||
.Reminder |
|||
[NOTE] |
|||
==== |
|||
:hardbreaks: |
|||
Caminante, no hay camino, |
|||
se hace camino al andar. |
|||
|
|||
Wanderer, there is no path, |
|||
the path is made by walking. |
|||
|
|||
*Antonio Machado* Campos de Castilla |
|||
==== |
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
@ -0,0 +1,8 @@ |
|||
<html> |
|||
<body> |
|||
<script type="text/javascript"> |
|||
// Javascript URL redirection |
|||
window.location.replace("http://docs.swarmlab.io/SwarmLab-HowTos/index-lab.adoc.html"); |
|||
</script> |
|||
</body> |
|||
</html> |
After Width: | Height: | Size: 59 KiB |
@ -0,0 +1,8 @@ |
|||
<html> |
|||
<body> |
|||
<script type="text/javascript"> |
|||
// Javascript URL redirection |
|||
window.location.replace("http://docs.swarmlab.io/SwarmLab-HowTos/index-lab.adoc.html"); |
|||
</script> |
|||
</body> |
|||
</html> |
@ -0,0 +1,8 @@ |
|||
<html> |
|||
<body> |
|||
<script type="text/javascript"> |
|||
// Javascript URL redirection |
|||
window.location.replace("http://docs.swarmlab.io/SwarmLab-HowTos/index-lab.adoc.html"); |
|||
</script> |
|||
</body> |
|||
</html> |
@ -0,0 +1,435 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="en"> |
|||
|
|||
<head> |
|||
|
|||
<meta charset="utf-8"> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> |
|||
<meta name="description" content=""> |
|||
<meta name="author" content=""> |
|||
|
|||
<title>Swarmlab.io</title> |
|||
|
|||
<!-- Bootstrap core CSS --> |
|||
<link href="/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet"> |
|||
|
|||
<!-- Custom styles for this template --> |
|||
<link href="/css/scrolling-nav.css" rel="stylesheet"> |
|||
|
|||
</head> |
|||
|
|||
<body id="page-top"> |
|||
|
|||
|
|||
<!-- Navigation --> |
|||
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top" id="mainNav"> |
|||
<div class="container"> |
|||
<a class="navbar-brand js-scroll-trigger" href="#page-top">Swarmlab.io</a> |
|||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"> |
|||
<span class="navbar-toggler-icon"></span> |
|||
</button> |
|||
<div class="collapse navbar-collapse" id="navbarResponsive"> |
|||
<ul class="navbar-nav ml-auto"> |
|||
<li class="nav-item"> |
|||
<a class="nav-link js-scroll-trigger" href="http://docs.swarmlab.io/index.html#about">About</a> |
|||
</li> |
|||
<li class="nav-item"> |
|||
<a class="nav-link js-scroll-trigger" href="http://docs.swarmlab.io/index.html#services">Services</a> |
|||
</li> |
|||
<li class="nav-item"> |
|||
<a class="nav-link js-scroll-trigger" href="http://docs.swarmlab.io/index.html#labrooms">Labrooms</a> |
|||
</li> |
|||
<li class="nav-item"> |
|||
<a class="nav-link js-scroll-trigger" href="http://docs.swarmlab.io/index.html#faq">FAQ</a> |
|||
</li> |
|||
<li class="nav-item"> |
|||
<a class="nav-link js-scroll-trigger" href="https://api-client.swarmlab.io:8088/" target="_blank">Login</a> |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</nav> |
|||
|
|||
<header class="bg-primary text-white"> |
|||
<div class="container text-center"> |
|||
<h1>Welcome to Swarmlab.io</h1> |
|||
<p class="lead"> |
|||
Swarmlab is a powerful collaboration tool that connects tutors and students in a unique all-in-one environment that gets work done fast and easily |
|||
<h2> Ready-to-Use Virtual Labs one click away. </h2> |
|||
</p> |
|||
</div> |
|||
</header> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<section id="labrooms"> |
|||
<div class="container"> |
|||
<div class="row"> |
|||
<div class="col-lg-12 mx-auto"> |
|||
<h2>Swarmlab Docs</h2> |
|||
<p class="lead"> |
|||
</p> |
|||
<p class="lead"> |
|||
</p> |
|||
|
|||
<!-- Search functionality --> |
|||
<nav class="navbar navbar-light justify-content-center mt-4"> |
|||
<form class="form-inline"> |
|||
<button type="button" class="btn btn-primary btn-lg mr-3" id="btnSort">Sort</button> |
|||
<input class="form-control form-control-lg mr-sm-2" type="search" placeholder="Search: case-sensitive." aria-label="Search" id="search"> |
|||
<!-- <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button> --> |
|||
</form> |
|||
</nav> |
|||
|
|||
<!-- Cardsrow 1--> |
|||
<div class="layout-margin-8 mt-4"> |
|||
|
|||
<div class="card-deck"> |
|||
|
|||
<!-- start quide --> |
|||
<div class="card card-shadow text-center"> |
|||
<div class="card-body"> |
|||
<h4 class="card-title"><b>Quick-start guide!</b></h4> |
|||
<p class="card-text"></p> |
|||
<div class="dropdown-divider"></div> |
|||
<p class="card-text"> |
|||
<small class="text-muted"> |
|||
|
|||
<ul class="list-group list-group-flush"> |
|||
<li class="list-group-item"> |
|||
The first steps |
|||
</li> |
|||
<li class="list-group-item"> |
|||
Register, Login etc |
|||
</li> |
|||
<li class="list-group-item"> |
|||
Main Menou |
|||
</li> |
|||
<li class="list-group-item"> |
|||
Tutor/Student Menou etc |
|||
</li> |
|||
</ul> |
|||
|
|||
</small></p> |
|||
<a href="http://docs.swarmlab.io/SwarmLab-HowTos/swarmlab/main.adoc.html#_the_first_steps" target="_blank"> |
|||
<button type="button" class="btn btn-outline-primary">Read More</button> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<!-- start quide --> |
|||
|
|||
<!-- Learning Objects Notebooks --> |
|||
<div class="card card-shadow text-center"> |
|||
<div class="card-body"> |
|||
<h4 class="card-title"><b>Learning Objects Notebooks</b></h4> |
|||
<p class="card-text"></p> |
|||
<div class="dropdown-divider"></div> |
|||
<p class="card-text"> |
|||
<small class="text-muted"> |
|||
|
|||
A Swarmlab LearningObject Notebook lets users create and share documents that contain <b>live code</b>, visualisation, and many other types of components. |
|||
<ul class="list-group list-group-flush"> |
|||
<li class="list-group-item"> |
|||
Run, Try |
|||
</li> |
|||
<li class="list-group-item"> |
|||
Create, Publish |
|||
</li> |
|||
</ul> |
|||
</small></p> |
|||
<a href="http://docs.swarmlab.io/SwarmLab-HowTos/swarmlab/main.adoc.html#_learning_objects_notebooks" target="_blank"> |
|||
<button type="button" class="btn btn-outline-primary">Read More</button> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<!-- Learning Objects Notebooks --> |
|||
|
|||
<!-- Get Involved --> |
|||
<div class="card card-shadow text-center"> |
|||
<div class="card-body"> |
|||
<h4 class="card-title"><b>Create Labroom</b></h4> |
|||
<p class="card-text"></p> |
|||
<div class="dropdown-divider"></div> |
|||
<p class="card-text"> |
|||
<small class="text-muted"> |
|||
|
|||
<ul class="list-group list-group-flush"> |
|||
<li class="list-group-item"> |
|||
Enter lab room area |
|||
</li> |
|||
<li class="list-group-item"> |
|||
Bootstrap |
|||
</li> |
|||
<li class="list-group-item"> |
|||
Tutor/Student Menou etc |
|||
</li> |
|||
</ul> |
|||
|
|||
</small></p> |
|||
<a href="http://docs.swarmlab.io/SwarmLab-HowTos/swarmlab/main.adoc.html#_creating_a_lab" target="_blank"> |
|||
<button type="button" class="btn btn-outline-primary">Read More</button> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<!-- Get Involved --> |
|||
|
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
<!-- Cardsrow 2--> |
|||
<div class="layout-margin-8 mt-4"> |
|||
<div class="card-deck"> |
|||
|
|||
<!-- SwarmLab with NoVNC --> |
|||
<div class="card card-shadow text-center"> |
|||
<div class="card-body"> |
|||
<h4 class="card-title"><b>SwarmLab with NoVNC!</b></h4> |
|||
<p class="card-text"></p> |
|||
<div class="dropdown-divider"></div> |
|||
<p class="card-text"> |
|||
<small class="text-muted"> |
|||
<ul class="list-group list-group-flush"> |
|||
<li class="list-group-item"> |
|||
HowTo Use a SwarmLab noVNC Lab. |
|||
</li> |
|||
</ul> |
|||
</small></p> |
|||
<a href="http://docs.swarmlab.io/SwarmLab-HowTos/swarmlab/howto.adoc.html#_quick_1_minute_demo" target="_blank"> |
|||
<button type="button" class="btn btn-outline-primary">Read More</button> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<!-- SwarmLab with NoVNC --> |
|||
|
|||
<!-- gitea --> |
|||
<div class="card card-shadow text-center"> |
|||
<div class="card-body"> |
|||
<h4 class="card-title"><b>SwarmLab gitea!</b></h4> |
|||
<p class="card-text"></p> |
|||
<div class="dropdown-divider"></div> |
|||
<p class="card-text"> |
|||
<small class="text-muted"> |
|||
|
|||
<ul class="list-group list-group-flush"> |
|||
<li class="list-group-item"> |
|||
create a new repository |
|||
</li> |
|||
<li class="list-group-item"> |
|||
clone repository |
|||
</li> |
|||
<li class="list-group-item"> |
|||
add & commit, push |
|||
</li> |
|||
</ul> |
|||
</small></p> |
|||
<a href="http://docs.swarmlab.io/SwarmLab-HowTos/swarmlab/files/help/HowTo-gitea.adoc.html#cheat-CreateRepository" target="_blank"> |
|||
<button type="button" class="btn btn-outline-primary">Read More</button> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<!-- gitea --> |
|||
|
|||
</div> |
|||
</div> |
|||
<!-- Cardsrow 2--> |
|||
|
|||
<!-- Cardsrow 3 contribute--> |
|||
<div class="layout-margin-8 mt-4"> |
|||
<div class="card-deck"> |
|||
|
|||
<!-- SwarmLab contribute --> |
|||
<div class="card card-shadow text-center"> |
|||
<div class="card-body"> |
|||
<h4 class="card-title"><b>Get Involved!</b></h4> |
|||
<p class="card-text"></p> |
|||
<div class="dropdown-divider"></div> |
|||
<p class="card-text"> |
|||
<small class="text-muted"> |
|||
|
|||
We invite anyone to come and participate in the creation of Swarmlab.io. Regardless of your skillset, we’re sure there is something you can add to our community and project. |
|||
|
|||
</small></p> |
|||
<a href="http://docs.swarmlab.io/SwarmLab-HowTos/swarmlab/main.adoc.html#_get_involved" target="_blank"> |
|||
<button type="button" class="btn btn-outline-primary">Read More</button> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<!-- Swarmlab contribute --> |
|||
|
|||
</div> |
|||
</div> |
|||
<!-- Cardsrow 3 contribute--> |
|||
|
|||
<!-- Cardsrow menouvideo swarmlabvideo--> |
|||
<div class="layout-margin-12 mt-4 text-center"> |
|||
<h3 class="mb-2 bg-info text-white text-center"><b>Swarmlab Videos!</b></h3> |
|||
</div> |
|||
<!-- Cardsrow menouvideo swarmlabvideo--> |
|||
|
|||
<!-- Cardsrow menouvideo swarmlabvideo cards--> |
|||
<div class="layout-margin-8 mt-4"> |
|||
<div class="card-deck"> |
|||
|
|||
<!-- video 1 --> |
|||
<div class="card card-shadow text-center"> |
|||
<div class="card-body"> |
|||
<h4 class="card-title"><b>Create Git Repo!</b></h4> |
|||
<p class="card-text"></p> |
|||
<div class="dropdown-divider"></div> |
|||
|
|||
<div class="embed-responsive embed-responsive-16by9"> |
|||
<iframe class="embed-responsive-item" src="https://player.vimeo.com/video/461064974" allowfullscreen></iframe> |
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
|||
<!-- video 1 --> |
|||
|
|||
|
|||
<!-- video 2 --> |
|||
<div class="card card-shadow text-center"> |
|||
<div class="card-body"> |
|||
<h4 class="card-title"><b>Request Tutor Verification!</b></h4> |
|||
<p class="card-text"></p> |
|||
<div class="dropdown-divider"></div> |
|||
<div class="embed-responsive embed-responsive-16by9"> |
|||
<iframe class="embed-responsive-item" src="https://player.vimeo.com/video/461065878" allowfullscreen></iframe> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!-- vodeo 2 --> |
|||
|
|||
</div> |
|||
</div> |
|||
|
|||
<!-- Cardsrow menouvideo swarmlabvideo cards--> |
|||
|
|||
|
|||
<!-- Cardsrow menou it would be useful--> |
|||
<div class="layout-margin-12 mt-4 text-center"> |
|||
<h3 class="mb-2 bg-info text-white text-center"><b>It would be useful!</b></h3> |
|||
</div> |
|||
<!-- Cardsrow menou it would be useful--> |
|||
|
|||
|
|||
|
|||
<!-- Cardsrow 3--> |
|||
<div class="layout-margin-8 mt-4"> |
|||
<div class="card-deck"> |
|||
|
|||
|
|||
<!-- video 1 --> |
|||
<div class="card card-shadow text-center"> |
|||
<div class="card-body"> |
|||
<h4 class="card-title"><b>Using Asciidoctor!</b></h4> |
|||
<p class="card-text"></p> |
|||
<div class="dropdown-divider"></div> |
|||
|
|||
<div class="embed-responsive embed-responsive-16by9"> |
|||
<iframe class="embed-responsive-item" src="https://player.vimeo.com/video/183357606" allowfullscreen></iframe> |
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
|||
<!-- video 1 --> |
|||
|
|||
|
|||
<!-- video 2 --> |
|||
<div class="card card-shadow text-center"> |
|||
<div class="card-body"> |
|||
<h4 class="card-title"><b>What is Git?</b></h4> |
|||
<p class="card-text"></p> |
|||
<div class="dropdown-divider"></div> |
|||
<div class="embed-responsive embed-responsive-16by9"> |
|||
<iframe class="embed-responsive-item" src="https://player.vimeo.com/video/41381741" allowfullscreen></iframe> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!-- vodeo 2 --> |
|||
|
|||
|
|||
</div> |
|||
</div> |
|||
<!-- Cardsrow 3--> |
|||
|
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<!-- Footer --> |
|||
<footer class="py-5 bg-dark"> |
|||
<div class="container"> |
|||
<!-- |
|||
<p class="m-0 text-center text-white">Copyright © swarmlab.io 2020</p> |
|||
--> |
|||
</div> |
|||
<!-- /.container --> |
|||
</footer> |
|||
|
|||
<!-- Bootstrap core JavaScript --> |
|||
<script src="/vendor/jquery/jquery.min.js"></script> |
|||
<script src="/vendor/bootstrap/js/bootstrap.bundle.min.js"></script> |
|||
|
|||
<!-- Plugin JavaScript --> |
|||
<script src="/vendor/jquery-easing/jquery.easing.min.js"></script> |
|||
|
|||
<!-- Custom JavaScript for this theme --> |
|||
<script src="/js/scrolling-nav.js"></script> |
|||
|
|||
<script> |
|||
$('#search').on('keyup keypress', function(e) { |
|||
var keyCode = e.keyCode || e.which; |
|||
if (keyCode === 13) { |
|||
e.preventDefault(); |
|||
return false; |
|||
} |
|||
}); |
|||
|
|||
$('#search').keyup(function (){ |
|||
|
|||
$('.card').removeClass('d-none'); |
|||
|
|||
var filter = $(this).val(); // get the value of the input, which we filter on |
|||
|
|||
$('.card-deck').find('.card .card-body h4:not(:contains("'+filter+'"))').parent().parent().addClass('d-none'); |
|||
|
|||
}) |
|||
|
|||
|
|||
|
|||
$('#btnSort').click(function (){ |
|||
|
|||
$('.card-deck .card').sort(function(a,b) { |
|||
|
|||
return $(a).find(".card-title").text() > $(b).find(".card-title").text() ? 1 : -1; |
|||
|
|||
}).appendTo(".card-deck"); |
|||
|
|||
}) |
|||
</script> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
</body> |
|||
|
|||
</html> |
Loading…
Reference in new issue