<figureclass="highlight js"><table><tr><tdclass="gutter"><pre><spanclass="line">1</span><br><spanclass="line">2</span><br><spanclass="line">3</span><br></pre></td><tdclass="code"><pre><spanclass="line"><spanclass="keyword">var</span> mail = wiot.mail(<spanclass="string">"i@iotcat.me"</span>, <spanclass="string">"wIoT Test"</span>);</span><br><spanclass="line"></span><br><spanclass="line">mail.send(<spanclass="string">"Test"</span>, <spanclass="string">"Test from wiot!!"</span>);</span><br></pre></td></tr></table></figure>
<figureclass="highlight js"><table><tr><tdclass="gutter"><pre><spanclass="line">1</span><br><spanclass="line">2</span><br><spanclass="line">3</span><br></pre></td><tdclass="code"><pre><spanclass="line"><spanclass="keyword">var</span> gugu = wiot.guguji(<spanclass="string">"9e55121803474371bfa25d20e554b31f"</span>, <spanclass="string">"832598"</span>, <spanclass="string">"b3ee06a8bd9b49e1"</span>);</span><br><spanclass="line"></span><br><spanclass="line">gugu.print(<spanclass="string">"This is from wIoT!!"</span>);</span><br></pre></td></tr></table></figure>
<h1id="Quick-Start"><ahref="#Quick-Start"class="headerlink"title="Quick Start"></a>Quick Start</h1><h2id="Current-Support-devices"><ahref="#Current-Support-devices"class="headerlink"title="Current Support devices"></a>Current Support devices</h2><ul>
<li>D1 MINI</li>
</ul>
<h2id="Node-js-Install-Node-js"><ahref="#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 <ahref="https://www.jianshu.com/p/03a76b2e7e00"target="_blank"rel="noopener">this website</a></p>
<h2id="Install-wIoT-package"><ahref="#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>
<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>
<h2id="Burn-firmware"><ahref="#Burn-firmware"class="headerlink"title="Burn firmware"></a>Burn firmware</h2><h2id="Connect-your-device-to-D1-MINI"><ahref="#Connect-your-device-to-D1-MINI"class="headerlink"title="Connect your device to D1 MINI"></a>Connect your device to D1 MINI</h2><ul>
<li>After burning the firmware, you should try to connect your device to D1 MINI<br>Follow the steps below, I’m sure it would not be a problem for such a smart person like you </li>
</ul>
<h3id="1-Reset-your-D1-MINI"><ahref="#1-Reset-your-D1-MINI"class="headerlink"title="1. Reset your D1 MINI"></a>1. Reset your D1 MINI</h3><ul>
<li>Find pin <strong>D0</strong> on your D1 MINI, it should be in the middle of A0 and D5. </li>
<li>Use a wire to connect <strong>3V3</strong> to <strong>D0</strong>. If your MINI works normally, you would see its BUILT-IN LED blink. </li>
<li>You <strong>don’t</strong> have to wait until it stops blink, just stay for <strong>2s</strong>, then you can pull out the wire and your MINI would reset. </li>
</ul>
<h3id="2-Find-your-D1-MINI-on-your-device"><ahref="#2-Find-your-D1-MINI-on-your-device"class="headerlink"title="2.Find your D1 MINI on your device"></a>2.Find your D1 MINI on your device</h3><ul>
<li>After you finish step 1, your MINI would work in AP mode, which means you can search it with your smart phone or personal computer by scanning the Wi-Fi around </li>
<li>If your MINI was reset successfully, you would find a Wi-Fi with SSID in the form of <strong>wiot-xx:xx:xx:xx:xx:xx</strong>.<br>Example:<br><imgsrc="https://api.yimian.xyz/img/?path=docs/wiot/ssid.png"alt="ssid"><br>“xx:xx:xx:xx:xx:xx” is the MAC address of this MINI, please try to remember the address for you may use it later </li>
</ul>
<p>The default password for D1 MINI is <strong>1234567890</strong>, enter the password and you should be able to connect to your MINI.</p>
<h2id="Connect-D1-MINI-to-your-Wi-Fi"><ahref="#Connect-D1-MINI-to-your-Wi-Fi"class="headerlink"title="Connect D1 MINI to your Wi-Fi"></a>Connect D1 MINI to your Wi-Fi</h2><p>Congratulations, you have successfully connect your device to D1 MINI<br>However, this is not the end, you should now try to connect D1 MINI to your Wi-Fi<br>Use the device which had just been connected to D1 MINI and follow the steps below </p>
<h3id="1-Visit-the-control-page-of-D1-MINI"><ahref="#1-Visit-the-control-page-of-D1-MINI"class="headerlink"title="1. Visit the control page of D1 MINI"></a>1. Visit the control page of D1 MINI</h3><p>Visit <strong><ahref="http://192.168.0.1"target="_blank"rel="noopener">http://192.168.0.1</a></strong> with the browser on your device<br>Normally, you would see a webpage like this:<br><imgsrc="https://api.yimian.xyz/img/?path=docs/wiot/webpage.png"alt="webpage"><br>In this page, you can see the MAC Address and wIoT version of your MINI<br>Again, please <strong>remember</strong> the MAC Address </p>
<h3id="2-Submit-SSID-and-password-to-your-MINI"><ahref="#2-Submit-SSID-and-password-to-your-MINI"class="headerlink"title="2.Submit SSID and password to your MINI"></a>2.Submit SSID and password to your MINI</h3><p>From the page, you can see two blanks that ask the SSID and password of your Wi-Fi<br>Input information of the Wi-FI which you would like to connect your MINI, click <em>Submit</em><br>If you have input the right SSID and password, you will see a page showing the message: <strong>Set Successfully!! Rebooting!!</strong><br>Then, after a minute, you will see the SSID of D1 MINI has vanished </p>
<p>If you submitted the wrong message, do not try to directly reconnect to D1 MINI. Restart the whole procedure from the reset part of the last section</p>
<h2id="Execute-Example-Code"><ahref="#Execute-Example-Code"class="headerlink"title="Execute Example Code"></a>Execute Example Code</h2><p>If you have successfully connect D1 MINI to your Wi-Fi, you can execute the example code below to realize a simple function of wIoT<br>Before executing the code, you should first connect a LED to D1 MINI with positive pole connect to pin D4 and negative pole connect to GND</p>
<figureclass="highlight js"><table><tr><tdclass="gutter"><pre><spanclass="line">1</span><br><spanclass="line">2</span><br><spanclass="line">3</span><br><spanclass="line">4</span><br><spanclass="line">5</span><br><spanclass="line">6</span><br><spanclass="line">7</span><br><spanclass="line">8</span><br><spanclass="line">9</span><br><spanclass="line">10</span><br><spanclass="line">11</span><br><spanclass="line">12</span><br><spanclass="line">13</span><br><spanclass="line">14</span><br><spanclass="line">15</span><br><spanclass="line">16</span><br><spanclass="line">17</span><br><spanclass="line">18</span><br><spanclass="line">19</span><br><spanclass="line">20</span><br><spanclass="line">21</span><br><spanclass="line">22</span><br><spanclass="line">23</span><br><spanclass="line">24</span><br><spanclass="line">25</span><br><spanclass="line">26</span><br><spanclass="line">27</span><br><spanclass="line">28</span><br></pre></td><tdclass="code"><pre><spanclass="line"><spanclass="keyword">var</span> wiot = <spanclass="built_in">require</span>(<spanclass="string">'wiot'</span>); <spanclass="comment">//Import wiot package from npm</span></span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">// Create an object of single chip</span></span><br><spanclass="line"><spanclass="comment">// Here are two parameters, MAC is the MAC adress of single chip, the output port should be defined in pin</span></span><br><spanclass="line"><spanclass="comment">// The MAC address should be editted by user</span></span><br><spanclass="line"><spanclass="keyword">var</span> MyMCU = <spanclass="keyword">new</span> wiot.client({<spanclass="attr">MAC</span>: <spanclass="string">"3C:71:BF:3A:F6:CF"</span>, <spanclass="attr">pin</span>: {<spanclass="attr">D4</span> : <spanclass="number">1</span>}, <spanclass="attr">hint</span> : <spanclass="literal">true</span>});</span><br><spanclass="line"></span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">// The following code can let the BUILTIN_LED turn on for one second and off for one second periodically</span></span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">// Wait for all the chips to get ready</span></span><br><spanclass="line">wiot.begin([MyMCU], ()=>{</span><br><spanclass="line"><spanclass="comment">// First parameter is the name of chip, second parameter is the function that is going to be executed</span></span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">// Set timer, pin 3 of MyMCU will pull up every 2 seconds</span></span><br><spanclass="line"> setInterval(<spanclass="function"><spanclass="params">()</span>=></span>{</span><br><spanclass="line"> MyMCU.write(wiot.D4, wiot.HIGH);</span><br><spanclass="line">}, <spanclass="number">2000</span>);</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">// Set timer, executer the command in {} after a one-second delay</span></span><br><spanclass="line"> setTimeout(<spanclass="function"><spanclass="params">()</span>=></span>{</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">// Set timer, pin 3 of MyMCU will pull down every 2 seconds</span></span><br><spanclass="line"> setInterval(<spanclass="function"><spanclass="params">()</span>=></span>{</span><br><spanclass="line"> MyMCU.write(wiot.D4, wiot.LOW);</span><br><spanclass="line">}, <spanclass="number">2000</span>);</span><br><spanclass="line">}, <spanclass="number">1000</span>);</span><br><spanclass="line">});</span><br></pre></td></tr></table></figure>
<p>The LED is expected to blink after you execute the code</p>
<h4id="Event-List-of-client"><ahref="#Event-List-of-client"class="headerlink"title="Event List of client"></a>Event List of client</h4><ul>
<li><code>begin</code> It begins when MCU starts to interact normally</li>
<li><code>disConnected</code> Disconnect from MCU</li>
<li><code>reConnected</code> Connection with MCU restored</li>
</ul>
<figureclass="highlight plain"><table><tr><tdclass="gutter"><pre><spanclass="line">1</span><br><spanclass="line">2</span><br><spanclass="line">3</span><br><spanclass="line">4</span><br><spanclass="line">5</span><br><spanclass="line">6</span><br><spanclass="line">7</span><br><spanclass="line">8</span><br></pre></td><tdclass="code"><pre><spanclass="line">js</span><br><spanclass="line">var MCU = new wiot.client({"MAC": "xx:xx:xx:xx:xx:xx"});</span><br><spanclass="line"></span><br><spanclass="line">MCU.on('disConnected', function () {</span><br><spanclass="line"></span><br><spanclass="line">// Execute the command below when lost connection with MCU</span><br><spanclass="line"> console.log('Disconnected with MCU!!');</span><br><spanclass="line">});</span><br></pre></td></tr></table></figure>
<h4id="Event-List-of-pin"><ahref="#Event-List-of-pin"class="headerlink"title="Event List of pin"></a>Event List of pin</h4><ul>
<li><code>on</code> Change output of pin from LOW to HIGH</li>
<li><code>off</code> Change output of pin from HIGH to LOW</li>
<li><code>change</code> Change the output of pin</li>
</ul>
<figureclass="highlight js"><table><tr><tdclass="gutter"><pre><spanclass="line">1</span><br><spanclass="line">2</span><br><spanclass="line">3</span><br><spanclass="line">4</span><br><spanclass="line">5</span><br><spanclass="line">6</span><br><spanclass="line">7</span><br></pre></td><tdclass="code"><pre><spanclass="line"></span><br><spanclass="line"><spanclass="keyword">var</span> MCU = <spanclass="keyword">new</span> wiot.client({<spanclass="string">"MAC"</span>: <spanclass="string">"xx:xx:xx:xx:xx:xx"</span>});</span><br><spanclass="line"></span><br><spanclass="line">MCU.pinOn(wiot.D2, <spanclass="string">'on'</span>, <spanclass="function"><spanclass="keyword">function</span> (<spanclass="params"></span>) </span>{</span><br><spanclass="line"><spanclass="comment">// Execute when the output of D2 changes from LOW to HIGH</span></span><br><spanclass="line"><spanclass="built_in">console</span>.log(<spanclass="string">'D2 from LOW to HIGH!!'</span>);</span><br><spanclass="line">});</span><br></pre></td></tr></table></figure>
<li><code>wiot.begin()</code>: Execute when MCU is ready</li>
</ul>
<figureclass="highlight js"><table><tr><tdclass="gutter"><pre><spanclass="line">1</span><br><spanclass="line">2</span><br><spanclass="line">3</span><br><spanclass="line">4</span><br><spanclass="line">5</span><br><spanclass="line">6</span><br><spanclass="line">7</span><br><spanclass="line">8</span><br><spanclass="line">9</span><br></pre></td><tdclass="code"><pre><spanclass="line"></span><br><spanclass="line">MCU0 = <spanclass="keyword">new</span> wiot.client({<spanclass="attr">MAC</span>: <spanclass="string">"xx:xx:xx:xx:xx:xx"</span>, <spanclass="attr">pin</span>: {<spanclass="attr">D4</span>: wiot.OUTPUT}});</span><br><spanclass="line">MCU1 = <spanclass="keyword">new</span> wiot.client({<spanclass="attr">MAC</span>: <spanclass="string">"xx:xx:xx:xx:xx:ww"</span>});</span><br><spanclass="line"></span><br><spanclass="line">wiot.begin([MCU0, MCU1], ()=>{</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">//Write the command you want to execute here</span></span><br><spanclass="line"><spanclass="comment">//These command would execute once MCU0 and MCU1 are ready</span></span><br><spanclass="line">});</span><br></pre></td></tr></table></figure>
<p>+<br><code>wiot.loop()</code>: A loop command,Suitable for conditional control statements</p>
<figureclass="highlight js"><table><tr><tdclass="gutter"><pre><spanclass="line">1</span><br><spanclass="line">2</span><br><spanclass="line">3</span><br><spanclass="line">4</span><br><spanclass="line">5</span><br><spanclass="line">6</span><br><spanclass="line">7</span><br><spanclass="line">8</span><br><spanclass="line">9</span><br><spanclass="line">10</span><br><spanclass="line">11</span><br><spanclass="line">12</span><br><spanclass="line">13</span><br><spanclass="line">14</span><br><spanclass="line">15</span><br><spanclass="line">16</span><br><spanclass="line">17</span><br></pre></td><tdclass="code"><pre><spanclass="line"></span><br><spanclass="line">MCU0 = <spanclass="keyword">new</span> wiot.client({<spanclass="attr">MAC</span>: <spanclass="string">"xx:xx:xx:xx:xx:xx"</span>, <spanclass="attr">pin</span>: {<spanclass="attr">D4</span>: wiot.OUTPUT}});</span><br><spanclass="line">MCU1 = <spanclass="keyword">new</span> wiot.client({<spanclass="attr">MAC</span>: <spanclass="string">"xx:xx:xx:xx:xx:ww"</span>});</span><br><spanclass="line"></span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">// Following code would realize: When pin D5 of MCU0 receive HIGH,D4 of MCU1 would output HIGH</span></span><br><spanclass="line"><spanclass="comment">// When pin D5 of MCU0 receive LOW,D4 of MCU1 would output LOW</span></span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">// This function receives two parameters: first is an array of objects for MCU, second is a function which use MCU array of objects as its parameter</span></span><br><spanclass="line"></span><br><spanclass="line">wiot.loop([MCU0, MCU1], () =>{</span><br><spanclass="line"><spanclass="keyword">if</span>(MCU1.read(wiot.D5) == wiot.HIGH){</span><br><spanclass="line"> MCU0.write(wiot.D4, wiot.HIGH);</span><br><spanclass="line">}<spanclass="keyword">else</span>{</span><br><spanclass="line"> MCU0.write(wiot.D4, wiot.LOW);</span><br><spanclass="line">}</span><br><spanclass="line">});</span><br></pre></td></tr></table></figure>
<li><p><code>wiot.register.set(status1, status2, function)</code>: Add a rule to register that status can be either value or function,<br>function would trigger if status1 == status2<br>The registry is designed to facilitate the use of various extension modules, See [extension module] below (# Sensor Extension Module).</p>
</li>
<li><p><code>wiot.register.set(status, function)</code>: You can also pass in two functions, where the return value of status is of type bool, it would trigger the function if it changes to true</p>
</li>
</ul>
<figureclass="highlight js"><table><tr><tdclass="gutter"><pre><spanclass="line">1</span><br><spanclass="line">2</span><br><spanclass="line">3</span><br><spanclass="line">4</span><br><spanclass="line">5</span><br><spanclass="line">6</span><br><spanclass="line">7</span><br><spanclass="line">8</span><br><spanclass="line">9</span><br><spanclass="line">10</span><br><spanclass="line">11</span><br><spanclass="line">12</span><br><spanclass="line">13</span><br><spanclass="line">14</span><br><spanclass="line">15</span><br></pre></td><tdclass="code"><pre><spanclass="line"></span><br><spanclass="line"><spanclass="keyword">var</span> myLED = wiot.led(MyMCU, wiot.D4);</span><br><spanclass="line"><spanclass="keyword">var</span> pir = wiot.pir(MyMCU, wiot.D2);</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">//Sign up for a rule that says myLED lights up when pir detects a person</span></span><br><spanclass="line">wiot.register.set(pir.getStatus, wiot.HIGH, ()=>{</span><br><spanclass="line"> myLED.set(wiot.HIGH);</span><br><spanclass="line">});</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">//Sign up for a rule that when people leave, myLED goes off</span></span><br><spanclass="line">wiot.register.set(<spanclass="function"><spanclass="params">()</span>=></span>{</span><br><spanclass="line"><spanclass="keyword">return</span> (wiot.LOW == pir.getStatus);</span><br><spanclass="line">}, ()=>{</span><br><spanclass="line"> myLED.clear();</span><br><spanclass="line">});</span><br></pre></td></tr></table></figure>
<figureclass="highlight js"><table><tr><tdclass="gutter"><pre><spanclass="line">1</span><br><spanclass="line">2</span><br><spanclass="line">3</span><br><spanclass="line">4</span><br><spanclass="line">5</span><br><spanclass="line">6</span><br><spanclass="line">7</span><br><spanclass="line">8</span><br><spanclass="line">9</span><br><spanclass="line">10</span><br><spanclass="line">11</span><br><spanclass="line">12</span><br><spanclass="line">13</span><br><spanclass="line">14</span><br><spanclass="line">15</span><br><spanclass="line">16</span><br><spanclass="line">17</span><br><spanclass="line">18</span><br><spanclass="line">19</span><br><spanclass="line">20</span><br><spanclass="line">21</span><br><spanclass="line">22</span><br><spanclass="line">23</span><br><spanclass="line">24</span><br></pre></td><tdclass="code"><pre><spanclass="line"><spanclass="keyword">var</span> wiot = <spanclass="built_in">require</span>(<spanclass="string">'wiot'</span>); <spanclass="comment">//Import wiot package from npm</span></span><br><spanclass="line">MCU0 = <spanclass="keyword">new</span> wiot.client({<spanclass="attr">MAC</span>: <spanclass="string">"3C:71:BF:3A:F6:CF"</span>, <spanclass="attr">pin</span>: {<spanclass="attr">D4</span>: wiot.OUTPUT}});</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="keyword">var</span> myLED = wiot.led(MCU0, wiot.D4); <spanclass="comment">//Create a new led object using the D4 port on MCU0</span></span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* If myLED is not shining, light it up*/</span></span><br><spanclass="line"><spanclass="keyword">if</span>(!myLED.getStatus()){</span><br><spanclass="line"> myLED.set(wiot.HIGH);</span><br><spanclass="line">}</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* Set a breathing light with cycle of 2s */</span></span><br><spanclass="line">myLED.breath(<spanclass="number">2000</span>);</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* Set a LED which light 3 seconds and off 4 seconds */</span></span><br><spanclass="line">myLED.set([wiot.HIGH, wiot.LOW], [<spanclass="number">3000</span>, <spanclass="number">4000</span>]);</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* Set a breathing light which use 1 second to light and 3 second to extinguish */</span></span><br><spanclass="line">myLED.set([wiot.LOW, wiot.HIGH], [<spanclass="number">1000</span>, <spanclass="number">3000</span>], <spanclass="literal">true</span>);</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* Set a LED which shine with half brightness for 2 seconds, shine with full brightness for 3 seconds and then dextinguish for 2 seconds */</span></span><br><spanclass="line">myLED.set([<spanclass="number">100</span>, wiot.HIGH, wiot.LOW], [<spanclass="number">2000</span>, <spanclass="number">3000</span>, <spanclass="number">2000</span>]);</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* Turn off LED */</span></span><br><spanclass="line">myLED.clear();</span><br></pre></td></tr></table></figure>
<li><code>undetected</code> People out of the detective field</li>
<li><code>change</code> State change, includes from detected to undetected and from undetected to detected</li>
</ul>
<figureclass="highlight js"><table><tr><tdclass="gutter"><pre><spanclass="line">1</span><br><spanclass="line">2</span><br><spanclass="line">3</span><br><spanclass="line">4</span><br><spanclass="line">5</span><br><spanclass="line">6</span><br><spanclass="line">7</span><br><spanclass="line">8</span><br><spanclass="line">9</span><br><spanclass="line">10</span><br><spanclass="line">11</span><br><spanclass="line">12</span><br><spanclass="line">13</span><br><spanclass="line">14</span><br><spanclass="line">15</span><br><spanclass="line">16</span><br><spanclass="line">17</span><br><spanclass="line">18</span><br><spanclass="line">19</span><br><spanclass="line">20</span><br><spanclass="line">21</span><br><spanclass="line">22</span><br><spanclass="line">23</span><br></pre></td><tdclass="code"><pre><spanclass="line"><spanclass="keyword">var</span> wiot = <spanclass="built_in">require</span>(<spanclass="string">'wiot'</span>); <spanclass="comment">//Import wiot package from npm</span></span><br><spanclass="line"></span><br><spanclass="line">MCU0 = <spanclass="keyword">new</span> wiot.client({<spanclass="attr">MAC</span>: <spanclass="string">"3C:71:BF:3A:F6:CF"</span>});</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="keyword">var</span> myPIR = wiot.pir(MCU0, wiot.D2); <spanclass="comment">//Create an object of pir, use the D2 port on MCU0</span></span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* Output the status of pir to console */</span></span><br><spanclass="line"><spanclass="built_in">console</span>.log(myPIR.getStatus());</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* When human is detected,print "Detected People!" to console */</span></span><br><spanclass="line">myPIR.on(<spanclass="string">"detected"</span>, ()=>{</span><br><spanclass="line"><spanclass="built_in">console</span>.log(<spanclass="string">"Detected People!"</span>);</span><br><spanclass="line">});</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* When human is out of the detection zone,print "No People!!" to console */</span></span><br><spanclass="line">myPIR.on(<spanclass="string">"undetected"</span>, ()=>{</span><br><spanclass="line"><spanclass="built_in">console</span>.log(<spanclass="string">"No People!!"</span>);</span><br><spanclass="line">});</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* When there is a change to status, execute your command */</span></span><br><spanclass="line">myPIR.on(<spanclass="string">"change"</span>, ()=>{</span><br><spanclass="line"><spanclass="comment">/* Write command in here */</span></span><br><spanclass="line">});</span><br></pre></td></tr></table></figure>
<li><code>wiot.ir(MCU, pin)</code>: Declare an IR module, pin can be analog or digital port</li>
<li><code>wiot.ir.getStatus()</code>: Get IR state, return value wiot.high (with a barrier), wiot.low (with no barrier), or a value of 0-1024 (only for analog port)</li>
<figureclass="highlight js"><table><tr><tdclass="gutter"><pre><spanclass="line">1</span><br><spanclass="line">2</span><br><spanclass="line">3</span><br><spanclass="line">4</span><br><spanclass="line">5</span><br><spanclass="line">6</span><br><spanclass="line">7</span><br><spanclass="line">8</span><br><spanclass="line">9</span><br><spanclass="line">10</span><br><spanclass="line">11</span><br><spanclass="line">12</span><br><spanclass="line">13</span><br><spanclass="line">14</span><br><spanclass="line">15</span><br><spanclass="line">16</span><br><spanclass="line">17</span><br><spanclass="line">18</span><br><spanclass="line">19</span><br><spanclass="line">20</span><br><spanclass="line">21</span><br></pre></td><tdclass="code"><pre><spanclass="line">MCU0 = <spanclass="keyword">new</span> wiot.client({<spanclass="attr">MAC</span>: <spanclass="string">"xx:xx:xx:xx:xx:xx"</span>});</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="keyword">var</span> myIR = wiot.ir(MCU0, wiot.D2); <spanclass="comment">//Create a new ir object using the D2 port on MCU0</span></span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* Output ir status to console */</span></span><br><spanclass="line"><spanclass="built_in">console</span>.log(myIR.getStatus());</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* When an object is detected, print "Detected Object!" to the console */</span></span><br><spanclass="line">myIR.on(<spanclass="string">"detected"</span>, ()=>{</span><br><spanclass="line"><spanclass="built_in">console</span>.log(<spanclass="string">"Detected Object!"</span>);</span><br><spanclass="line">});</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* When the object move out of the detective area, print "No Object!!" to the console */</span></span><br><spanclass="line">myIR.on(<spanclass="string">"undetected"</span>, ()=>{</span><br><spanclass="line"><spanclass="built_in">console</span>.log(<spanclass="string">"No Object!!"</span>);</span><br><spanclass="line">});</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* Execute the command when state changes */</span></span><br><spanclass="line">myIR.on(<spanclass="string">"change"</span>, ()=>{</span><br><spanclass="line"><spanclass="comment">/* Your command */</span></span><br><spanclass="line">});</span><br></pre></td></tr></table></figure>
<li><code>wiot.lightSensor(MCU, pin)</code>: Declare a lightSensor module, pin can be analog or digital port</li>
<li><code>wiot.lightSensor.getStatus()</code>: Get lightSensor state, return value wiot.HIGH(light), wiot.LOW(dark), or a value of 0-1024 (limited to analog port)</li>
<figureclass="highlight js"><table><tr><tdclass="gutter"><pre><spanclass="line">1</span><br><spanclass="line">2</span><br><spanclass="line">3</span><br><spanclass="line">4</span><br><spanclass="line">5</span><br><spanclass="line">6</span><br><spanclass="line">7</span><br><spanclass="line">8</span><br><spanclass="line">9</span><br><spanclass="line">10</span><br><spanclass="line">11</span><br><spanclass="line">12</span><br><spanclass="line">13</span><br><spanclass="line">14</span><br><spanclass="line">15</span><br><spanclass="line">16</span><br><spanclass="line">17</span><br><spanclass="line">18</span><br><spanclass="line">19</span><br><spanclass="line">20</span><br><spanclass="line">21</span><br></pre></td><tdclass="code"><pre><spanclass="line"></span><br><spanclass="line">MCU0 = <spanclass="keyword">new</span> wiot.client({<spanclass="attr">MAC</span>: <spanclass="string">"xx:xx:xx:xx:xx:xx"</span>});</span><br><spanclass="line"><spanclass="keyword">var</span> myLightSensor = wiot.lightSensor(MCU0, wiot.D1); <spanclass="comment">//Create a new pir object using the D2 port on MCU0</span></span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* Output the LightSensor state to the console */</span></span><br><spanclass="line"><spanclass="built_in">console</span>.log(mylightSensor.getStatus());</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* When going from dark to Light, print "Light!!!" to the console */</span></span><br><spanclass="line">myLightSensor.on(<spanclass="string">"light"</span>, ()=>{</span><br><spanclass="line"><spanclass="built_in">console</span>.log(<spanclass="string">"Light!"</span>);</span><br><spanclass="line">});</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* When going from light to Dark, print "Dark!!" to the console */</span></span><br><spanclass="line">myLightSensor.on(<spanclass="string">"dark"</span>, ()=>{</span><br><spanclass="line"><spanclass="built_in">console</span>.log(<spanclass="string">"Dark!!"</span>);</span><br><spanclass="line">});</span><br><spanclass="line"></span><br><spanclass="line"><spanclass="comment">/* When the state changes, execute the command */</span></span><br><spanclass="line">myLightSensor.on(<spanclass="string">"change"</span>, ()=>{</span><br><spanclass="line"><spanclass="comment">/* Your command */</span></span><br><spanclass="line">});</span><br></pre></td></tr></table></figure>
<h2id="Internet-Extension-Module"><ahref="#Internet-Extension-Module"class="headerlink"title="Internet Extension Module"></a>Internet Extension Module</h2><h3id="Mail-module"><ahref="#Mail-module"class="headerlink"title="Mail module"></a>Mail module</h3><p>Use this module to send messages to the specified mailbox. Proudly built with reference to <ahref="https://api.yimian.xyz/"target="_blank"rel="noopener">Yimian API</a>!</p>
<ul>
<li><code>wiot.mail(to, from = "wIoT")</code>: Declare an mail module with sender’s name and reveiver’s address</li>
<li><code>wiot.mail.send(subject, body)</code>: Send email with a subject and content</li>
</ul>
<figureclass="highlight js"><table><tr><tdclass="gutter"><pre><spanclass="line">1</span><br><spanclass="line">2</span><br><spanclass="line">3</span><br></pre></td><tdclass="code"><pre><spanclass="line"><spanclass="keyword">var</span> mail = wiot.mail(<spanclass="string">"i@iotcat.me"</span>, <spanclass="string">"wIoT Test"</span>);</span><br><spanclass="line"></span><br><spanclass="line">mail.send(<spanclass="string">"Test"</span>, <spanclass="string">"Test from wiot!!"</span>);</span><br></pre></td></tr></table></figure>
<h3id="guguji"><ahref="#guguji"class="headerlink"title="guguji"></a>guguji</h3><p>Use this module to send messages to the specified cooing machine.Goo goo is a portable private printer, see <ahref="https://www.memobird.shop/"target="_blank"rel="noopener">official website</a>.<br>To use this module, you need to apply for your own developer ak in advance on the official website. See <ahref="https://api.yimian.xyz/gugu/intro.php"target="_blank"rel="noopener">here</a>. Proudly reference <ahref="https://api.yimian.xyz/"target="_blank"rel="noopener">Yimian API</a>!</p>
<ul>
<li><code>wiot.guguji(ak, userID, memobirdID)</code>: Declare a goo goo chicken module, parameter: developer’s ak, user id, cooing machine id</li>
<li><code>wiot.guguji.send(msg)</code>: Send message, need to pass in the message to be sent</li>
</ul>
<figureclass="highlight js"><table><tr><tdclass="gutter"><pre><spanclass="line">1</span><br><spanclass="line">2</span><br><spanclass="line">3</span><br></pre></td><tdclass="code"><pre><spanclass="line"><spanclass="keyword">var</span> gugu = wiot.guguji(<spanclass="string">"9e55121803474371bfa25d20e554b31f"</span>, <spanclass="string">"832598"</span>, <spanclass="string">"b3ee06a8bd9b49e1"</span>);</span><br><spanclass="line"></span><br><spanclass="line">gugu.print(<spanclass="string">"This is from wIoT!!"</span>);</span><br></pre></td></tr></table></figure>