作者:Ches拔(Sco Lin)
先前Simple Care長照開源工作坊的時候都是以Windows開發,因為firmware會與Windows相依,所以開發firmware用Windows比較不會撞牆。由於手上的Mac是使用boot camp跑Windows,發現在一連串的操作後,Windows開始愈來愈肥大,128G的SSD也快爆了,工作坊結束後,重新整理電腦,決定換回macOS開發。
照著MTK的說明,在preference 輸入:http://download.labs.mediatek.com/package_mtk_linkit_7697_index.json
(請參閱MTK網站上的說明)
開始進入Mac安裝7697的板子的時候,出現以下問題:
居然 Error downloading!!這真的是非常奇特,通常這會是網路出了問題,但換了2個網路都不行。重灌Mac後,結果顯示正常。接著下載LinkIt 7697,在download firmware時發現以下圖片的問題。
因為我已經裝了CP2102N的silicon lab官方Driver,實在想不通哪裡出問題。後來發現Java沒有安裝,找了jdk 8.x的版本安裝後,程式還是不會動;又試了一下Python的新版,安裝了3.x版還是沒用。後來,想到在工作坊也有朋友出現這個問題,當時他是抓了某一個非官方下載的driver才可以驅動LinkIt 7697。於是,我先刪除silicon lab的driver,再安裝上面提到的driver,LinkIt 7697再度出現,而且可以download firmware了。
選一個LWiFi的「AccessPoint」Example燒進去後,又發現serial monitor無法print任何東西。
後來,看了網上的討論後,灌入FTDI與CH340的driver。因為這兩個ESP8266、Arduino與USB to TTL都能用,就姑且先安裝吧~但記得要重開機!最後,總算可以在mac上正常開發LinkIt 7697,真是關關難過但關關不說啊!
在工作坊時,有朋友的Mac也是照著上面做但卻也不能啟動LinkIt 7697,是因為灌了最新的macOS。目前最新的macOS還有許多問題無法解決,只能用VMWare去跑Windows,或是用boot camp分割一個Windows出來開發,亦或是像小弟一樣將舊的macOS安裝在SSD上,Windows安裝在USB3.0的128G隨身碟上,這樣兩種系統開發都很順利,只是Windows會稍稍慢一點點。
但記住在macOS要把Mac的driver製作好,在Windows系統下裝,這樣Windows才有辨法正常使用。
小弟手上Mac系統是10.10.5,希望此文章未來可以幫助到Mac開發Arduino IDE的高手們!
再來是Simple Care的資料庫是以MySQL導入,如果你像我一樣直接將Github的code clone,然後在Terminal輸入以下command:
python /Users/Apple/Documents/GitHub/Simple-Care/pythonMQTT/python27/simple_care_py27.py
輸入後會發現出現錯誤,主要是因為沒有安裝paho,所以要在Terminal輸入:
sudo pip install paho-mqtt
然後再輸入一次:
python /Users/Apple/Documents/GitHub/Simple-Care/pythonMQTT/python27/simple_care_py27.py
又發現錯誤,但這次應該是ImportError: No module named MySQLdb(意思是說MYSQL沒灌,這個就很麻煩啦,也許你會像我一樣直接在Terminal輸入以下command,結果失敗。)
需要先到這裡下載DMG檔安裝,過程中記得左下角要選擇自定。
然後取消勾選最後一個。
再來於Terminal輸入:sudo pip install mysql-python,結果會跳出這個來(太恭喜啦! 離成功愈來愈近了!)
安裝完之後重新開機,應該就ok了,如果還不行,就再key一次:
sudo easy_install mysql-python 與 sudo pip install mysql-python
手動安裝
如果還是不行,就手動安裝吧!
首先,要安裝brew:
“/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
接下來:
- 先brew install mysql-connector-c
- 下載https://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.5.zip#md5=654f75b302db6ed8dc5a898c625e030c
- cd MySQL-python-1.2.5 修改site.cfg
將#mysql_config = /usr/local/bin/mysql_config 改成 mysql_config = /usr/local/mysql/bin/mysql_config - python ./setup.py build 與 sudo python ./setup.py install
- 安裝XAMPP
測試Github的MySQL與Python相連
import MySQLdb
db = MySQLdb.connect(host=”localhost”,
user=”root”, passwd=””, db=”simple_care”)
cursor = db.cursor()
cursor.execute(“SELECT * FROM log_peripheralwithcentral”)
results = cursor.fetchall()
for record in results:
col1 = record[0]
col2 = record[1]
print “%s, %s” % (col1, col2)
db.close()
最後存成test.py,在Terminal輸入 python test.py
過程中,如果碰到libmysqlclient.18.dylib找不到,可以在Finder找找看在哪裡,像我是在XAMPP中找到的,就在Terminal輸入:
sudo ln -s /Applications/XAMPP/xamppfiles/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
再次輸入python test.py,應該就可以取出資料庫的值了!接下來brew install mosquitto,發現我的Mac版本只有10.10.5,它居然說brew和apple不支援!
只能說我認了,OS升級到最新版再brew install mosquitto一次。
完成後輸入python simple_care_py27.py,出現[Errno 61] Connection refused,這時候可以:
- 重開機按下command+r,在Terminal輸入csrutil disable
- 開機後在Terminal下輸入brew services start mosquitto
Mac開發Firmware、MySQL與MQTT實在太厚工了!But!如鄉民所說!用Mac就算是只拿來打報告,潮能代表一切!!!或許又碰到坑的時候,是真的要考慮用舊版或裝個VMWare用Windows開發,是時候找時間玩Mbed了!
(本文同步發表於作者部落格 — 物聯網學習筆記,文章連結;責任編輯:廖庭儀。)
- 【育教於樂】我家日常的康達效應 - 2019/04/25
- 【Tutorial】一起走進 ROS 的世界吧(5) - 語音辨識篇 - 2018/12/26
- 【Tutorial】一起走進 ROS 的世界吧(4) — 視覺辨識篇 - 2018/11/14
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!
2018/03/27
可惜的是 我的依照上述方法還是沒辦法抓到7697
扒了一下文 看到一個外國老兄跟我們一樣的狀況,用了十八條線?才測試到一條可以正確連上,所以~也有可能是線材的問題…
但是我拿去插LINKIT ONE又是可以抓的到的(線材是one送的那條 抓的到好像蠻合理的…)
拿著同一片7697+ONE送的線去win7上安裝又是正常可以讀取與燒錄的…
搞不懂到底怎麼了Orz
2018/01/16
“Mac就算是只拿來打報告”對於這句話不是很認同,我在業界遇到的外國客戶全都是在mac上開發FW、database、測試的程式,所以我覺得這個看法太過狹隘,裝潮是台灣人比較會不代表mac只有這個功能。
2018/01/23
謝謝您的回應,期望有機會您也可以一起與我們分享使用Mac進行開發的專案,讓更多人可以有不一樣的開發工具:)