Newer
Older
m5stickcplus / _build / html / appendix.html


<!DOCTYPE html>
<html class="writer-html4" lang="ja" >
<head>
  <meta charset="utf-8" />
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  
  <title>付録 &mdash; IoT Programming  ドキュメント</title>
  

  
  <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
  <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
  <link rel="stylesheet" href="_static/copybutton.css" type="text/css" />
  <link rel="stylesheet" href="_static/custom.css" type="text/css" />

  
  

  
  

  

  
  <!--[if lt IE 9]>
    <script src="_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
    
      <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
        <script type="text/javascript" src="_static/jquery.js"></script>
        <script type="text/javascript" src="_static/underscore.js"></script>
        <script type="text/javascript" src="_static/doctools.js"></script>
        <script type="text/javascript" src="_static/language_data.js"></script>
        <script type="text/javascript" src="_static/clipboard.min.js"></script>
        <script type="text/javascript" src="_static/copybutton.js"></script>
        <script type="text/javascript" src="_static/translations.js"></script>
    
    <script type="text/javascript" src="_static/js/theme.js"></script>

    
    <link rel="index" title="索引" href="genindex.html" />
    <link rel="search" title="検索" href="search.html" />
    <link rel="prev" title="Frequently-Asked Questions (FAQ: よくある質問)" href="faq.html" /> 
</head>

<body class="wy-body-for-nav">

   
  <div class="wy-grid-for-nav">
    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >
          

          
            <a href="index.html" class="icon icon-home"> IoT Programming
          

          
          </a>

          
            
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        
        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <p class="caption"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="intro.html">実験の目的</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html#id2">実験のすすめかた</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html#url">参考URL</a></li>
<li class="toctree-l1"><a class="reference internal" href="pre.html">事前準備</a></li>
<li class="toctree-l1"><a class="reference internal" href="week1.html">1週目</a></li>
<li class="toctree-l1"><a class="reference internal" href="week2.html">2週目</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">Frequently-Asked Questions (FAQ: よくある質問)</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">付録</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#id2">実験室で赤外リモコン送信テスト</a></li>
<li class="toctree-l2"><a class="reference internal" href="#env-ii-sensor">気温・湿度・気圧 (ENV II Sensor)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#speaker-hat">Speaker Hatで音をだす</a></li>
<li class="toctree-l2"><a class="reference internal" href="#line-notify-https-post">LINE Notify (HTTPS POST)</a></li>
</ul>
</li>
</ul>

            
          
        </div>
        
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="index.html">IoT Programming</a>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        
          

















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
        
      <li>付録</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
          
            <a href="_sources/appendix.rst.txt" rel="nofollow"> View page source</a>
          
        
      </li>
    
  </ul>

  
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="id1">
<h1>付録<a class="headerlink" href="#id1" title="このヘッドラインへのパーマリンク">¶</a></h1>
<div class="section" id="id2">
<h2>実験室で赤外リモコン送信テスト<a class="headerlink" href="#id2" title="このヘッドラインへのパーマリンク">¶</a></h2>
<p>内蔵の赤外LEDを用いて、ビデオカメラ操作する例を <a class="reference internal" href="#irsend02"><span class="std std-numref">リスト 29</span></a> に示します。
ライブラリマネージャにて、IRremoteESP8266 をインストールしてください。ちなみに、テストしたバージョンは2.7.15でした。 <code class="docutils literal notranslate"><span class="pre">2.7.15</span></code> <strong>より新しいバージョンだと、失敗する場合があります。もし最新版を入れてうまくいかない場合はダウングレードしてください。</strong></p>
<div class="literal-block-wrapper docutils container" id="irsend02">
<div class="code-block-caption"><span class="caption-number">リスト 29 </span><span class="caption-text">src/irsend02.ino</span><a class="headerlink" href="#irsend02" title="このコードへのパーマリンク">¶</a></div>
<div class="highlight-arduino notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cm">/* IRremoteESP8266: IRsendDemo - demonstrates sending IR codes with IRsend.</span>

<span class="cm">   Version 1.1 January, 2019</span>
<span class="cm">   Based on Ken Shirriff&#39;s IrsendDemo Version 0.1 July, 2009,</span>
<span class="cm">   Copyright 2009 Ken Shirriff, http://arcfn.com</span>

<span class="cm">   An IR LED circuit *MUST* be connected to the ESP8266 on a pin</span>
<span class="cm">   as specified by kIrLed below.</span>

<span class="cm">   TL;DR: The IR LED needs to be driven by a transistor for a good result.</span>

<span class="cm">   Suggested circuit:</span>
<span class="cm">       https://github.com/crankyoldgit/IRremoteESP8266/wiki#ir-sending</span>

<span class="cm">   Common mistakes &amp; tips:</span>
<span class="cm"> *   * Don&#39;t just connect the IR LED directly to the pin, it won&#39;t</span>
<span class="cm">       have enough current to drive the IR LED effectively.</span>
<span class="cm"> *   * Make sure you have the IR LED polarity correct.</span>
<span class="cm">       See: https://learn.sparkfun.com/tutorials/polarity/diode-and-led-polarity</span>
<span class="cm"> *   * Typical digital camera/phones can be used to see if the IR LED is flashed.</span>
<span class="cm">       Replace the IR LED with a normal LED if you don&#39;t have a digital camera</span>
<span class="cm">       when debugging.</span>
<span class="cm"> *   * Avoid using the following pins unless you really know what you are doing:</span>
<span class="cm"> *     * Pin 0/D3: Can interfere with the boot/program mode &amp; support circuits.</span>
<span class="cm"> *     * Pin 1/TX/TXD0: Any serial transmissions from the ESP8266 will interfere.</span>
<span class="cm"> *     * Pin 3/RX/RXD0: Any serial transmissions to the ESP8266 will interfere.</span>
<span class="cm"> *   * ESP-01 modules are tricky. We suggest you use a module with more GPIOs</span>
<span class="cm">       for your first time. e.g. ESP-12 etc.</span>
<span class="cm">*/</span>
<span class="cp">#include</span> <span class="cpf">&lt;M5StickCPlus.h&gt;</span><span class="cp"></span>
<span class="cp">#include</span> <span class="cpf">&lt;IRremoteESP8266.h&gt;</span><span class="cp"></span>
<span class="cp">#include</span> <span class="cpf">&lt;IRsend.h&gt;</span><span class="cp"></span>

