20151225_jeffrey - silenceuncrio/diary GitHub Wiki

Index

  • 0925 - Jeffrey 2015-1125 禮拜五 未帶員工識別證
  • 0930 - IoT Platform - 與 JS9331 的 FastCGI 互動的環境構建 - 思考
  • 0950 - IoT Platform - 公司電腦 - HTTP Server 的可能方案
  • 1025 - IoT Platform - 公司電腦 - 安裝 node.js - windows(x64) v5.3.0 Stable
  • 1030 - IoT Platform - 公司電腦 - node.js 怎麼用呢?
  • 1045 - IoT Platform - 公司電腦 - 簡單寫了一隻 hello.js
  • 1120 - IoT Platform - 與 JS9331 的 FastCGI 互動的環境構建 - 結論
  • 1310 - MonkeyJJ - 繼電器 - 研究
  • 1415 - MonkeyJJ - 繼電器 - 電路圖
  • 1435 - MonkeyJJ - 繼電器 - NodeMCU 5V output?
  • 1520 - MonkeyJJ - 繼電器 - 拿 NodeMCU 造樣造句... 失敗
  • 1730 - MonkeyJJ - 繼電器 - ESP8266WIFI模块自制智能插座

0925

今天換了外套就忘了皮包了
發 mail 告知人事單位 先

0930

control center 既然已經決定用 FastCGI(nginx) 了
應該實際搭個方便 CGI 互動的環境

觀察 JS9331 的 interface 先

root@JoySince:/www/cgi-bin# ifconfig
br-lan    Link encap:Ethernet  HWaddr CE:42:23:F7:8B:55
          inet addr:192.168.1.251  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fd88:8d15:743f::1/60 Scope:Global
          inet6 addr: fe80::cc42:23ff:fef7:8b55/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14400902 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8172028 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:20713993665 (19.2 GiB)  TX bytes:572156691 (545.6 MiB)

eth0      Link encap:Ethernet  HWaddr DA:58:44:7B:20:CA
          inet6 addr: fe80::d858:44ff:fe7b:20ca/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:17604630 errors:0 dropped:234953 overruns:152 frame:0
          TX packets:13767091 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1321982145 (1.2 GiB)  TX bytes:3645333918 (3.3 GiB)
          Interrupt:4

eth1      Link encap:Ethernet  HWaddr CE:42:23:F7:8B:55
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12701539 errors:0 dropped:190 overruns:5 frame:0
          TX packets:8219968 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:351766288 (335.4 MiB)  TX bytes:3030777437 (2.8 GiB)
          Interrupt:5

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2713215 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2713215 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:329840637 (314.5 MiB)  TX bytes:329840637 (314.5 MiB)

wlan0     Link encap:Ethernet  HWaddr 00:CA:01:0F:00:01
          inet6 addr: fe80::2ca:1ff:fe0f:1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4358174 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2453405 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1773447333 (1.6 GiB)  TX bytes:262536576 (250.3 MiB)

ifconfig 列出下列的 interface

  • br-lan - Link encap:Ethernet HWaddr CE:42:23:F7:8B:55
  • eth0 - Link encap:Ethernet HWaddr DA:58:44:7B:20:CA
  • eth1 - Link encap:Ethernet HWaddr CE:42:23:F7:8B:55
  • lo - Link encap:Local Loopback
  • wlan0 - Link encap:Ethernet HWaddr 00:CA:01:0F:00:01

其中 br-lan 是個 bridge 介面 包含

  • eth1 - Link encap:Ethernet HWaddr CE:42:23:F7:8B:55
  • wlan0 - Link encap:Ethernet HWaddr 00:CA:01:0F:00:01
root@JoySince:/www/cgi-bin# brctl show
bridge name     bridge id               STP enabled     interfaces
br-lan          7fff.ce4223f78b55       no              eth1
                                                        wlan0

LAN 口 應該就是 eth1

img

那公司電腦呢?

C:\Users\JEFFREY>ipconfig

Windows IP 設定


乙太網路卡 公司:

   連線特定 DNS 尾碼 . . . . . . . . :
   連結-本機 IPv6 位址 . . . . . . . : fe80::4566:ef99:cbe4:aa2d%6
   IPv4 位址 . . . . . . . . . . . . : 192.168.0.113
   子網路遮罩 . . . . . . . . . . . .: 255.255.255.0
   預設閘道 . . . . . . . . . . . . .: 192.168.0.250

乙太網路卡 測試:

   連線特定 DNS 尾碼 . . . . . . . . : lan
   IPv6 位址. . . . . . . . . . . . .: fd88:8d15:743f::272
   IPv6 位址. . . . . . . . . . . . .: fd88:8d15:743f:0:21ef:473c:f70d:e0c7
   臨時 IPv6 位址. . . . . . . . . . : fd88:8d15:743f:0:644c:f79d:209a:43df
   連結-本機 IPv6 位址 . . . . . . . : fe80::21ef:473c:f70d:e0c7%5
   IPv4 位址 . . . . . . . . . . . . : 192.168.1.48
   子網路遮罩 . . . . . . . . . . . .: 255.255.255.0
   IPv4 位址 . . . . . . . . . . . . : 192.168.2.48
   子網路遮罩 . . . . . . . . . . . .: 255.255.255.0
   IPv4 位址 . . . . . . . . . . . . : 192.168.10.48
   子網路遮罩 . . . . . . . . . . . .: 255.255.255.0
   預設閘道 . . . . . . . . . . . . .: 192.168.1.1

