久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9477|回復: 3
打印 上一主題 下一主題
收起左側(cè)

esp8266連接智能音箱(純新手教程)

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:170892 發(fā)表于 2020-2-17 18:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    首先說明一下,本教程只支持連接天貓精靈與小度音箱,如果想連接小愛同學可以看下面第三點。    再次說明本文只適合想快速搭建連接智能音箱的同學,不需要基礎(chǔ)。

    一、需要你有一塊nodemcu開發(fā)板或者ESP8266-01或12F
    二、需要你的電腦安裝java環(huán)境,Java環(huán)境需要的安裝包,文章末尾,還有java環(huán)境變量配置這個請自行度娘,教程太多了。
    三、擁有一個天貓精靈或者一個小度音箱 (說明:為什么沒有小愛同學,本文通過貝殼物聯(lián)第三方來對接音箱,但是貝殼現(xiàn)在暫時不支持小愛同學,如果大家想要連接小愛同學的話,可以通過blinker平臺,這里不多贅述)
    四、需要大家登錄 貝殼物聯(lián) 官網(wǎng)注冊賬號

    剩下的就可以安裝下方的視頻教程操作。

    視頻鏈接:https://www.bilibili.com/video/av89179475?p=1 共有3集,視頻中并沒有提及esp8266燒寫固件操作,這個很簡單的操作,大家還是度娘吧,這個要是再寫出來就得上圖了。

    上方所提到需要的軟件下載鏈接 : https://pan.baidu.com/s/1DBEwOz0FoIhns47qd9amhw   提取碼: 1uuk


     -------------------------------------------------------------------------------------------------------------------------------------------------
     到這里上面的所有操作應(yīng)該都做完了。


     這里我直接把程序?qū)懞茫厦嫖叶甲⑨屃耍恍枰膭?個位置即可。
     1、把"ST模式的WIFI名稱"以及"ST模式的WIFI密碼"分別改成路由器的wifi名和密碼,這2個就是告訴esp8266要連接哪個WIFI,WIFI必須有網(wǎng)。
     2、"設(shè)備的ID" 這個需要對應(yīng)自己貝殼物聯(lián)上設(shè)備的ID號
     3、"設(shè)備的APIKEY" 也是對應(yīng)設(shè)備的APIKEY


  1. --GPIO引腳模式設(shè)置
  2. gpio.mode(4,gpio.OUTPUT)    --GPIO2   對應(yīng)板子上的LED控制引腳

  3. --設(shè)置nodemcu為AP與ST模式共存
  4. wifi.setmode(wifi.STATIONAP)

  5. --設(shè)置WiFi物理模式
  6. --"wifi.PHYMODE_B" 對應(yīng) 802.11b,范圍更大,傳輸速率低  ,消耗更多電流
  7. --"wifi.PHYMODE_G" 對應(yīng) 802.11g,中等范圍,中等傳輸速率,中等電流消耗
  8. --"wifi.PHYMODE_N" 對應(yīng) 802.11n,最小范圍,快速傳輸速率,最小電流
  9. wifi.setphymode(wifi.PHYMODE_N)

  10. --設(shè)置AP wifi名稱及密碼
  11. cfg={}
  12. cfg.ssid = "xiaodabuliu"--AP模式的WIFI名稱(小于32字節(jié))
  13. cfg.pwd = "12345678"        --AP模式的WIFI密碼(最少8位才能設(shè)置成功)
  14. --cfg.auth = "wifi.OPEN"        --WIFI認證方式(wifi.OPEN(默認)、wifi.WPA_PSK 、 wifi.WPA2_PSK 、wifi.WPA_WPA2_PSK)
  15. --cfg.channel = 6                        --WIFI信道(1~14)        
  16. cfg.hidden = false                --WIFI是否隱藏
  17. cfg.max = 1                                --WIFI最大連接數(shù)(1~4)
  18. --cfg.beacon = 100                --WIFI廣播間隔(100~60000 默認100)
  19. cfg.save = false                --是否保存到閃存
  20. wifi.ap.config(cfg)                --設(shè)置AP模式


  21. --設(shè)置ST wifi名稱及密碼
  22. station_cfg={}
  23. station_cfg.ssid = "abcdefgh"        --ST模式的WIFI名稱(小于32字節(jié))
  24. station_cfg.pwd = "12345678"        --ST模式的WIFI密碼(最少8位才能設(shè)置成功)
  25. station_cfg.auto = true                         --啟用自動連接并連接到接入點
  26. --station_cfg.bssid = "AA:BB:CC:DD:EE:FF"        --設(shè)置BSSID
  27. station_cfg.save = false                        --是否保存到閃存
  28. wifi.sta.config(station_cfg)

  29. --在站點模式下連接到已配置的AP。僅當在中禁用了自動連接時,才需要調(diào)用此方法
  30. --wifi.sta.connect()

  31. --
  32. tcp_bit = 0                                        --連接服務(wù)器標志位
  33. beat_time = 0                                --用來計算心跳時間

  34. URL = "www<font face="&quot;">點</font>bigiot<font face="&quot;">點</font>net"                --輸入貝殼物聯(lián)網(wǎng)址
  35. port = 8181                                        --連接的端口號

  36. ID1 = "14562"                                --設(shè)備的ID
  37. KEY1 = "f126dc2f3"                        --設(shè)備的APIKEY

  38. --獲取當前的 AP配置
  39. do
  40.     print("\n當前AP配置:")
  41.     for k,v in pairs(wifi.ap.getconfig(true)) do
  42.         print("   "..k.." :",v)
  43.     end
  44. end

  45. --獲取當前的 WiFi 配置
  46. do
  47.         local sta_config=wifi.sta.getconfig(true)
  48.         print(string.format("\n當前ST配置:\n\tssid:\"%s\"\n\tpassword:\"%s\"\n\tbssid:\"%s\"\n\tbssid_set:%s\n", sta_config.ssid,         sta_config.pwd, sta_config.bssid, (sta_config.bssid_set and "true" or "false")))
  49. end


  50. --創(chuàng)建一個TCP客戶端
  51. cu = net.createConnection(net.TCP,0)

  52. cu:on("receive",function(cu,pay)        --客戶端接收回調(diào)
  53.    
  54.      print(pay)         --打印接收消息
  55.    
  56.      r = sjson.decode(pay)        --接收數(shù)據(jù)處理

  57.     if r.M == "WELCOME TO BIGIOT" then        --服務(wù)器連接成功判斷

  58.       --發(fā)送設(shè)備登錄消息
  59.         ok, s1 = pcall(sjson.encode,{M="checkin",ID=ID1,K=KEY1})
  60.         cu:send(s1.."\n")

  61.         print("Server connection success\n")
  62.     end

  63.     if r.M == "checkinok" then                --設(shè)備登錄成功判斷
  64.         tcp_bit = 1
  65.         print("已上線\n")
  66.     end

  67.     if r.C == "play" then            --接收到打開命令判斷處理
  68.        gpio.write(4,gpio.LOW)        --打開LED
  69.     end
  70.    
  71.     if r.C == "stop" then           --接收到關(guān)閉命令判斷處理
  72.         gpio.write(4,gpio.HIGH)        --關(guān)閉LED
  73.     end
  74.    
  75. end)

  76. --定義定時器myt0  間隔0.5s
  77. local myt0 = tmr.create()               
  78. myt0:alarm(5000, tmr.ALARM_AUTO, function()    -- 發(fā)送

  79.     if tcp_bit == 0 then
  80.        cu:connect(port,URL)    --連接貝殼服務(wù)器
  81.     else
  82.        beat_time = beat_time + 1
  83.     end

  84.     --發(fā)送心跳包
  85.     if beat_time >=10 then
  86.         ok, s1 = pcall(sjson.encode,{M="beat"})
  87.         cu:send(s1.."\n")
  88.         beat_time = 0
  89.     end
  90.    
  91. end)

  92. myt0:stop()        --停止定時器 myt0

  93. --定義定時器myt1  間隔1s
  94. local myt1 = tmr.create()               
  95. myt1:alarm(1000, tmr.ALARM_AUTO,function()

  96.         --獲取連接WIFI分配的IP地址
  97.     if wifi.sta.getip() == nil then
  98.        print("not connected, Waiting...")
  99.     else
  100.        myt1:stop()                        --停止定時器 myt1

  101.         print("分配的IP:"..wifi.sta.getip())
  102.         myt0:start()                --定時器 myt0 開始計時
  103.         myt1:unregister()   --銷毀定時器 myt1
  104.     end
  105. end)