<span class="kr">const</span> <span class="kr">uint16_t</span> <span class="n">kIrLed</span> <span class="o">=</span> <span class="mi">9</span><span class="p">;</span>  <span class="c1">// 赤外LEDが接続されたピン番号</span>

<span class="n">IRsend</span> <span class="nf">irsend</span><span class="p">(</span><span class="n">kIrLed</span><span class="p">);</span>  <span class="c1">// Set the GPIO to be used to sending the message.</span>

<span class="c1">// Example of data captured by IRrecvDumpV2.ino</span>
<span class="kr">uint16_t</span> <span class="n">photoshot</span><span class="p">[</span><span class="mi">99</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">3488</span><span class="p">,</span> <span class="mi">1740</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">440</span><span class="p">,</span> <span class="mi">422</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span> <span class="mi">440</span><span class="p">,</span> <span class="mi">422</span><span class="p">,</span>  <span class="mi">440</span><span class="p">,</span> <span class="mi">422</span><span class="p">,</span>
                          <span class="mi">440</span><span class="p">,</span> <span class="mi">422</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">426</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>
                          <span class="mi">438</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">440</span><span class="p">,</span> <span class="mi">422</span><span class="p">,</span>  <span class="mi">442</span><span class="p">,</span> <span class="mi">422</span><span class="p">,</span>  <span class="mi">440</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>
                          <span class="mi">442</span><span class="p">,</span> <span class="mi">420</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">1304</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">1304</span><span class="p">,</span>  <span class="mi">440</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>
                          <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">440</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">440</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">440</span><span class="p">,</span> <span class="mi">422</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">440</span><span class="p">,</span> <span class="mi">422</span><span class="p">,</span>
                          <span class="mi">440</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">1304</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">1304</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>
                          <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">462</span><span class="p">,</span> <span class="mi">1278</span><span class="p">,</span>  <span class="mi">464</span><span class="p">,</span> <span class="mi">1278</span><span class="p">,</span>  <span class="mi">464</span><span class="p">,</span> <span class="mi">1278</span><span class="p">,</span>  <span class="mi">462</span><span class="p">,</span> <span class="mi">1280</span><span class="p">,</span>  <span class="mi">460</span><span class="p">,</span> <span class="mi">1280</span><span class="p">,</span>  <span class="mi">464</span><span class="p">,</span> <span class="mi">398</span><span class="p">,</span>
                          <span class="mi">464</span><span class="p">,</span> <span class="mi">398</span><span class="p">,</span>  <span class="mi">438</span>
                         <span class="p">};</span>  <span class="c1">// PANASONIC 40040E14667C</span>