恩 就是 乙太網路卡 測試

乙太網路卡 測試:

   IPv4 位址 . . . . . . . . . . . . : 192.168.1.48
   子網路遮罩 . . . . . . . . . . . .: 255.255.255.0

總結如下

  • JS9331
    • br-lan - Link encap:Ethernet HWaddr CE:42:23:F7:8B:55
    • inet addr:192.168.1.251 Bcast:192.168.1.255 Mask:255.255.255.0
  • 公司電腦
    • 乙太網路卡 測試:
    • IPv4 位址 . . . . . . . . . . . . : 192.168.1.48

透過 ethernet 相互連接的介面如下

  • JS9331 - br-lan - 192.168.1.251
  • 公司電腦 - 乙太網路卡 測試 - 192.168.1.48

0950

改從 RESTful HTTP 的角度來看這相互連接的介面

  • JS9331 - br-lan - 192.168.1.251
  • 公司電腦 - 乙太網路卡 測試 - 192.168.1.48

不管 JS9331 或 公司電腦 都要同時扮演 HTTP Server 和 HTTP Client 的角色

盤一下所需的架構

  • JS9331
    • HTTP Server - nginx with FastCGI
    • HTTP Client - curl
  • 公司電腦
    • HTTP Server - ???
    • HTTP Client - postman

恩 思考一下 公司電腦 - HTTP Server 的可能方案

1025

node.js - windows(x64) v5.3.0 Stable

image

好久不見的 node.js

裝吧

img

希望 npm package manager 在 window 上夠好用

1030

node.js 執行起來的畫面

image

node.js command prompt 執行起來的畫面

image

恩 怎麼用呢?

1045

參考 在 Windows 安裝 Node.js

幫自己開了一個放 node.js code 的資料夾 - 'C:\Users\JEFFREY\Desktop\nodejs'

簡單寫了一隻 hello.js

var http = require("http");

http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
}).listen(8888);
console.log("Node.js running...")

node.js command prompt 敲上曾經熟悉的 command node hello.js

C:\Users\JEFFREY\Desktop\nodejs>node hello.js
Node.js running...

感動中... 久違了... Node.js

image

1120

下個結論

  • JS9331
    • HTTP Server - nginx with FastCGI
    • HTTP Client - curl
  • 公司電腦
    • HTTP Server - Node.js
    • HTTP Client - Postman

1310

MonkeyJJ - 繼電器 - 研究

之前在露天買的 歐姆龍 5V 繼電器 1路繼電器模塊 Arduino 低電平

還不知道怎麼用呢

  • 1路歐姆龍繼電器模塊L
    image
  • 單路OMRON繼電器模塊功能簡介
    image

有看沒有懂...

1415

  • 電路圖
    image

搭配這張電路圖後事情突然就變簡單了
Arduino 只要控制 PIN 7 即可控制 AC Light

1435

那 NodeMCU 怎麼辦?
他有 5V output 嗎?

左下的 Vin PIN 就是啦!

image

太帥啦

1520

拿 NodeMCU 造樣造句

init.lua

pin = 1
gpio.mode(pin, gpio.OUTPUT)
gpio.write(pin, gpio.HIGH)
print(gpio.read(pin))

奇怪的是繼電器一直發出聲音...
約每秒一次吧
用電表量 PIN D1 的輸出就穩定在 3.3V ㄚ...

難道是繼電器的信號輸入也有一定的電壓規定

歐姆龍 5V 繼電器 ?

5V ?

靠! 搭配 NodeMCU 的繼電器應該買 3V 才對

還有分啥 高電平觸發? 低電平觸發?

從 淘寶網 挖一下資訊

  • 高电平触发 - 指的是信号输入端与地之间有电压的触发方式,可以理解为信号输入端与VCC正极短路触发的一种方式
  • 低电平触发 - 指的是信号输入端与地之间的电压为OV的触发方式,可以理解为信号输入端与GND负极短路触发的一种方式

有買家買了 1路繼電器模塊 5V低電平觸發 後說

實測3.3v不可靠 還是老老實實5v吧

shit! 我昨晚拜託寶被老婆下單買了 10 個...

就當繳學費... 不過 DC3V 繼電器就不買模塊了

1730

哈哈... 有人跑前面...

我就來看看他是如何用 ESP8266 的 3.3V 去控制繼電器

感覺很麻煩... 我還是買 3V 繼電器來的乾脆

變壓器模塊也不能省

長知識啦