復制代碼


我上面的代碼是加注釋的,但是附件包里面是沒有注釋的,因為向8266下載的lua程序如果帶中文就會出現(xiàn)錯誤,所以附件里面的是我把注釋都刪掉的,可以按照上面所說修改完直接下載使用。
下載的時候,大家可以把下載的lua文件重命名為init.lua這樣每次上電都會執(zhí)行程序,如果不是這個名字下載進去,那么下次上電程序不會自動運行,當然也有其他方法,但是不如直接用init.lua方便。


大家遇到什么操作有誤或者程序不能運行,在下面留言哦。

init.zip (1.1 KB, 下載次數(shù): 32)




2020-02-21 更新
     大家可以利用一個nodemcu同時登錄貝殼物聯(lián)的多個設(shè)備,實現(xiàn)多個控制,多個的登錄代碼我會下次更新分享。
     還有現(xiàn)在用的是基于Lua和nodemcu開發(fā)的,因為我這用Docker或者Linux編譯估計一直失敗,不知道是不是網(wǎng)絡(luò)原因,所以就沒有Smartconfig(WIFI一鍵配置)功能,如果大神有這個功能的最新固件,求大神分享一份。

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏7 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:686739 發(fā)表于 2020-2-17 23:00 | 只看該作者
學習一下
回復

使用道具 舉報

板凳
ID:684338 發(fā)表于 2020-2-18 12:35 | 只看該作者
謝謝!下載試試
回復

使用道具 舉報

地板
ID:694712 發(fā)表于 2020-2-18 15:11 | 只看該作者
謝謝分享。。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 蜜桃传媒av| 免费高潮视频95在线观看网站 | 日韩区| 亚洲国产精品网站 | 天天干狠狠操 | 岛国av免费在线观看 | 欧美精品久久久久 | 亚洲一区在线日韩在线深爱 | 欧美国产精品久久久 | 亚洲国产精品第一区二区 | 一区二区三区中文字幕 | 正在播放国产精品 | 91久久精品国产 | 久久国品片 | 99久久免费精品国产男女高不卡 | 国产一区二区三区视频免费观看 | 国产精品视频在线观看 | 九九久久精品 | 能看的av| 久久网国产 | 亚洲福利一区 | 亚洲精品一区二区三区免 | 黄色精品 | 欧美精品久久久 | 日韩欧美视频在线 | 国产视频精品在线 | 国产一区二区三区视频 | 日韩a| 国产视频1 | 久久精品日产第一区二区三区 | 激情欧美一区二区三区中文字幕 | 国产一区二区三区久久久久久久久 | 亚洲欧美日韩电影 | 精品国产欧美一区二区三区成人 | 亚洲精品视频在线看 | 在线视频中文字幕 | 日本精品一区二区三区在线观看视频 | 91xxx在线观看 | 91美女在线观看 | 日韩欧美国产一区二区三区 | 91九色视频 |