<span class="kr">uint16_t</span> <span class="n">recording</span><span class="p">[</span><span class="mi">99</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">3490</span><span class="p">,</span> <span class="mi">1738</span><span class="p">,</span>  <span class="mi">440</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">1304</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>
                      <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>
                      <span class="mi">438</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">440</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">442</span><span class="p">,</span> <span class="mi">422</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>
                      <span class="mi">438</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">442</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">440</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">440</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>
                      <span class="mi">438</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">442</span><span class="p">,</span> <span class="mi">420</span><span class="p">,</span>  <span class="mi">442</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">422</span><span class="p">,</span>  <span class="mi">442</span><span class="p">,</span> <span class="mi">422</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>
                      <span class="mi">440</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">438</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">442</span><span class="p">,</span> <span class="mi">1300</span><span class="p">,</span>  <span class="mi">440</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>
                      <span class="mi">440</span><span class="p">,</span> <span class="mi">422</span><span class="p">,</span>  <span class="mi">440</span><span class="p">,</span> <span class="mi">1302</span><span class="p">,</span>  <span class="mi">440</span><span class="p">,</span> <span class="mi">424</span><span class="p">,</span>  <span class="mi">462</span><span class="p">,</span> <span class="mi">1278</span><span class="p">,</span>  <span class="mi">464</span><span class="p">,</span> <span class="mi">400</span><span class="p">,</span>  <span class="mi">464</span><span class="p">,</span> <span class="mi">398</span><span class="p">,</span>  <span class="mi">464</span><span class="p">,</span> <span class="mi">1278</span><span class="p">,</span>  <span class="mi">464</span>
                     <span class="p">};</span>  <span class="c1">// PANASONIC 40040E143329</span>

<span class="kr">void</span> <span class="nb">setup</span><span class="p">()</span> <span class="p">{</span>
  <span class="n">M5</span><span class="p">.</span><span class="nf">begin</span><span class="p">();</span>
  <span class="nf">Serial</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">115200</span><span class="p">);</span>
  <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="n">fillScreen</span><span class="p">(</span><span class="n">BLUE</span><span class="p">);</span>
  <span class="n">irsend</span><span class="p">.</span><span class="nf">begin</span><span class="p">();</span>
<span class="p">}</span>

