Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 精品一区亚洲,免费国产一级观看完整版,亚洲精品一区二区观看

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          阿里云物聯網新手指南:利用ESP8266遠程啟動電腦

          有位讀者朋友提出了一個很實際的問題:

          “能用esp8266弄一個遠程開電腦的教程嗎?需要設置路由器嗎?公司路由器設置不了。”

          當然可以!而且很簡單~

          本地連接沒有ipv4_本地連接沒有ip配置_ipconfig沒有本地連接

          ESP8266是一個非常適合用于物聯網和家庭智能項目的帶wifi模塊的單片機。它的售價非常低廉,只需大約10塊

          這個問題可以拆解成兩部分:

          問題一:訪問內網設備

          如果寬帶有公網ip,并且有配置路由器的權限的話,可以直接在路由器上設置端口轉發等,可以很方便的訪問內網設備。如果無法設置路由器,例如上面的這位朋友的情況,則需要做內網穿透或者類似的操作,可以通過第三方平臺或者自有的云服務器等來控制內網設備。

          問題二:控制電腦開機

          可以使用WOL(Wake on Lan)網絡喚醒功能。

          首先需要進入電腦主板的BIOS設置,開啟WOL功能,根據主板的不同,這個功能還有可能叫PCIE設備喚醒(因為網卡也是經PCIE通道傳輸數據的,也算是PCIE設備)等。開啟了該功能后,即使電腦處于關機狀態,主板也會帶有微弱電流,網卡會低功耗運行,檢測本地網絡中是否有相關開機信號。利用內網設備發出一個稱之為魔法包(Magic Packet)的信號,該魔法包內含有目標設備的網卡MAC地址,可以唯一定位到目標設備。目標設備接受到信號后就會開機啟動。

          本地連接沒有ip配置_本地連接沒有ipv4_ipconfig沒有本地連接

          這里我們就利用阿里云物聯網平臺來控制內網設備,再利用ESP8266 NodeMCU這個性價比極高的單片機發出WOL網絡喚醒的魔法包來啟動目標電腦~

          ESP8266的介紹和入門指南可以參見我上次寫的這篇文章:十塊錢入門物聯網!ESP8266新手指南

          下面我們就看看具體怎么設置吧~

          一、配置阿里云物聯網平臺

          首先進入阿里云物聯網平臺的控制臺首頁,沒有賬號的朋友需要先注冊賬號。

          點擊設備-產品-創建產品。

          本地連接沒有ipv4_ipconfig沒有本地連接_本地連接沒有ip配置

          給新建的產品起一個名字,然后選擇自定義品類,并設置為直連設備,其他設置如圖:

          本地連接沒有ipv4_本地連接沒有ip配置_ipconfig沒有本地連接

          然后點擊進入剛才新建成功的產品內,點擊產品-Topic類列表-自定義Topic-定義Top類,來新建一個Topic類。

          ipconfig沒有本地連接_本地連接沒有ipv4_本地連接沒有ip配置

          在新建Topic類的對話框中,設備權限選擇“訂閱”,名字輸入“”。選訂閱權限是因為我們的設備只需要接受消息就可以了,不需要發送消息。后面我們需要用到這個topic來給我們的esp8266發送消息來控制電腦開機~

          本地連接沒有ip配置_ipconfig沒有本地連接_本地連接沒有ipv4

          有了產品之后,我們還需要給產品添加設備:點擊設備-添加設備。

          ipconfig沒有本地連接_本地連接沒有ip配置_本地連接沒有ipv4

          在添加設備對話框,選擇剛才新建的產品,然后給設備起一個名字。

          ipconfig沒有本地連接_本地連接沒有ip配置_本地連接沒有ipv4

          新建完設備之后,點擊剛才新建出的設備的查看按鈕來進入設備詳情頁。

          本地連接沒有ip配置_本地連接沒有ipv4_ipconfig沒有本地連接

          進入設備詳情頁后,點擊的查看按鈕,會得到3個碼,把他們復制出來并保存好,后面我們會用到這三個碼來把esp8266連接到阿里云物聯網平臺。

          本地連接沒有ip配置_本地連接沒有ipv4_ipconfig沒有本地連接

          二、打開電腦主板的WOL網絡喚醒功能

          對于需要被網絡喚醒的電腦,按開機鍵開機,然后不停地點擊進入BIOS設置的相關熱鍵。進入BIOS設置的熱鍵一般為DEL, F12等。進入相關設置頁面后,打開網絡喚醒(Wake on Lan)功能,或者叫做PCIE設備喚醒(Wake on PCIE Devices)。

          這樣即使在電腦關機之后,只要電源線和網線沒有拔掉,電腦接受到其他內網設備(例如ESP8266)發出的的WOL信號,就會開機了!

          另外,為了定位需要被喚醒的電腦,我們需要獲取目標電腦的網卡MAC地址,以windows系統為例:

          按win鍵+R,輸入cmd,回車

          ipconfig沒有本地連接_本地連接沒有ip配置_本地連接沒有ipv4

          然后,輸入 /all,回車,圈出的就是該機器的網卡MAC地址

          本地連接沒有ipv4_ipconfig沒有本地連接_本地連接沒有ip配置

          三、 使用Arduino IDE上傳代碼到ESP8266

          首先參照我上次寫的ESP8266新手指南,設置好基本開發環境,這里不再贅述:

          十塊錢入門物聯網!ESP8266新手指南

          用Arduino IDE點擊.ino文件打開相關代碼(具體代碼包和用到的庫和工具我會打包附于文后):

          /**
           * Wake on Lan using Aliyun IOT & ESP8266.
           * 通過ESP8266 NodeMCU和阿里云IOT平臺實現對內網主機的網絡喚醒(WOL)
           * 
           * 零度橙子OrangeZero Copyright @ 2020
           */
          #include 
          #include 
          #include   // !!! set MQTT_MAX_PACKET_SIZE=256; MQTT_KEEPALIVE=60 in PubSubClient.h due to restriction in Aliyun IOT mqtt
          #include 
          #include "aliyun_mqtt.h" // https://github.com/legenddcr/aliyun-mqtt-arduino
          #define WIFI_SSID        "ssid"http:// >>> 替換為自己的wifi名稱::ESP8266只支持2.4G的wifi,不支持5G頻段的wifi
          #define WIFI_PASSWD      "pwd"http:// >>> 替換為自己的wifi密碼
          #define PRODUCT_KEY      "a1G8xxxxxx" // >>> 替換為自己阿里云iot的PRODUCT_KEY
          #define DEVICE_NAME      "dev1" // >>> 替換為自己的阿里云的DEVICE_NAME
          

          ipconfig沒有本地連接_本地連接沒有ipv4_本地連接沒有ip配置

          #define DEVICE_SECRET "xxxxxxxxxxxxxxxxxxxxxxxx"http:// >>> 替換為自己阿里云的DEVICE_SECRET #define DEV_VERSION "0.0.1" //固件版本信息 #define ALINK_BODY_FORMAT "{\"id\":\"123\",\"version\":\"1.0\",\"method\":\"%s\",\"params\":%s}" #define ALINK_TOPIC_PROP_POST "/sys/" PRODUCT_KEY "/" DEVICE_NAME "/thing/event/property/post" #define ALINK_TOPIC_PROP_POSTRSP "/sys/" PRODUCT_KEY "/" DEVICE_NAME "/thing/event/property/post_reply" #define ALINK_TOPIC_PROP_SET "/sys/" PRODUCT_KEY "/" DEVICE_NAME "/thing/service/property/set" #define ALINK_METHOD_PROP_POST "thing.event.property.post" #define ALINK_TOPIC_DEV_INFO "/ota/device/inform/" PRODUCT_KEY "/" DEVICE_NAME "" #define ALINK_VERSION_FROMA "{\"id\": 123,\"params\": {\"version\": \"%s\"}}" #define ALINK_TOPIC_DEVICE_BOOT PRODUCT_KEY "/" DEVICE_NAME "/user/device_boot" const char *MACAddress = "04:D9:F5:83:03:EF"; // >>> 替換成需要被喚醒的機器的MAC地址 IPAddress computer_ip(255, 255, 255, 255); unsigned long lastMs = 0; WiFiClient espClient; PubSubClient mqttClient(espClient); WiFiUDP UDP; WakeOnLan WOL(UDP); void init_wifi(const char *ssid, const char *password) { WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { Serial.println("WiFi does not connect, try again ..."); delay(500); } Serial.println("Wifi is connected."); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void mqtt_callback(char *topic, byte *payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); payload[length] = '\0'; Serial.println((char *)payload); if (strstr(topic, ALINK_TOPIC_DEVICE_BOOT)) { Serial.print("sending WOL magic packet to: "); Serial.println(MACAddress); WOL.sendMagicPacket(MACAddress); } } void mqtt_version_post() { char param[512]; sprintf(param, "{\"id\": 123,\"params\": {\"version\": \"%s\"}}", DEV_VERSION); Serial.println(param); mqttClient.publish(ALINK_TOPIC_DEV_INFO, param); } void mqtt_check_connect() {

          本地連接沒有ipv4_ipconfig沒有本地連接_本地連接沒有ip配置

          Serial.println("checking mqtt connection..."); while (!mqttClient.connected()) { while (connect_aliyun_mqtt(mqttClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET)) { Serial.println("MQTT connect succeed!"); mqttClient.subscribe(ALINK_TOPIC_PROP_SET); mqttClient.subscribe(ALINK_TOPIC_DEVICE_BOOT); Serial.println("subscribe done"); mqtt_version_post(); } } } void setup() { /* initialize serial for debugging */ Serial.begin(115200); Serial.println("Demo Start"); init_wifi(WIFI_SSID, WIFI_PASSWD); mqttClient.setCallback(mqtt_callback); } // the loop function runs over and over again forever void loop() { if (millis() - lastMs >= 20000) { lastMs = millis(); mqtt_check_connect(); } mqttClient.loop(); unsigned int WAIT_MS = 2000; delay(WAIT_MS); // ms //Serial.println(millis() / WAIT_MS); }

          注意,代碼需要替換三處地方:

          本地連接沒有ip配置_ipconfig沒有本地連接_本地連接沒有ipv4

          需要額外安裝的依賴庫有(具體用到的庫我會打包附于文后):

          大家可以通過arduino IDE的包管理器來安裝這些包,如果網絡不好下不動的話,也可以下載我打包好的zip包,再導入到arduino IDE。

          ipconfig沒有本地連接_本地連接沒有ip配置_本地連接沒有ipv4

          需要注意的是,由于阿里云物聯網平臺的MQTT協議的限制,.h文件內定義的需要設置為256,需要設置為60。不然于阿里云物聯網平臺的通訊會報錯。從arduino IDE下載庫的朋友需要修改一下這兩個值。使用我給的zip包的朋友,不需要額外修改了,因為我已經修改好了。

          本地連接沒有ipv4_本地連接沒有ip配置_ipconfig沒有本地連接

          點擊按鈕上傳代碼到ESP8266,并等待上傳完畢

          本地連接沒有ip配置_ipconfig沒有本地連接_本地連接沒有ipv4

          打開arduino IDE中的,工具-串口監視器,確認傳輸速率為115200波特。查看串口調試信息,確認程序運行正常。

          本地連接沒有ipv4_本地連接沒有ip配置_ipconfig沒有本地連接

          四、遠程啟動電腦

          接下來,我們只需到阿里云物聯網平臺,點擊之前創建的設備,然后找到自定義Topic,找到我們之前新建的Topic:,點擊發布消息。

          本地連接沒有ip配置_本地連接沒有ipv4_ipconfig沒有本地連接

          在新建的對話框中,我們就可以給我們的ESP8266發送消息了!

          本地連接沒有ip配置_本地連接沒有ipv4_ipconfig沒有本地連接

          點擊確認發送消息之后,我們可以通過串口監視器看到,WOL信號已經發出。而且內網的目標電腦也開機了!

          ipconfig沒有本地連接_本地連接沒有ip配置_本地連接沒有ipv4

          五、小結

          以后,只要ESP8266保持通電,它就會自動連接阿里云物聯網平臺。我們就可以隨時隨地通過阿里云物聯網平臺的控制臺來遠程啟動內網的電腦了!

          有興趣的同學甚至可以利用阿里云物聯網平臺制作一個好看的遠程開機界面或者是在家里遠程開啟公司電腦的實體按鍵~

          大家還有什么想要做的物聯網或者智能家居項目呢?在下面留言告訴我吧~

          我是零度橙子,科技達人,谷歌認證云計算架構師,AWS認證devops專家,歡迎大家關注我,了解有用有趣的科技知識~


          主站蜘蛛池模板: 在线视频亚洲一区| 中日av乱码一区二区三区乱码| 无码人妻精品一区二区蜜桃AV| 久久精品人妻一区二区三区 | 日韩内射美女人妻一区二区三区 | 国产精品一区二区资源| 亚洲AV无码一区二区二三区软件 | 2018高清国产一区二区三区| 国产精品成人国产乱一区| 国产精品一级香蕉一区| 爆乳熟妇一区二区三区霸乳| 免费视频精品一区二区| 无码日韩精品一区二区免费| 97久久精品一区二区三区| 成人午夜视频精品一区| 一区二区日韩国产精品| 成人精品一区久久久久| eeuss鲁片一区二区三区| 少妇精品无码一区二区三区| 中文字幕一区二区人妻性色| 亚洲综合色自拍一区| 久久久久久综合一区中文字幕| 国产精品一区在线观看你懂的| 国产成人无码精品一区在线观看 | 日韩视频在线观看一区二区| 国产精品无码一区二区三区不卡| 精品亚洲AV无码一区二区三区 | 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 国产一区二区精品久久91| 日本精品视频一区二区三区| 日韩视频一区二区| 国产一区二区三区四| 一区二区三区视频免费| 久久99精品免费一区二区| 中文字幕日韩人妻不卡一区| 国产精品无码AV一区二区三区| 国产一区视频在线| 国产电影一区二区| 日韩一区二区三区电影在线观看| 日韩精品国产一区| 国产精品男男视频一区二区三区|