作者:趙英傑
出版社:旗標科技股份有限公司
出版日期:2018.5.1
頁數:640頁,雙色印刷(4頁全彩)。
定價:NT$699
- 用最夯的Python語言學習程式設計
- 用最超值的ESP8266控制板學物聯網
- 用最易懂的超圖解學電子電路
- 人人都能化身創客自造各種智慧應用
這是一本結合Python語言、電子電路、微電腦控制和物聯網的圖解入門書。
本書的電子零件清單與配套的材料包,請參閱這一篇貼文。
Python無疑是近年最受注目的通用型程式語言,它的語法簡單易學,不僅智慧型手機、個人電腦到網路雲端應用平台都支援Python程式,應用領域更遍及系統工具、網路程式、數值分析到人工智慧,而開放原始碼的MicroPython專案,則可在拇指大小的微電腦控制器上執行Python程式,讓你直接用Python控制硬體或開發物聯網專案,就連歐洲太空總署也將MicroPython應用在控制太空載具(詳見MicroPyhon官網論壇的“MicroPython and the European Space Agency”貼文)。
MicroPython支援多種32位元控制板,本書採用的是內建Wi-Fi無線網路、價格低廉的ESP8266系列控制板。
打好基礎,超圖解電子電路觀念
本書的目標是讓沒有電子電路基礎,對微電腦、電子DIY 及物聯網有興趣的人士,也能輕鬆閱讀、認識Python語言,進而順利使用Python與ESP8266控制板完成互動應用。因此,實驗用到的電子、電路組裝和Python程式觀念,皆以手繪圖解的方式說明。例如,底下是二級體元件的概念圖解:
為了方便讀者進行實驗,書本裡的電路都採用現成的模組,並搭配圖解說明,讓讀者不單只會照著接線,也能理解電子模組背後的原理,進而能靈活改造應用並實踐自己的想法。
WEMOS D1 mini (ESP8266) 控制板
ESP8266系列控制板種類很多,本書選用的是WEMOS D1 mini板:
採用D1 mini板的主要原因:
- 尺寸小、可插入麵包板。
- 有5V輸出和輸入,方便驅動各種週邊和感測器。
- 有多種現成的「擴展板」模組可用,而且擴展板的接腳採用標準2.54mm孔距的排母或排針,不像某些廠商採用特殊規格的插座。
擴展板雖然方便,但也有些缺點,像是配線彈性不足,有些擴展板佔用相同的微控器接腳,無法一同使用,有些則受限於擴展板的尺寸,像OLED顯示器和NeoPixel全彩LED,就採用解析度較低或者數量較少的元件,所以本書未全盤採用這些擴展板。
超圖解Python程式設計入門
為了清楚說明程式語法和執行結果,書本裡面的命令提示字元(終端機)視窗,也全都用手繪方式呈現:
底下是用Python語言建立網路用戶端和伺服器程式的流程和相關指令對照說明:
底下是在OLED螢幕呈現自訂符號的步驟和相關指令對照說明:
本書也有說明實用的物件導向程式設計(OOP)手法,自行編寫伺服馬達(Servo)、超音波距離感測器、直流馬達控制板…等程式庫。
這是用自製的超音波距離感測器程式庫,達成測量物體距離的Python程式解說:
書中也以範例實作說明物件導向程式設計中的「繼承」概念(註:實作內容與伺服馬達有關,不是拼裝獵雷鑑)。
最後的「附錄B」則說明如何運用Windows 10的WSL(適用於Linux的Windows子系統),安裝Debian Linux並且配置交叉編譯器(cross-compiler),讓讀者了解如何自行編譯客製化的MicroPython韌體。
《超圖解Python物聯網實作入門:使用ESP8266, MicroPython》目錄
第1章 認識MicroPython與ESP8266控制板
- 認識MicroPython、pyboard和ESP8266控制板
- 認識程式語言
- 在個人電腦上安裝Python 3.x版本
- WEMOS D1 mini和NodeMCU控制板簡介
- 下載與燒錄MicroPython韌體
- 透過終端機操控MicroPython控制板
- MicroPython和Arduino的程式開發流程比較
- 動手做 1-1 用Python控制LED閃爍
第2章 認識電子零件與工具
- 電壓、電流與接地
- 電阻
- 電容
- 二極體
- 發光二極體(LED)
- 看懂電路圖
- 微控制板和實驗電路的電源供應器
- 電子工作必備的量測工具:萬用電錶
- 動手做2-1 測量電阻或電容
- 麵包板以及其他電子工具
第3章 MicroPython基本操作
- MicroPython程式設計基礎
- 使用迴圈執行重複性質的工作
- 動手做 3-1 使用 while 執行已知次數或無限重複的工作
- MicroPython的互動解譯器模式(REPL)操作說明
- 上傳程式檔到ESP8266控制板
- 負載的接法:源流與潛流
- 動手做3-2 自行連接LED
- 用歐姆定律計算出限流電阻值
第4章 開關電路
- 認識開關
- 開關電路與上/下拉電阻
- 動手做4-1 用麵包板組裝開關電路
- 改變程式流程的if條件式
- 動手做4-2 LED切換開關
- 動手做4-3 用RC電路消除開關彈跳訊號
- 電容式觸控開關
- 動手做4-4 使用觸控開關模組製作LED開關
第5章 Python程式設計基礎
- 變數與資料類型
- 建立自訂函式
- 自訂程式庫與常數定義
- 處理文字訊息:認識字元與字串資料類型
- 列表(List)類型
- 元組(Tuple)與其他循序型資料操作指令
- 字典(Dictionary)類型
- 認識數字系統
第6章 Wi-Fi 無線網路
- 認識無線區域網路與Wi-Fi
- 從網頁瀏覽器操作MicroPython控制板
- 設定ESP8266以 STA(基站)模式連接無線網路
- 修改boot.py檔、開機自動連線
- 其他網路相關指令
- bytes(位元組)類型與字元編碼
第7章 序列埠通信
- 並列與序列通訊簡介
- DHT11數位溫濕度感測器
- 動手做7-1 製作數位溫濕度計
- 認識UART序列埠
- 建立UART序列通訊程式物件
- 動手做7-2 連接GPS模組
- 認識NMEA標準格式與獲取GPS的經緯度值
第8章 數位調節電壓強弱與全彩LED控制
- 使用Timer(計時器)定時執行程式
- 動手做8-1 使用定時器閃爍LED
- 使用try…except捕捉例外狀況
- 用匿名函式(lambda)改寫閃爍 LED 程式
- 數位調節電壓變化
- 動手做8-2 呼吸燈效果
- 控制全彩 LED
- 動手做8-3 控制RGB全彩LED
- 旋轉編碼器
- 動手做8-4 連接旋轉編碼器與ESP8266控制板
- 動手做8-5 使用旋轉編碼器調整LED色彩
- WS2812彩色LED模組與燈條
- 動手做8-6 調控WS2812的色彩
- 動手做8-7 跑馬燈效果
第9章 電晶體與蜂鳴器和直流馬達控制
- 認識電晶體元件
- 發音體和聲音
- 動手做9-1 發出警報聲響
- 動手做9-2 電流急急棒
- 彈奏音樂
- 動手做9-3 演奏一段瑪莉歐旋律
- 認識直流馬達
- 動手做9-4 電晶體馬達控制與調速器
第10章 控制伺服馬達
- 認識伺服馬達
- 動手做10-1 伺服馬達的控制程式
- 自訂類別:遠離義大利麵條
- 動手做10-2 編寫控制伺服馬達的自訂類別
- 動手做10-3 吃錢幣存錢筒
- 繼承:建立子類別
- 動手做10-4 隨機轉動標靶
第11章 類比信號處理
- 讀取類比值
- 動手做11-1 讀取類比值並調控LED亮度
- 認識光敏電阻與分壓電路
- 動手做11-2 使用光敏電阻製作小夜燈
- 壓力感測器與彎曲感測器
- 熱敏電阻
- 動手做11-3 使用熱敏電阻測量溫度
- 動手做11-4 雷射槍玩具標靶
- 電容式麥克風元件與聲音放大模組
- 動手做11-5 拍手控制開關
- 動手做11-6 拍手控制開關改良版
第12章 I2C介面:連接週邊與擴充ESP8266的類比輸入埠
- 認識I2C介面
- 類比轉數位(ADC)的專用IC介紹
- 動手做12-1 連接PCF8591類比轉數位模組和I2C介面
- 動手做12-2 自製二軸雲台(機械手臂)
- 使用OLED顯示器顯示文字訊息
- 動手做12-3 使用ssd1306程式庫操控OLED模組
- 自訂顯示圖像
- 動手做12-4 在OLED上顯示自訂符號
- 使用LCD Assistant軟體轉換圖像
- 動手做12-5 在OLED顯示動態溫濕度值
第13章 超音波距離感測器與I2C直流馬達驅動控制板實驗
- 認識超音波
- 動手做13-1 使用超音波感測器製作數位量尺
- 建立超音波自訂類別與發出自訂例外錯誤
- 動手做13-2 超音波距離控制燈光亮度
- 控制馬達正反轉的H橋式馬達控制電路
- WEMOS馬達擴展板
- 動手做13-3 自動迴避障礙物的自走車
- 用MicroPython改寫WEMOS原廠的Arduino馬達驅動程式庫
- 位移和邏輯運算子
第14章 製作GPS軌跡記錄器
- 讀取與設定本機時間
- 動手做14-1 在OLED螢幕顯示GPS定位的台北時間
- 使用os程式庫操作檔案
- 建立與寫入檔案
- 輪詢VS中斷
- 動手做14-2 使用中斷要求開、關LED
- 動手做14-3 建立儲存GPS紀錄的CSV格式檔案
- 在谷歌地圖呈現GPS移動軌跡
第15章 SPI介面控制:LED矩陣和MicroSD記憶卡
- LED矩陣元件
- 認識SPI介面與MAX7219 IC
- 動手做15-1 組裝LED矩陣電路
- 顯示單一矩陣圖像
- 動手做15-2 在 LED 矩陣上顯示音符圖像
- 動手做15-3 在終端機顯示矩形排列的星號
- 動手做15-4 LED矩陣動畫與多維序列資料程式設計
- 動手做15-5 連接MicroSD/SD記憶卡
第16章 網路程式基礎入門
- 認識網路與IP位址
- 網域名稱、URL網址和傳輸協定
- 網路的連線標準與封包
- 使用Socket建立網路通訊程式
- 動手做16-1 使用Socket建立一對一通訊程式
- 認識網頁與HTML
- 認識HTTP通訊協定
- 動手做16-2 連結網站的用戶端程式
- 認識HTTPS加密連線
第17章 物聯網應用初步
- 建立網站
- 動手做17-1 建立網站伺服器
- 動手做17-2 動態顯示溫濕度資料
- 動手做17-3 讀取並顯示HTML網頁和圖像
- 認識 ThingSpeak物聯網雲端平台
- 透過查詢字串傳遞資料
- 動手做17-4 用urequest程式庫上傳資料到ThingSpeak平台
- 使用POST方法傳遞資料
- 解析查詢字串
- 動手做17-5 搭配互動網頁介面的燈光調控器
- 控制家電開關
- 動手做17-6 使用繼電器控制家電開關
第18章 物聯網應用
- 網路應用程式訊息交換格式:XML與JSON
- 動手做 18-1 讀取JSON格式的世界各地天氣資料
- 動手做 18-2 在OLED螢幕顯示氣象資訊
- 認識MQTT
- 動手做18-3 使用ESP8266發布資料到ThingSpeak MQTT伺服器
- 動手做18-4 訂閱ThingSpeak MQTT訊息
- ESP8266微控器的即時鐘(RTC)
- 動手做18-5 透過網際網路更新時間
- 超低功耗的深度睡眠模式
- 動手做18-6 進入深度睡眠與喚醒微控器
- 動手做18-7 自動睡眠、喚醒並上傳資料到ThingSpeak平台
附錄A uPyCraft與Tera Term使用說明
- uPyCraft整合開發工具使用說明
- 使用Tera Term終端機軟體
附錄B 編譯客製化的MicroPython韌體
- 在Windows 10系統中安裝與執行Linux工具軟體
- 交叉編譯MicroPython韌體
- 從Linux環境複製檔案到Windows環境
- 建立客製化的MicroPython韌體
內容勘誤
第3章 MicroPython基本操作
3-20頁,上方程式編輯器裡的while i in range(3):敘述,正確是for i in range(3):
第4章 開關電路
4-14頁,底下程式第一行的time=5,正確是time=15。
第5章 Python程式設計基礎
5-19頁,中間程式第一行id=12,正確是num=12。
第7章 序列埠通信
7-18頁,下方團片中的GPIO11,正確是GPIO1。
7-28頁,最後一段的第13章,正確是第14章。
7-48頁以及14-5頁,GPS日期格式的圖說中,日、月數字顛倒。
第8章 數位調節電壓強弱與全彩LED控制
8-4頁,底下的ujon程式碼,D1 = ”’,正確是 data = ”’
8-28頁,實驗程式第一行,from machine import Pin,正確是from machine import Pin, PWM
第9章 電晶體與蜂鳴器和直流馬達控制
9-22頁,TIP120馬達驅動電路,TIP120的E(射極)要接地,馬達一端要接正電源。
9-23頁,中間內文(參閱第12章介紹),正確是第13章。
第10章 控制伺服馬達
10-2頁,第二段文字中的參閱第10章,正確是第8章。
第11章 類比信號處理
11-29頁,「增加拍手次數」註解底下的 print(‘claps: ‘ + claps),正確是print(‘claps: ‘ + str(claps))。
第12章 I2C介面:連接週邊與擴充ESP8266的類比輸入埠
12-25頁,最下方程式碼當中的 oled.framebuf.blit,正確是oled.blit。
12-30頁,程式碼當中的 self.oled.framebuf.blit,正確是self.oled.blit。
第16章 網路程式基礎入門
16-32頁,程式碼當中的 wlan = network.WLAN(network.waln),正確是wlan = network.WLAN(network.STA_IF)。
第17章 物聯網應用初步
17-7頁,程式碼當中的 client.send(httpHeader.format(temp, humid)),正確是client.send(httpHeader.format(temp=temp, humid=humid))。
第18章 物聯網應用
18-10頁,「實驗說明」中的動手做11-3,正確是12-3。
18-11頁,內文中間的第11章,正確是第12章。
18-14頁,程式碼第2行的 oled.framebuf.blit(fb, 0, 15),正確是oled.blit(fb, 0, 15)。
恭喜Cubie又出新書了~~~ 5/1我就要衝去書店買了~~~
這樣超圖解三本我就都入手了~~~
非常感謝Kevin的支持~
thanks,
jeffrey
還沒看到哪裡有賣耶
拍謝~4/30已印刷完畢,
預計兩、三天才會陸續上架。編輯說:經驗顯示, 因為各通路有他們自己的物流體系, 所以入庫後要 1~2 個星期, 店頭才會真的看到上架。
thanks,
jeffrey
我剛剛在博客來有看到這本書, 但出版日期它上面好像是標2018/05/10哦~~~
http://www.books.com.tw/products/0010786530
感謝告知!我昨天已經收到書了。
另外補充說明,當初規劃這本書的時候,定位和《超圖解Arduino互動設計入門》相同,都是針對電子電路和微電腦控制應用感興趣的讀者,但是程式語言採用Python/MicroPython、控制板使用ESP8266系列的WEMOS D1 mini板,所以和《超圖解Arduino互動設計入門》是兩個不同的目標族群。
如上文的「目錄」所示,為了讓內文完整連貫,《超圖解Python物聯網實作入門》書本也包含了基礎電子電路、電晶體、MOSFET和運算放大器等內容,而這些內容與《超圖解Arduino互動設計入門》雷同。
thanks,
jeffrey
你好。请问有大陆读者的购买途径?
我之前在北京的旅店连不上台湾的电商和书店,按照往例,香港的书店应该会贩售此书,只是不知道能不能从内地连上。
thanks,
jeffrey
老師您好
1. 在超圖解 Python物聯網實作入門書中的第7-18頁的圖中,GPIO11應該改成GPIO1
2. 在超圖解 Python物聯網實作入門書中的第9-23頁的參閱第12章介紹應改成參閱第13章
3. 在超圖解 Python物聯網實作入門書中的第11-9頁的圖中,A0應該標示在右邊的輸入
4. 請問在超圖解 Python物聯網實作入門書中的第17-30頁的自訂函式handleRequest,只有寫出if httpMethod = = GET的方法,請問if httpMethod = = POST程式該如何寫呢? 因為之前看過超圖解物聯網Node.js實作入門書中的第13-9頁也是使用POST方法傳參數給esp8266
非常感謝Alex的糾錯!!
第3點沒有錯哦~A0腳確實有經過電阻分壓。
我在實驗時沒有用到接收POST資料,所以當初也沒想到撰寫相關程式。
不過,以解析17-27頁的POST資料為例,可以看出資料和HTTP欄位之間有一個空行分界,
且資料的長度紀錄在Content-Length欄位,
所以取出POST資料的大致流程如下:
1. 使用迴圈執行readline(),讀入每一行。
2. 在”Content-Length: “那一行,從冒號之後的字元,讀到最後,取出資料長度值。
3. 若讀到空行,代表下一行是資料,執行read(資料長度值)讀入整個資料。
thanks,
jeffrey
老師您好
1. 在超圖解 Python物聯網實作入門書中的第4-14頁下方應該改成time=15,才會大於等於6且小於等於18
2. 在超圖解 Python物聯網實作入門書中的第5-19頁中,程式id=12應該改成num=12
3. 在超圖解 Python物聯網實作入門書中的第7-28頁中下方,第13章應該改成第14章
4. 在超圖解 Python物聯網實作入門書中的第8-19頁,色相值介於0~360應該改成色相值介於0~359
5. 在超圖解 Python物聯網實作入門書中的第8-28頁,from machine import Pin應該改成from machine import Pin, PWM
6. 在超圖解 Python物聯網實作入門書中的第9-22頁,馬達的兩端,有一端應該接到正極(+)而非負極(-),TIP120的E(射極)應該接地
7. 在超圖解 Python物聯網實作入門書中的第7-20頁,GPS模組有支援3.3V,所以應該可以把GPS模組VCC直接接到3.3V,而不用將RX串接二極體,參考網址https://www.youtube.com/watch?v=mqOrciWRBcI
WOW~非常感謝Alex糾錯!!
thanks,
jeffrey
老師您好
1. 在超圖解 Python物聯網實作入門書中的第10-2頁,參閱第10章應該改成參閱第8章
2. 在超圖解 Python物聯網實作入門書中的第11-29頁,print(‘claps: ‘ + claps) 應該改成print(‘claps: ‘ + str(claps))
3. 在超圖解 Python物聯網實作入門書中的第12-25頁,oled.framebuf.blit 應該改成oled.blit
4. 在超圖解 Python物聯網實作入門書中的第12-30頁,self.oled.framebuf.blit 應該改成self.oled.blit
非常感謝!我已經將這些錯誤,訂正在上文的「內容勘誤」單元。
thanks,
jeffrey
老師您好
1. 在超圖解 Python物聯網實作入門書中的第13-13頁,except Exception as e 應該改成except Exception as e:,pin.duty(pwm); 應該改成pin.duty(int(pwm)),led = Signal(ledPin, invert=True)似乎有問題,所以我把它註解,並將setPWM(dist, led)修改成setPWM(dist, ledPin),如果要反轉的話,我會將pwm = (dist-minDist) / (maxDist – minDist) * 1024修改成pwm = (maxDist-dist) / (maxDist – minDist) * 1024,我修改的程式如下:
from hcsr04 import HCSR04
from machine import Pin, PWM, Signal
import time
sr04 = HCSR04()
ledPin = PWM(Pin(2), freq=1000) # led接在第2腳
#led = Signal(ledPin, invert=True)
minDist = 10
maxDist = 30
limitDist = 40
def setPWM(dist, pin): # 依據輸入距離,調整輸出PWM。
dist = max(minDist, min(dist, maxDist)) # 數值限縮在最低與最高限度之間
pwm = (dist-minDist) / (maxDist – minDist) * 1024
pin.duty(int(pwm)) # 控制指定腳位的PWM輸出
while True:
try:
dist = sr04.distance()
print(‘Distance:’, dist, ‘cm’)
if dist < limitDist: # 若距離在指定範圍內,才需要調整亮度。
setPWM(dist, ledPin)
except Exception as e:
print(e.args[0])
time.sleep(1)
老師您好
1. 在超圖解 Python物聯網實作入門書中的第13-31頁,動手做11-1應該改成動手做12-1
2. 在超圖解 Python物聯網實作入門書中的第13-23頁,說明motorA.setMotor(wemotor.CW, 50)會以50%轉速朝順時鐘方向旋轉,可是在第13-29頁中,卻只有一個參數,如motorA.setMotor(wemotor.CW),而在第13-39頁的程式庫中,是有兩個參數,但看起來pwm_val這個轉速值,似乎不是轉速百分比,所以有些看不太懂
3. 在超圖解 Python物聯網實作入門書中的第13-18頁,我只有如第13-18頁圖的TB6612FNG,請問如何將13-38頁的WEMOS馬達驅動程式庫改寫成如第13-18頁的TB6612FNG程式庫呢?
謝謝老師的解答
setMotor()方法的參數值的確是0~100沒錯,我是依照原廠的Arduino程式庫改寫,同樣在方法內部將此值乘上100,我想是因應馬達驅動板的STM32處理器的韌體需求。
TB6612FNG程式庫可以參考「TB6612FNG直流馬達驅動∕控制板(一):簡介、程式庫與取代L298N模組」使用的SparkFun程式庫,定義drive, break,…等方法,從它的原始檔可看出比STM32的I2C程式單純許多。
thanks,
jeffrey
老師您好
1. 在超圖解 Python物聯網實作入門書中的第16-32頁,wlan = network.WLAN(network.waln)應該修改成wlan = network.WLAN(network.STA_IF)
2. 在超圖解 Python物聯網實作入門書中的第17-7頁,client.send(httpHeader.format(temp, humid))應該改成client.send(httpHeader.format(temp=temp, humid=humid))
3. 在超圖解 Node.js物聯網實作入門第3-47頁的程式如下:
var express = require(‘express’);
var app = express();
app.get(“/”, function(req, res) {
res.send(“arduino資訊網頁”);
});
app.get(“/th”, function(req, res) {
var temp = req.query.t; // 讀取查詢字串的t值
var humid = req.query.h; // 讀取查詢字串的h值
// 確認有收到溫度和濕度值(兩者都不是undefined)
if (temp != undefined && humid != undefined) {
console.log(“溫度: ” + temp + “,濕度: ” + humid);
res.send(“溫度: ” + temp + “°C,濕度: ” + humid +”%”);
} else {
console.log(“沒收到資料!”);
}
});
app.use(“*”,function(req,res){
res.status(404).send(‘查無此頁!’);
});
var server = app.listen(5438, function () {
console.log(“網站伺服器在5438埠口開工了!”);
});
在我的電腦執行node inde.js後,先在瀏覽器輸入http://192.168.50.192:5438/th?t=”22″&h=”25″,在我電腦執行的node.js伺服器程式可以收到資料,接著在超圖解 Python物聯網實作入門書中的第17-23頁,我參考老師的程式打算將esp82662取代瀏覽器上傳資料到我的網頁伺服器,修改如下
def connectAP(ssid, pwd):
import network
wlan = network.WLAN(network.STA_IF)
if not wlan.isconnected():
wlan.active(True)
wlan.connect(ssid, pwd)
while not wlan.isconnected():
pass
print(‘network config:’, wlan.ifconfig())
connectAP(‘CC111’, ‘12345678’)
import urequests as req
apiURL='{url}?t={temp}&h={humid}’.format(
url = ‘http://192.168.50.192:5438/th’,
temp = 22,
humid = 25
)
r = req.get(apiURL)
print(‘content:’, r.content)
print(‘text:’, r.text)
執行後,micropython終端機出現如下
paste mode; Ctrl-C to cancel, Ctrl-D to finish
=== def connectAP(ssid, pwd):
=== import network
=== wlan = network.WLAN(network.STA_IF)
===
=== if not wlan.isconnected():
=== wlan.active(True)
=== wlan.connect(ssid, pwd)
===
=== while not wlan.isconnected():
=== pass
===
=== print(‘network config:’, wlan.ifconfig())
===
=== connectAP(‘CC111’, ‘12345678’)
===
=== import urequests as req
===
=== apiURL='{url}?t={temp}&h={humid}’.format(
=== url = ‘http://192.168.50.192:5438/th’,
=== temp = 22,
=== humid = 25
=== )
===
=== r = req.get(apiURL)
===
=== print(‘content:’, r.content)
=== print(‘text:’, r.text)
network config: (‘192.168.50.91’, ‘255.255.255.0’, ‘192.168.50.1’, ‘192.168.50.1’)
Traceback (most recent call last):
File “”, line 24, in
File “urequests.py”, line 112, in get
File “urequests.py”, line 100, in request
File “urequests.py”, line 58, in request
OSError: [Errno 103] ECONNABORTED
所以想請問老師是哪裡出錯了?
咦?我剛剛測試沒問題欸…
thanks,
jeffrey
老師您好
已經解決了,應該是我電腦其他程式的干擾,感謝老師的幫忙
1. 在超圖解 Python物聯網實作入門書中的第17-25頁中,
apiURL += ‘field1={temp}&field2={humid}’.format(
temp = d.temperature(),
humid = d.humidity()
)
因為apiURL是全域變數,會一直串接下去
2. 在超圖解 Python物聯網實作入門書中的第18-10頁,動手做11-3應該改成12-3,在超圖解 Python物聯網實作入門書中的第18-11頁,第11章應該改成第12章
3. 在超圖解 Python物聯網實作入門書中的第18-14頁,oled.framebuf.blit(fb, 0, 15)應該改成oled.blit(fb, 0, 15)
非常感謝糾錯!已列入上文「內容勘誤」單元,謝謝!
thanks,
jeffrey
老師您好
1. 在超圖解 Node.js物聯網實作入門第2-24頁中,可以讓Arduino輸出溫度和濕度的JSON訊息給網頁,所以想請問在超圖解 Python物聯網實作入門第17-7頁中,如何改成讓ESP8266輸出溫度和濕度的JSON訊息給網頁呢? 感謝老師的回答
參考18-4頁的ujson程式庫說明,修改「動手作17-1」的MicroPython網站伺服器程式,把HTTP標頭改成JSON類型的回應。
假設傳回如下的JSON資料:
新增與修改「動手作17-1」的程式如下:
上傳到控制板,再開啟瀏覽器瀏覽到網站根路徑,即可看見傳回的JSON資料。
thanks,
jeffrey
老師你好
ESP8266伺服器有收到資料,但是瀏覽器輸入http://192.168.50.91 沒收到資料,如下所示
氣溫: – °C
濕度: – %
所以想請教老師那裡寫錯了,另外想請教如果要加上路由,該如何寫呢? 例如 http://192.168.50.91/th 才回傳ESP8266伺服器傳回來的溫溼度,感謝老師的回答
請參閱物聯網IoT第2-38頁的「AJAX的安全限制」一節,在HTTP檔頭加入 Access-Control-Allow-Origin,如下:
路由部份,可參閱Python物聯網17-13, 17-15以及17-31頁的例子,解析URL字串,針對路徑做不同的處置。我預計六月中旬會再補充一篇文章說明。
thanks,
jeffrey
老師你好
加入Access-Control-Allow-Origin: * 之後,ESP8266伺服器有收到資料,但是瀏覽器輸入 http://192.168.50.91 依然沒收到資料,如下所示
氣溫: – °C
濕度: – %
感謝老師的回答
我用物聯網IoT第2章的temp_json.html連接上述的MicroPython JSON程式,測試沒問題。
請在瀏覽器中按F12鍵,查看Network的錯誤訊息。
thanks,
jeffrey
老師你好
1. 瀏覽器按下F12後,Console出現GET http://192.168.50.91/ 0 (),不明白是甚麼錯誤,感謝老師的幫忙
這是Python程式碼,在D1 mini板測試執行無誤:
thanks,
jeffrey
老師你好
我是用Nodemcu V2板和esp8266-20180511-v1.9.4.bin的韌體環境下測試的,還是無法顯示,我再去買一個D1 mini板來測試好了,感謝老師的幫忙
Nodemcu V2板本質上和D1 mini是一樣的,請改用1.8.3版韌體測試。
thanks,
jeffrey
老師您好, 請教一下 我照著書的封面貼紙跟旗標買D1 mini, 結果收到的是ESP8266MOD。這個跟ESP-12S 使用起來是否有差別?
謝謝!
那個控制板是旗標科技販售的產品,ESP8266MOD是ESP-12F,書本1-21頁左下方繪製的圖片也是ESP-12F。ESP-12系列都內建4MB快閃記憶體和相同的微控器核心,在使用上沒有什麼差別。
thanks,
jeffrey
謝謝!
老師你好
1. 之前的問題已解決,另外想請問在超圖解 Node.js物聯網實作入門第17-5頁中,寫的是req = client.recv(1024),但在第17-15頁,寫的是req = client.recv(1024).decode(‘utf8’),請問這兩處為何會用不同的寫法?
2. 在超圖解 Node.js物聯網實作入門第17-14頁中,s[0] !=16384 以及fileSize=s[6],其中16384 和 s[6]是怎麼來的呢?
感謝老師的回答
物聯網Python第17章,17-5和17-15頁的兩個敘述寫法是一樣的,請參閱6-24的「文字編碼與解碼」說明。
17-14頁的16384與s[6],請參閱14-17頁「確認檔案是否存在以及檔案大小」一節。
thanks,
jeffrey
老師你好
請問您有試過使用Cygwin 來操作附錄B嗎? 我操作到下載ESP-OPEN-SDK 後的make就有問題了.
我已經用了一周 還是無法搞定, 請問是我哪邊出了問題嗎?
我附上問題的資料給您參考.
Makefile:184: warning: overriding recipe for target ‘ESP8266_NONOS_SDK-2.1.0-18- g61248df/.dir’
Makefile:179: warning: ignoring old recipe for target ‘ESP8266_NONOS_SDK-2.1.0-1 8-g61248df/.dir’
make -C crosstool-NG -f ../Makefile _ct-ng
make[1]: Entering directory ‘/home/hp4421s/esp-open-sdk/crosstool-NG’
../Makefile:184: warning: overriding recipe for target ‘ESP8266_NONOS_SDK-2.1.0- 18-g61248df/.dir’
../Makefile:179: warning: ignoring old recipe for target ‘ESP8266_NONOS_SDK-2.1. 0-18-g61248df/.dir’
./bootstrap
:無效選項p: 第 2 列:set: –
set: 用法:set [–abefhkmnptuvxBCHP] [-o 選項名] [–] [引數 …]
make[1]: *** [../Makefile:146: _ct-ng] Error 2
make[1]: Leaving directory ‘/home/hp4421s/esp-open-sdk/crosstool-NG’
make: *** [Makefile:143: crosstool-NG/ct-ng] Error 2
沒有,我是在Windows 10的Linux子系統和樹莓派3B+上編譯MicroPython。
thanks,
jeffrey
老師您好
使用【超圖解 Python 物聯網實作入門實驗套件包】裡面的 Wemos D1 mini板 進行練習時,
MicroPython的韌體(esp8266-20180511-v1.9.4.bin)透過[esptool]或是[Flash下載工具]
皆可正常燒錄。
但是透過putty連線時畫面只有綠色游標,黑色一片,無法操作。
按下 Ctrl + D 也無反應。
不知道是何原因?
謝謝
老師您好
關於上面的問題,後來再次比對了一下[Flash 下載工具]的燒錄參數,
發現有些部分與書上不同,重新燒錄後。
Putty可以連上了,但是鍵盤無法輸入,
嘗試用另外一套Tera Term,可以連上,也可以輸入了。
暫時先用 Tera Term 學習了。
謝謝
我使用Flash下載工具,依照1-28頁的設定,先清除記憶體再燒錄1.9.4版韌體。
燒錄完畢後,拔除USB線再重接。使用Putty連線,測試輸入沒問題:
老師您好
今天換別台電腦重新燒錄之後,就可以了,燒錄完的 D1 mini 板拿到原電腦,
一樣可以正常操作。不知原因為何,但也算是解決了。
另外順便提一下書中 3-20 最上方的圖片內容有誤,
錯誤:while i in range(3):
正確:for i in range(3):
謝謝
感謝糾錯!我已經將它列舉在上文的「勘誤」單元。
thanks,
jeffrey
老師您好
1. 超圖解 Python物聯網實作入門第17-14頁中,想把這個原本在esp8266執行的網頁伺服器移植到電腦或樹莓派上,程式中原本s[0] != 16384 我修改成 s[0] != 16895,執行後網頁還是無法出現,所以想請問老師該如何修改,謝謝老師的回答
在電腦或樹莓派上使用Python建置web服務,建議使用flask或django框架,許多Python書籍和網站都有介紹。
thanks,
jeffrey
老師 您好
請問”勘誤” 的文章列表會放在哪呢?
放在上文的「勘誤」區,謝謝!
thanks,
jeffrey
想請教CUBIE版主, 想使用NodeMCU/ESP8266的SPI與GPIO來傳送自定義的資料, PC主機端拿Visual C#來開發的GUI控制軟體行嗎?
是不是需搭配版子上USB to TTL IC型號的開發包? 請問有無相關上層PC端控制軟體開發的介紹? 非常感謝 ^.^
微控制板跟PC相連,最簡單的方法是透過USB序列埠,Visual C#一定有相關的序列埠通訊程式庫可用。
have fun!
jeffrey
老師您好
想請問老師的這三本作品,有沒有出電子書版本? 如果有, 請問要去哪裡買?
雖然手上已經擁有兩本超圖解系列實體書,新書已訂購,但是還是想買電子書版本。老師您書中的資料非常詳盡,常常會需要查閱,如果有電子書版本,直接點目錄(或書籤)翻頁,真的會快速方便很多。
非常感謝您的支持,書籍的出版和發行都是由出版社決定,目前沒有發行電子版的計畫。
thanks,
jeffrey
老師您好
想請教 3-27 套用歐姆定律來計算由3.3V電源提供給LED (2V,10mA)時所需的電阻歐姆值之例子
書上寫著 (3.3V-2V)/10mA = 1.1V/0.01A =110Ω,
但3.3V – 2V 應該為1.3V ,而非1.1V,不是這樣子的嗎@@?
3.3V – 2V 是 1.3V 沒錯,我小學數學沒學好…
thanks,
jeffrey
老師您好 :
在 “超圖解 Python 物聯網實作入門” 中, 我發生了找不到模組的錯誤
(1) PuTTY 不會產生錯誤
(2) IDLE (Python 3.6 64-bit) 會產生錯誤
(3) Python 3.6 (64-bit) 會產生錯誤
底下是實作的過程, 請問這是什麼原因造成的呢 ?
2018/07/03
==========
安裝
python-3.6.1-amd64.exe
IDLE 中有 from machine import Pin
會
Traceback (most recent call last):
File “K:\blink.py”, line 1, in
from machine import Pin
ModuleNotFoundError: No module named ‘machine’
路徑
C:\Users\John\AppData\Local\Programs\Python\Python36\
環境變數
C:\Users\John\AppData\Local\Programs\Python\Python36\Scripts\;C:\Users\John\AppData\Local\Programs\Python\Python36\;
2018/07/01
==========
安裝
python-3.6.5-amd64.exe
IDLE 中有 from machine import Pin
會
Traceback (most recent call last):
File “K:\blink.py”, line 1, in
from machine import Pin
ModuleNotFoundError: No module named ‘machine’
路徑
C:\Users\John\AppData\Local\Programs\Python\Python36
環境變數
C:\Users\John\AppData\Local\Programs\Python\Python36\Scripts\;C:\Users\John\AppData\Local\Programs\Python\Python36\;
2018/06/30
==========
重新安裝 Windows7 SP1
安裝 Python 3.6.5 & Python 3.7.0
IDLE 中有 from machine import Pin
會
Traceback (most recent call last):
File “K:\blink.py”, line 1, in
from machine import Pin
ModuleNotFoundError: No module named ‘machine’
路徑
C:\Users\John\AppData\Local\Programs\Python\Python36-32
C:\Users\John\AppData\Local\Programs\Python\Python37-32
環境變數
C:\Users\John\AppData\Local\Programs\Python\Python36-32\Scripts\;C:\Users\John\AppData\Local\Programs\Python\Python36-32\;
2018/06/09
==========
系統 Windows7 SP1
安裝
python-3.6.5-amd64.exe
安裝完畢, 執行會產生錯誤訊息
應用程式無法正確啟動 (0xc000007b)
安裝
python-3.6.5.exe
路徑
C:\Users\John\AppData\Local\Programs\Python\Python36-32
環境變數
C:\Users\John\AppData\Local\Programs\Python\Python36-32\Scripts\;C:\Users\John\AppData\Local\Programs\Python\Python36-32\;
可用
超圖解 Python 物聯網實作入門, 實作到第三章完, 沒問題
因為電腦版的Python沒有machine程式庫,所以程式編輯器會提示 No module named ‘machine’ (沒有名叫machine的模組)
Python程式必須貼入連接MicroPython控制板的終端機,或者上傳到控制板才能被執行。
thanks,
jeffrey
18-4頁的”使用ujson程式庫建立與解析JSON”的程式碼, D1是否應該是”data”?
的確是,感謝糾錯!
thanks,
jeffrey
老師 您好
不好意思,本人初心手,想請教一下,
1. 4-21頁的 動手做4-3 下面的麵包板圖,這張圖當開關按下時電流方向是從D3流向電容及電阻嗎?
2. 另外,動手做4-3 我嘗試將電阻拔除,直接將開關接在電容針下,好像也有消除彈跳訊號的效果,那麼電阻的作用是什麼呢?
1. 動手做4-3的RC開關電路就是4-20頁底下的電路圖,如4-9頁所示,D3腳已內建上拉電阻,所以麵包板只需連接一個電阻。按下開關時,電流會從Vcc流向R2和R1。
2. 如4-20頁的說明,電阻值越小(電線本身也帶有阻抗),RC充放電時間越短。拿掉動手做4-3的電阻,只會縮短電容的放電時間;8-27頁的旋轉編碼器也只有連接電容。
thanks,
jeffrey
老師您好 :
這些日子來, 我的問題還是沒有解決,
您說要上傳到控制板才能被執行
在 “超圖解 Python 物聯網實作入門” 中 (Page 3-21),
我已上傳到控制板,
ampy –port com3 put blink.py
然後執行 IDLE → Open blink.py → Run → Run Module,
依然
Traceback (most recent call last):
File “C:\blink.py”, line 1, in
from machine import Pin
ModuleNotFoundError: No module named ‘machine’
hi johnson:
「執行 IDLE → Open blink.py → Run → Run Module」這個操作,代表在電腦上執行blink.py。
依照3-21頁的說明,上傳程式碼到控制板之後,請用PuTTY或screen連線到控制板,在終端機裡面執行:
import blink
代表在控制板上,引用blink.py檔並執行。
thanks,
jeffrey
老師您好 :
感謝您的答覆, 我是想在 IDLE 或 Thonny 中寫程式, 然後馬上執行, 馬上修改,
方便除錯,
如果在PuTTY或screen連線到控制板, 我覺得修改程式比較麻煩, 比如要直接修改
那一行
這樣的話,建議使用附錄A介紹的uPyCraft。
thanks,
jeffrey
老師您好,
第12章 bigSymbol.py 除了最後面 def text 以外, 往上兩個 def temp 和 def humid 也都要把多的.framebuf 去掉。
Good Day!
謝謝paul的糾錯!
thanks,
jeffrey
老師您好:
我購買了超圖解Python物聯網實作入門這本書,並按照書p.5上所指示的網址準備下載書中的範例程式,但輸入幾次都只會進入www.flag.com.tw這個網頁,請問我該如何取得範例程式
不好意思我是剛學python的新手,如果問了蠢問題敬請見諒
拍謝,應該是出版社的網頁改版導致網站程式出錯,我剛剛已通知出版社編輯。
thanks,
jeffrey
補充:剛剛測試,資料下載頁已經修復完畢。
老師您好,
跟著您書上講的一個一個做學習到很多,感謝!
另外,第18-9與18-10在使用obj[‘ ‘]的時候似乎都要在前面加上當初儲存程式的名稱然後 .obj[‘ ‘]?
Good Day!
很高興這本書對您有幫助,那個obj裡的資料類型是「字典」(請參閱18-4)
所以存取其中的資料時,僅需要用obj[‘元素’]的語法即可。
thanks,
jeffrey
老师您好:
我在《diy15-2》,遇到问题:
点阵屏每次运行的时候都会 全亮,不会显示音符符号。
用的型号:
NodeMCU 开发板 ,书中的 MAX7219模块,固件1.9.3版
测试:
MAX7219模块在UNO上正常,用逻辑分析仪测 NodeMCU 开发板SPI(新手),发现
数据全错了,不知道是什么原因?
hi jock:
请在宣告SPI对象的语句中,加入这些参数试试:
spi = SPI(1, baudrate=1000000)
或者:
spi = SPI(1, baudrate=1000000, polarity=0, phase=0)
另外,MAX7219的这份技术文档第2页的电子特性表的工作电压(Operating Supply Voltage)有提到,最低工作电压是4.0V;第3页的逻辑高电位(Logic High Input Voltage)最低是3.5V,但我用ESP8266控制板,逻辑高电位3.3V测试没有问题。
thanks,
jeffrey
老师您好:
首先谢谢您!按照您的提示,困扰我多日的问题终于得已解决。
我做了如下改变:
修改后“spi = SPI(1, baudrate=1000000)”这条语句,
ESP8266与MAX7219模块之间增加个逻辑电平转换芯片。
在此想多说一些,老师您的书写的非常细致!期待您以后的书,在学习路上,感谢有您在! = )
感谢告知 🙂
thanks,
jeffrey
超圖解 Python 物聯網實作入門 P6-17 中, PuTTY 顯示
PYB: soft reboot
#6 ets_task(40100130, 3, 3fff837c, 4)
network config: (‘192.168.7.120’, ‘255.255.255.0’, ‘192.168.7.1’, ‘192.168.7.1’)
WebREPL is not configured, run ‘import webrepl_setup’
OSError: [Errno 2] ENOENT
MicroPython v1.9.3-8-g63826ac5c on 2017-11-01; ESP module with ESP8266
Type “help()” for more information.
關閉 PuTTY 並重置 D1 mini
打開 WebREPL 網頁, 輸入
ws://192.168.7.120:8266/
按 Connect
顯示
Disconnected
請問是什麼因素連接失敗 ?
請參閱6-11頁的註解說明。
thanks,
jeffrey
老師您好 :
前面幾頁都有做過, 但始終沒有成功在瀏覽器連接 WebREPL 過, 不知道是我觀念的問題,
還是操作環境的問題, 我再詳述一下過程
CABLE 網路線接 WIFI 分享器
WIFI 分享器接 PC (Windows7, Google Chrome)
無線網路 DHCP
D1 mini 的 boot.py 是 ch06 範例改 ‘無線網路ID’, ‘密碼’
參閱6-11頁
透過 USB 線與 PuTTY 連接
PYB: soft reboot
#7 ets_task(40100130, 3, 3fff837c, 4)
network config: (‘192.168.7.120’, ‘255.255.255.0’, ‘192.168.7.1’, ‘192.168.7.1’)
WebREPL is not configured, run ‘import webrepl_setup’
OSError: [Errno 2] ENOENT
MicroPython v1.9.3-8-g63826ac5c on 2017-11-01; ESP module with ESP8266
Type “help()” for more information.
>>>
>>> import webrepl_setup
WebREPL daemon auto-start status: enabled
Would you like to (E)nable or (D)isable it running on boot?
(Empty line to quit)
>
No further action required
>>>
退出 PuTTY 再按下 D1 mini 的 Reset 鍵
執行範例中的 webrepl.html
ws://192.168.7.120:8266/
按 Connect
還是顯示
Disconnected
老師請指點迷津, 謝謝!
你之前應該有啟用過WebREPL,只需要啟用一次,不必每次都執行import webrepl_setup。
控制板接上USB之後,不必用PuTTY連線,直接開啟瀏覽器連線即可。
另外,許多無線網路分享器具備多組SSID設定功能,也可以分別設定網域。
例如,假設網路分享器有SSID_A和SSID_B兩個AP名稱,
連接到SSID_A時,自動分配的IP位址是192.168.1.x
連接到SSID_B時,自動分配的IP位址是192.168.7.x
如果電腦和ESP8266連到不同的SSID,彼此就不能相連。
thanks,
jeffrey
老師您好 :
這麼說我的電腦沒有無線網卡, 是不能連到 SSID 的, 這樣對嗎 ?
可以連,只要位於相同網域即可。
在Windows平台,執行ipconfig命令
在macOS或Linux平台,執行ifconfig命令
可查看本機網路卡的IP位址。
thanks,
jeffrey
老师您好:
超图解Python物联网制作入门的P16-30 16-31 中代码
httpHeader = b”’\
GET /{path} HTTP/1.0
Host:{host}
User-Agent: MicroPython
”’
s.send(httpHeader.format(path=path, host=host))
在Python3中bytes不再支持format,是否可以这样修改:
httpHeader = ”’\
GET /{path} HTTP/1.0
Host:{host}
User-Agent: MicroPython
”’
s.send(httpHeader.format(path=path, host=host).decode(‘utf-8’))
應該用encode():
httpHeader.format(path=path, host=host).encode(‘utf-8’)
thanks,
jeffrey
老師 您好:
請教如果我要用17章的http_query 的範例,中的判斷led的ON或OFF部份改成 ADC Read再將值回傳到用戶端(網頁)
,利用17-2的範例 httpheader 改成動態讀取ADC傳回用戶端網頁,一直失敗,有那裡要注意嗎?
f rom machine import Pin, PWM, ADC
temp = ADC(0)
========================
if state == ‘on’:
t = temp.read()
else:
t = temp.read()
client.send(httpHeader(t))
====================================
httpHeader = b”””\
HTTP/1.0 200 OK
ESP8266 Webserver
Temperture:(t)
“””
假設網頁的樣版如下:
讀取的程式碼如下:
thanks,
jeffrey
老師您好:
我用18-1
import urequests
r=urequests.get(“http://micropython.org/ks/test.html”)
Traceback (most recent call last):
File “”, line 2, in
File “urequests.py”, line 108, in get
File “urequests.py”, line 53, in request
OSError: -2
出現錯誤訊息,請問是什麼原因呢,謝謝
請問你的ESP8266模組有連上網路嗎?
thanks,
jeffrey
請問書本的 3-19 頁提及安裝 ampy 是在哪個命令列下透過 pip 安裝 ampy (windows系統)? PuTTY的?還是 Windows 的?而且安裝命令開頭是 “D:\python>” 可是我的 D 槽應該沒有相關檔案… 請確認。謝謝!
如果你用的是Windows系統,開啟命令提示字元之後,直接輸入書本上的pip指令就能進行安裝,它會自動從網路下載。關於pip的說明,請參閱1-18頁。
thanks,
jeffrey
老師您好:
12-20 SSD1306
=== import ssd1306
=== from machine import Pin,I2C
=== i2c = I2C(scl=Pin(5), sda=Pin(4), freq=100000)
=== oled = ssd1306.SSD1306_I2C(128, 64, i2c)
Traceback (most recent call last):
File “”, line 4, in
File “ssd1306.py”, line 112, in __init__
File “ssd1306.py”, line 49, in __init__
File “ssd1306.py”, line 74, in init_display
File “ssd1306.py”, line 117, in write_cmd
OSError: [Errno 110] ETIMEDOUT
麻煩請您幫忙確認一下問題
謝謝
從錯誤訊息看來,應該是你的OLED螢幕接線有誤;也有可能是導線接觸不良,請更換連接線測試看看。
thanks,
jeffrey
我買了二本您的書,帶來大陸之后發現這裡可以很便宜的買到您書中的各項零件,加上您的書,真是受益匪淺,現在想作一個計數器,当然用OLED也是OK,但想試試看用 TM1637這個七段顯示器,上網找不到可以參考的指令,不知有沒有像DHT這樣方便的程式庫可以直接引用,是否有可以參考的資料或網頁呢? 麻煩您了,您的書真的寫得很棒,很希望您能再出ESP8266+PYTHON的書,謝謝您。
感謝支持!我沒有用過TM1637,但是Google了一下,有Arduino程式庫可用,像這一個和這一個。
這個是MicroPython版本的TM1637程式庫。
thanks,
jeffrey
您好,在下在練習 6-10的部份時,不論用chrome或是firefox,執行webrepl.html時,都會出現
Terminal widget should be focused (text cursor visible) to accept input. Click on it if not.
To paste, press Ctrl+A, then Ctrl+V
的信息,按下connect后就一直沒有反應,在cmd模式下 ping 192.168.4.1 時都能正常的連線,有接上USB線,不論有沒有把PUTTY关掉,開發板重開机過,畫面和書上都一樣,就是差在會一直出現上述的錯誤訊息,無法連線。后來把開機啟用STA模式也設了,还是無法在webrrpl的頁面出現輸入密碼的畫面,請問还有什麼可能性嗎? 有其他方法可以取得ESP866上的档案嗎? 我想把ESP8266所取得的溫濕度信息寫入ESP866中,再用電腦取得ESP8266內的文件再作顯示,在您的書中是不是能找到所有的資料? 麻煩您了 謝謝。
“Terminal widget should be focused (text cursor visible) to accept input. Click on it if not.” 並不是錯誤訊息,它只是告知瀏覽器裡的終端機物件應該要「取得焦點」,請在瀏覽器的終端機物件(黑色範圍)按一下滑鼠。
我剛剛在一塊ESP8266板子重新燒錄MicroPython 1.9.4,並按照書本6-8頁的說明重新操作一次:
連接到ESP8266的Wi-Fi AP,在瀏覽器中操作WebREPL沒有問題:
thanks,
jeffrey
老師您好~
我在進行第六章(6-11)練習時,網頁要求輸入password時,都無法輸入任何數字, 不知我是忽略了哪一個步驟
, 麻煩老師您幫忙一下了~感恩
請問你有先按一下瀏覽器中的終端機(黑色部份)嗎?除了數字以外,都能輸入嗎??瀏覽器要用Chrome或Edge。
thanks,
jeffrey
老師您好~ 是使用Chrome並有按黑色部分 但所有文字都無法輸入 只有enter有反應 我換一台電腦使用也是卡在password那邊,麻煩您了~
使用PuTTY連接ESP8266板子時,有出現錯誤訊息嗎?我剛剛重新燒錄MicroPython韌體,上傳boot.py檔:
連線測試都沒問題。
thanks,
jeffrey
我也練習第六章問題跟樓上網友差不多,上傳boot.py重開之後,仍無法顯示IP…
後來上網查不能直接用一般記事本或其他Notepad++軟體來編譯py檔…命令get無法讀取py檔….
乖乖用內建python程式編譯
感謝miho的補充,不過,我都是用vs code編輯程式再上傳,並沒有問題。
thanks,
jeffrey
老師您好:
看了大家在此園地中如此熱烈討論,對大家認真學習的用心實在很很感動.
聽說esp8266這種控制板,小朋友都已在玩了,所以4年級0段班的我也跟著跳下來試試(請勿見笑),
自認還有些電子電路概念,唯缺電腦與控制語言這方面,想藉[超圖解]漫畫方式切入,
因此,買了 “超圖解 Python 物聯網實作入門” 大著作研讀,
但…..
看到該書的P1-17就擱淺了,
How to 開啟[命令提示字元] 輸入”python -v” ?
P1-18~19 …使用pip安裝python套件,….如網頁說明,[套件可以透過pip套件管理員,在終端機(命令提示字元)進行安裝,
P1-19上部的網頁圖也有看沒有懂,
多次出現…[命令提示字元] .
SOS Mayday ! Mayday !
感恩 !!
請按下鍵盤上的Windows鍵,再輸入cmd,按下Enter鍵,即可開啟「命令提示字元」。
thanks,
jeffrey