<span class="kr">void</span> <span class="nb">loop</span><span class="p">()</span> <span class="p">{</span>
  <span class="c1">//  Serial.println(&quot;NEC&quot;);  //  irsend.sendNEC(0x00FFE01FUL);</span>
  <span class="c1">//  Serial.println(&quot;Sony&quot;); //  irsend.sendSony(0xa90, 12, 2);  // 12 bits &amp; 2 repeats</span>
  <span class="n">M5</span><span class="p">.</span><span class="n">update</span><span class="p">();</span>
  <span class="k">if</span> <span class="p">(</span><span class="n">M5</span><span class="p">.</span><span class="n">BtnA</span><span class="p">.</span><span class="n">wasReleased</span><span class="p">())</span> <span class="p">{</span>
    <span class="n">irsend</span><span class="p">.</span><span class="n">sendRaw</span><span class="p">(</span><span class="n">photoshot</span><span class="p">,</span> <span class="mi">99</span><span class="p">,</span> <span class="mi">38</span><span class="p">);</span>  <span class="c1">// Send a raw data capture at 38kHz.</span>
    <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="n">fillScreen</span><span class="p">(</span><span class="n">YELLOW</span><span class="p">);</span>
  <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">M5</span><span class="p">.</span><span class="n">BtnB</span><span class="p">.</span><span class="n">wasReleased</span><span class="p">())</span> <span class="p">{</span>
    <span class="n">irsend</span><span class="p">.</span><span class="n">sendRaw</span><span class="p">(</span><span class="n">recording</span><span class="p">,</span> <span class="mi">99</span><span class="p">,</span> <span class="mi">38</span><span class="p">);</span>  <span class="c1">// Send a raw data capture at 38kHz.</span>
    <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="n">fillScreen</span><span class="p">(</span><span class="n">RED</span><span class="p">);</span>
  <span class="p">}</span>
  <span class="nf">delay</span><span class="p">(</span><span class="mi">150</span><span class="p">);</span>
  <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="n">fillScreen</span><span class="p">(</span><span class="n">BLUE</span><span class="p">);</span>
  <span class="c1">//  Serial.println(&quot;a Samsung A/C state from IRrecvDumpV2&quot;);</span>
  <span class="c1">//  irsend.sendSamsungAC(samsungState);</span>
  <span class="c1">//  delay(2000);</span>
<span class="p">}</span>
</pre></div>
</td></tr></table></div>
</div>
</div>
<div class="section" id="env-ii-sensor">
<h2>気温・湿度・気圧 (ENV II Sensor)<a class="headerlink" href="#env-ii-sensor" title="このヘッドラインへのパーマリンク">¶</a></h2>
<p>M5Stack社ENV II Unit(U001-B)
<a class="reference external" href="https://lang-ship.com/blog/work/m5stack-env-ii-unit-u001-b/">https://lang-ship.com/blog/work/m5stack-env-ii-unit-u001-b/</a>
の、M5StickCでの使い方(GitHub)
に従って、以下2つをライブラリマネージャから入れてください。</p>
<ul class="simple">
<li>Adafruit BMP280 Library</li>
<li>Adafruit SHT31 Library</li>
</ul>
<p>上のリンクにあったプログラムとほぼ同じですが、<a class="reference internal" href="#env2"><span class="std std-numref">リスト 30</span></a> が、気温・湿度・気圧をLCDとシリアルコンソールに出力するプログラムです。(すこしだけ改変しています)</p>
<div class="literal-block-wrapper docutils container" id="env2">
<div class="code-block-caption"><span class="caption-number">リスト 30 </span><span class="caption-text">src/env2.ino</span><a class="headerlink" href="#env2" title="このコードへのパーマリンク">¶</a></div>
<div class="highlight-arduino notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cm">/*</span>
<span class="cm"> Please install the &lt; Adafruit BMP280 Library &gt; (https://github.com/adafruit/Adafruit_BMP280_Library)</span>
<span class="cm">                     &lt; Adafruit SHT31 Library &gt; (https://github.com/adafruit/Adafruit_SHT31)</span>
<span class="cm">   from the library manager before use.</span>
<span class="cm">  This code will display the temperature, humidity and air pressure information on the screen</span>
<span class="cm">  https://lang-ship.com/blog/work/m5stack-env-ii-unit-u001-b/</span>
<span class="cm">  */</span>
<span class="cp">#include</span> <span class="cpf">&lt;M5StickCPlus.h&gt;</span><span class="cp"></span>
<span class="cp">#include</span> <span class="cpf">&lt;Adafruit_BMP280.h&gt;</span><span class="cp"></span>
<span class="cp">#include</span> <span class="cpf">&lt;Adafruit_SHT31.h&gt;</span><span class="cp"></span>
<span class="n">Adafruit_SHT31</span> <span class="n">sht3x</span> <span class="o">=</span> <span class="n">Adafruit_SHT31</span><span class="p">(</span><span class="o">&amp;</span><span class="nf">Wire</span><span class="p">);</span>
<span class="n">Adafruit_BMP280</span> <span class="n">bme</span> <span class="o">=</span> <span class="n">Adafruit_BMP280</span><span class="p">(</span><span class="o">&amp;</span><span class="nf">Wire</span><span class="p">);</span>
<span class="kr">float</span> <span class="n">tmp</span> <span class="o">=</span> <span class="mf">0.0</span><span class="p">;</span>
<span class="kr">float</span> <span class="n">hum</span> <span class="o">=</span> <span class="mf">0.0</span><span class="p">;</span>
<span class="kr">float</span> <span class="n">pressure</span> <span class="o">=</span> <span class="mf">0.0</span><span class="p">;</span>
<span class="kr">void</span> <span class="nb">setup</span><span class="p">()</span> <span class="p">{</span>
  <span class="n">M5</span><span class="p">.</span><span class="nf">begin</span><span class="p">();</span>
  <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="n">setRotation</span><span class="p">(</span><span class="mi">3</span><span class="p">);</span>
  <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="nf">setTextSize</span><span class="p">(</span><span class="mi">3</span><span class="p">);</span>
  <span class="nf">Wire</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">32</span><span class="p">,</span> <span class="mi">33</span><span class="p">);</span>
  <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="n">F</span><span class="p">(</span><span class="s">&quot;ENV Unit(SHT30 and BMP280) test...&quot;</span><span class="p">));</span>
  <span class="k">while</span> <span class="p">(</span><span class="o">!</span><span class="n">bme</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mh">0x76</span><span class="p">))</span> <span class="p">{</span>
    <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">&quot;Could not find a valid BMP280 sensor, check wiring!&quot;</span><span class="p">);</span>
    <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">&quot;Could not find a valid BMP280 sensor, check wiring!&quot;</span><span class="p">);</span>
  <span class="p">}</span>
  <span class="k">while</span> <span class="p">(</span><span class="o">!</span><span class="n">sht3x</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mh">0x44</span><span class="p">))</span> <span class="p">{</span>
    <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">&quot;Could not find a valid SHT3X sensor, check wiring!&quot;</span><span class="p">);</span>
    <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">&quot;Could not find a valid SHT3X sensor, check wiring!&quot;</span><span class="p">);</span>
  <span class="p">}</span>
  <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="n">fillScreen</span><span class="p">(</span><span class="n">BLACK</span><span class="p">);</span>
  <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">&quot;ENV Unit test...&quot;</span><span class="p">);</span>
<span class="p">}</span>
<span class="kr">void</span> <span class="nb">loop</span><span class="p">()</span> <span class="p">{</span>
  <span class="n">pressure</span> <span class="o">=</span> <span class="n">bme</span><span class="p">.</span><span class="n">readPressure</span><span class="p">();</span>
  <span class="n">tmp</span> <span class="o">=</span> <span class="n">sht3x</span><span class="p">.</span><span class="nf">readTemperature</span><span class="p">();</span>
  <span class="n">hum</span> <span class="o">=</span> <span class="n">sht3x</span><span class="p">.</span><span class="n">readHumidity</span><span class="p">();</span>
  <span class="nf">Serial</span><span class="p">.</span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;Temperature: %2.2f*C  Humidity: %0.2f%%  Pressure: %0.2fhPa</span><span class="se">\r\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">tmp</span><span class="p">,</span> <span class="n">hum</span><span class="p">,</span> <span class="n">pressure</span> <span class="o">/</span> <span class="mi">100</span><span class="p">);</span>
  <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="nf">setCursor</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">25</span><span class="p">);</span>
  <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="n">setTextColor</span><span class="p">(</span><span class="n">WHITE</span><span class="p">,</span> <span class="n">BLACK</span><span class="p">);</span>
  <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;Temp:%2.2f*C</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">tmp</span><span class="p">);</span>
  <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;Humi:%2.2f%%</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">hum</span><span class="p">);</span>
  <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;Prs :%2.0fhPa</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">pressure</span> <span class="o">/</span> <span class="mi">100</span><span class="p">);</span>
  <span class="nf">delay</span><span class="p">(</span><span class="mi">1000</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
</td></tr></table></div>
</div>
<div class="admonition warning">
<p class="first admonition-title">警告</p>
<p class="last">ENV II HAT用のプログラムではありません。<a class="reference external" href="https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Hat/ENVII_HAT">ENV II HAT用のサンプル</a></p>
</div>
</div>
<div class="section" id="speaker-hat">
<h2>Speaker Hatで音をだす<a class="headerlink" href="#speaker-hat" title="このヘッドラインへのパーマリンク">¶</a></h2>
<p>参考:<a class="reference external" href="https://nn-hokuson.hatenablog.com/entry/2017/09/01/092945">https://nn-hokuson.hatenablog.com/entry/2017/09/01/092945</a></p>
<p>ボタンを押したときに、2種類の音を出す例を <a class="reference internal" href="#speakerhat01"><span class="std std-numref">リスト 31</span></a> に示します。また、音データのサンプルを <a class="reference external" href="https://cit.istlab.info/m5stickcplus/src/coin05_16k.ino.txt">16k.txt</a> と
<a class="reference external" href="https://cit.istlab.info/m5stickcplus/src/coin05_8k.ino.txt">8k.txt</a> におきました。
(16kも8kも、Speaker Hatで聴く分には違いはわかりませんでしたので、8kでいいとおもいます。)</p>
<p><a class="reference internal" href="#speakerhat01"><span class="std std-numref">リスト 31</span></a> のコメント(黄色ハイライト部分)をよく読んで、タブを追加し、16k.txt と 8k.txt の内容を貼り付けてください。</p>
<div class="literal-block-wrapper docutils container" id="speakerhat01">
<div class="code-block-caption"><span class="caption-number">リスト 31 </span><span class="caption-text">src/speakerhat01.ino</span><a class="headerlink" href="#speakerhat01" title="このコードへのパーマリンク">¶</a></div>
<div class="highlight-arduino notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cp">#include</span> <span class="cpf">&lt;M5StickCPlus.h&gt;</span><span class="cp"></span>

<span class="kr">const</span> <span class="kr">int</span> <span class="n">servo_pin</span> <span class="o">=</span> <span class="mi">26</span><span class="p">;</span>
<span class="kr">uint8_t</span> <span class="n">ledChannel</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kr">uint8_t</span> <span class="n">resolution</span> <span class="o">=</span> <span class="mi">8</span><span class="p">;</span>
<span class="kr">uint32_t</span> <span class="n">sampling_rate</span> <span class="o">=</span> <span class="mi">16000</span><span class="p">;</span> <span class="c1">//16kの場合。8kの場合は、8000</span>

<span class="hll"><span class="cm">/*</span>
</span><span class="hll"><span class="cm">    別タブ(ファイル名はなんでもよい)に、音声データを以下の形式で貼っておく。</span>
</span><span class="hll"><span class="cm">    【音1】</span>
</span><span class="hll"><span class="cm">    const uint8_t coin05_8k_raw[] PROGMEM = { 0x80, ... };</span>
</span><span class="hll"><span class="cm">    const uint32_t coin05_8k_raw_len = 7218; // ←配列のサイズ</span>
</span><span class="hll"><span class="cm">    【音2】</span>
</span><span class="hll"><span class="cm">    const uint8_t coin05_16k_raw[] PROGMEM = { 0x80, ... };</span>
</span><span class="hll"><span class="cm">    const uint32_t coin05_16k_raw_len = 14437; // ←配列のサイズ</span>
</span><span class="hll"><span class="cm">    PROGMEM と書くと、フラッシュメモリに配置する</span>
</span><span class="hll">
</span><span class="hll"><span class="cm">    そのうえで、以下のextern文を、別タブの変数名と合わせて書く。</span>
</span><span class="hll"><span class="cm">    変数名を一致させることが重要です。</span>
</span><span class="cm">*/</span>
<span class="c1">//    【音1】</span>
<span class="kr">extern</span> <span class="kr">const</span> <span class="kr">uint8_t</span> <span class="n">coin05_8k_raw</span><span class="p">[];</span>
<span class="kr">extern</span> <span class="kr">const</span> <span class="kr">uint32_t</span> <span class="n">coin05_8k_raw_len</span><span class="p">;</span>
<span class="c1">//    【音2】</span>
<span class="kr">extern</span> <span class="kr">const</span> <span class="kr">uint8_t</span> <span class="n">coin05_16k_raw</span><span class="p">[];</span>
<span class="kr">extern</span> <span class="kr">const</span> <span class="kr">uint32_t</span> <span class="n">coin05_16k_raw_len</span><span class="p">;</span>

<span class="kr">void</span> <span class="nb">setup</span><span class="p">()</span> <span class="p">{</span>
  <span class="c1">// put your setup code here, to run once:</span>
  <span class="n">M5</span><span class="p">.</span><span class="nf">begin</span><span class="p">();</span>
  <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="n">setRotation</span><span class="p">(</span><span class="mi">3</span><span class="p">);</span>
  <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="nf">setCursor</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mi">4</span><span class="p">);</span>
  <span class="n">M5</span><span class="p">.</span><span class="n">Lcd</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">&quot; speaker hat test&quot;</span><span class="p">);</span>
  <span class="n">ledcSetup</span><span class="p">(</span><span class="n">ledChannel</span><span class="p">,</span> <span class="n">sampling_rate</span> <span class="o">*</span> <span class="mi">32</span><span class="p">,</span> <span class="n">resolution</span><span class="p">);</span>
  <span class="n">ledcAttachPin</span><span class="p">(</span><span class="n">servo_pin</span><span class="p">,</span> <span class="n">ledChannel</span><span class="p">);</span>
  <span class="n">ledcWrite</span><span class="p">(</span><span class="n">ledChannel</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
<span class="p">}</span>
<span class="kr">void</span> <span class="nf">playMusic</span><span class="p">(</span><span class="kr">const</span> <span class="kr">uint8_t</span><span class="o">*</span> <span class="n">music_data</span><span class="p">,</span> <span class="kr">uint32_t</span> <span class="n">len</span><span class="p">,</span> <span class="kr">uint16_t</span> <span class="n">sample_rate</span><span class="p">)</span> <span class="p">{</span>
  <span class="kr">uint32_t</span> <span class="n">delay_interval</span> <span class="o">=</span> <span class="p">((</span><span class="kr">uint32_t</span><span class="p">)</span><span class="mi">1000000</span> <span class="o">/</span> <span class="n">sample_rate</span><span class="p">);</span>
  <span class="k">for</span> <span class="p">(</span><span class="kr">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">len</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
    <span class="n">ledcWrite</span><span class="p">(</span><span class="n">ledChannel</span><span class="p">,</span> <span class="n">music_data</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span>
    <span class="nf">delayMicroseconds</span><span class="p">(</span><span class="n">delay_interval</span><span class="p">);</span>
  <span class="p">}</span>
  <span class="n">ledcWriteTone</span><span class="p">(</span><span class="n">ledChannel</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
<span class="p">}</span>
<span class="kr">void</span> <span class="nb">loop</span><span class="p">()</span> <span class="p">{</span>
  <span class="n">M5</span><span class="p">.</span><span class="n">update</span><span class="p">();</span>
  <span class="k">if</span> <span class="p">(</span><span class="n">M5</span><span class="p">.</span><span class="n">BtnA</span><span class="p">.</span><span class="n">wasReleased</span><span class="p">())</span> <span class="p">{</span>
    <span class="n">playMusic</span><span class="p">(</span><span class="n">coin05_16k_raw</span><span class="p">,</span> <span class="n">coin05_16k_raw_len</span><span class="p">,</span> <span class="n">sampling_rate</span> <span class="o">+</span> <span class="mi">800</span><span class="p">);</span> <span class="c1">//なぜか音が低いので +800した</span>
  <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">M5</span><span class="p">.</span><span class="n">BtnB</span><span class="p">.</span><span class="n">wasReleased</span><span class="p">())</span> <span class="p">{</span>
    <span class="n">playMusic</span><span class="p">(</span><span class="n">coin05_8k_raw</span><span class="p">,</span> <span class="n">coin05_8k_raw_len</span><span class="p">,</span> <span class="n">sampling_rate</span> <span class="o">/</span> <span class="mi">2</span><span class="p">);</span> <span class="c1">// 8kなので、2で割った</span>
  <span class="p">}</span>
  <span class="n">ledcWriteTone</span><span class="p">(</span><span class="n">ledChannel</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
  <span class="nf">delay</span><span class="p">(</span><span class="mi">100</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
</td></tr></table></div>
</div>
</div>
<div class="section" id="line-notify-https-post">
<h2>LINE Notify (HTTPS POST)<a class="headerlink" href="#line-notify-https-post" title="このヘッドラインへのパーマリンク">¶</a></h2>
<p><a class="reference external" href="https://notify-bot.line.me/ja/">https://notify-bot.line.me/ja/</a> で、トークンを取得しておく必要があります。</p>
<div class="literal-block-wrapper docutils container" id="line01">
<div class="code-block-caption"><span class="caption-number">リスト 32 </span><span class="caption-text">src/line01.ino</span><a class="headerlink" href="#line01" title="このコードへのパーマリンク">¶</a></div>
<div class="highlight-arduino notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cp">#include</span> <span class="cpf">&lt;WiFi.h&gt;</span><span class="cp"></span>
<span class="cp">#include</span> <span class="cpf">&lt;WiFiMulti.h&gt;</span><span class="cp"></span>
<span class="cp">#include</span> <span class="cpf">&lt;WiFiClient.h&gt;</span><span class="cp"></span>
<span class="cp">#include</span> <span class="cpf">&lt;HTTPClient.h&gt;</span><span class="cp"></span>

<span class="n">WiFiMulti</span> <span class="n">WiFiMulti</span><span class="p">;</span>

<span class="kr">void</span> <span class="nb">setup</span><span class="p">()</span> <span class="p">{</span>
  <span class="nf">Serial</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">115200</span><span class="p">);</span>
  <span class="nf">WiFi</span><span class="p">.</span><span class="n">mode</span><span class="p">(</span><span class="n">WIFI_STA</span><span class="p">);</span>
  <span class="n">WiFiMulti</span><span class="p">.</span><span class="n">addAP</span><span class="p">(</span><span class="s">&quot;miura_asp_2g&quot;</span><span class="p">,</span> <span class="s">&quot;********&quot;</span><span class="p">);</span>

  <span class="c1">// wait for WiFi connection</span>
  <span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">&quot;Waiting for WiFi to connect...&quot;</span><span class="p">);</span>
  <span class="k">while</span> <span class="p">((</span><span class="n">WiFiMulti</span><span class="p">.</span><span class="nf">run</span><span class="p">()</span> <span class="o">!=</span> <span class="n">WL_CONNECTED</span><span class="p">))</span> <span class="p">{</span>
    <span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">&quot;.&quot;</span><span class="p">);</span>
    <span class="nf">delay</span><span class="p">(</span><span class="mi">50</span><span class="p">);</span>
  <span class="p">}</span>
  <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">&quot; connected&quot;</span><span class="p">);</span>
<span class="p">}</span>

<span class="kr">void</span> <span class="nb">loop</span><span class="p">()</span> <span class="p">{</span>
  <span class="n">HTTPClient</span> <span class="n">http</span><span class="p">;</span>

<span class="hll">  <span class="k">if</span> <span class="p">(</span><span class="n">http</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="s">&quot;https://notify-api.line.me/api/notify&quot;</span><span class="p">))</span> <span class="p">{</span>  <span class="c1">// HTTPS</span>
</span><span class="hll">    <span class="n">http</span><span class="p">.</span><span class="n">addHeader</span><span class="p">(</span><span class="s">&quot;Authorization&quot;</span><span class="p">,</span> <span class="s">&quot;Bearer TOKENTOKENTOKEN&quot;</span><span class="p">);</span> <span class="c1">// ここのTOKENTOKEN... の部分に、取得したTokenを指定する</span>
</span><span class="hll">    <span class="n">http</span><span class="p">.</span><span class="n">addHeader</span><span class="p">(</span><span class="s">&quot;Content-Type&quot;</span><span class="p">,</span> <span class="s">&quot;application/x-www-form-urlencoded&quot;</span><span class="p">);</span> <span class="c1">// format of postdata</span>
</span><span class="hll">    <span class="kr">String</span> <span class="n">postdata</span> <span class="o">=</span> <span class="s">&quot;message=日本語でも大丈夫です&quot;</span><span class="p">;</span>
</span><span class="hll">    <span class="kr">int</span> <span class="n">httpCode</span> <span class="o">=</span> <span class="n">http</span><span class="p">.</span><span class="n">POST</span><span class="p">(</span><span class="n">postdata</span><span class="p">);</span>
</span>
    <span class="c1">// httpCode will be negative on error</span>
    <span class="k">if</span> <span class="p">(</span><span class="n">httpCode</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
      <span class="c1">// HTTP header has been send and Server response header has been handled</span>
      <span class="nf">Serial</span><span class="p">.</span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;[HTTP] GET... code: %d</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">httpCode</span><span class="p">);</span>

      <span class="c1">// file found at server</span>
      <span class="k">if</span> <span class="p">(</span><span class="n">httpCode</span> <span class="o">==</span> <span class="n">HTTP_CODE_OK</span> <span class="o">||</span> <span class="n">httpCode</span> <span class="o">==</span> <span class="n">HTTP_CODE_MOVED_PERMANENTLY</span><span class="p">)</span> <span class="p">{</span>
        <span class="kr">String</span> <span class="n">payload</span> <span class="o">=</span> <span class="n">http</span><span class="p">.</span><span class="n">getString</span><span class="p">();</span>
        <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="n">payload</span><span class="p">);</span>
      <span class="p">}</span>
    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
      <span class="nf">Serial</span><span class="p">.</span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;[HTTP] GET... failed, error: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">http</span><span class="p">.</span><span class="n">errorToString</span><span class="p">(</span><span class="n">httpCode</span><span class="p">).</span><span class="n">c_str</span><span class="p">());</span>
    <span class="p">}</span>
    <span class="n">http</span><span class="p">.</span><span class="nf">end</span><span class="p">();</span>
  <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
    <span class="nf">Serial</span><span class="p">.</span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;[HTTP] Unable to connect</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span>
  <span class="p">}</span>

  <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">();</span>
  <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">&quot;Waiting 2 minutes...&quot;</span><span class="p">);</span> 
  <span class="nf">delay</span><span class="p">(</span><span class="mi">60</span><span class="o">*</span><span class="mi">2</span><span class="o">*</span><span class="mi">1000</span><span class="p">);</span> <span class="c1">// 120秒まつ</span>
<span class="p">}</span>
</pre></div>
</td></tr></table></div>
</div>
</div>
</div>


           </div>
           
          </div>
          <footer>
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
        <a href="faq.html" class="btn btn-neutral float-left" title="Frequently-Asked Questions (FAQ: よくある質問)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>
        &#169; Copyright 2021, Motoki Miura.

    </p>
  </div>
    
    
    
    Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
    
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
    
    provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>
        </div>
      </div>

    </section>

  </div>
  

  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script>

  
  
    
   

</body>
</html>