2017年10月14日 星期六
Tensorflow for JAVA
微軟的線上 jupyter notebook
https://notebooks.azure.com/
Tensorflow for Python
深度學習的好網站
https://ithelp.ithome.com.tw/articles/10187648
該作者的github
https://github.com/c1mone/Tensorflow-101/blob/master/notebooks/3_MNIST_CNN_Layer_Visualization.ipynb
Tensorflow for JAVA on Windows
https://www.tensorflow.org/install/install_java
下載下面兩個檔案
https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-1.3.0.jar
https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-windows-x86_64-1.3.0.zip
HelloTF.java的原始碼如下,紅色是我加的,其他都跟官網一樣。
import org.tensorflow.Graph;
import org.tensorflow.Session;
import org.tensorflow.Tensor;
import org.tensorflow.TensorFlow;
public class HelloTF {
public static void main(String[] args) throws Exception {
System.loadLibrary("tensorflow_jni");
try (Graph g = new Graph()) {
final String value = "Hello from " + TensorFlow.version();
// Construct the computation graph with a single operation, a constant
// named "MyConst" with a value "value".
try (Tensor t = Tensor.create(value.getBytes("UTF-8"))) {
// The Java API doesn't yet include convenience functions for adding operations.
g.opBuilder("Const", "MyConst").setAttr("dtype", t.dataType()).setAttr("value", t).build();
}
// Execute the "MyConst" operation in a Session.
try (Session s = new Session(g);
Tensor output = s.runner().fetch("MyConst").run().get(0)) {
System.out.println(new String(output.bytesValue(), "UTF-8"));
}
}
}
}
編譯
javac -cp libtensorflow-1.3.0.jar HelloTF.java
執行
java -cp libtensorflow-1.3.0.jar;. -Djava.library.path=jni HelloTF
執行
java -cp libtensorflow-1.3.0.jar;. -Djava.library.path="存放tensorflow_jni.dll檔案的資料夾" HelloTF
結果
2017-10-15 12:33:30.150485: W tensorflow/core/platform/cpu_feature_guard.cc:45]
The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-10-15 12:33:30.150485: W tensorflow/core/platform/cpu_feature_guard.cc:45]
The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
Hello from 1.3.0
另一個範例程式
https://github.com/tensorflow/tensorflow/blob/r1.3/tensorflow/java/src/main/java/org/tensorflow/examples/LabelImage.java
需要搭配下面的參考檔案
https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip
執行的方式
java -cp libtensorflow-1.3.0.jar;. -Djava.library.path="存放tensorflow_jni的資料夾" -jar LabelImage.jar "放tensorflow_inception_graph.pb的資料夾" "測試的圖片.jpg"
結果
2017-10-19 09:41:56.723777: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructio
ns, but these are available on your machine and could speed up CPU computations.
BEST MATCH: bolo tie (26.88% likely)
2017年9月22日 星期五
Python Note
==========py to exe with sign==========
參考網址https://steward-fu.github.io/website/driver/wdm/self_sign.htm
或這個也寫得不錯http://mqjing.blogspot.tw/2009/03/plugin-activex-cab-signtool.html
signtool get from MS SDK or Visual C++ for Python (http://aka.ms/vcpython27)
First time
Makecert -r -pe -ss YourName YourName.cer
certmgr.exe -add YourName.cer -s -r localMachine root
After
signtool sign /s YourName YourApp.exe
==========bundle exe to py.exe==========
http://blog.csdn.net/Sagittarius_Warrior/article/details/73998548
currPath = sys.path[0]
os.system(currPath+"\\exe.exe") #exe.exe can not be found if without sys.path[0]
#or add sys.path[0] to cwd path
os.path.join(os.getcwd(),sys.path[0])
C:\Python27\Scripts\pyinstaller --uac-admin ^
--uac-uiaccess ^
--win-private-assemblies ^
--clean ^
--key 1234512345 ^
-i Home.ico ^
--add-data=exe.exe;. ^
--add-data=signtool.exe;. ^
-F exe_Test.py
註: ^ 是換行的意思
====================
====================
====================
====================
======同時安裝python2 & 3==============
https://www.zhihu.com/question/21653286
py -2 v2.py
py -3 v3.py
py -2 -m pip install package
py -3 -m pip install package
header #! python2 or #! python3
==========Server & Client的部分==========
http://www.bogotobogo.com/python/python_network_programming_server_client_file_transfer.php
加一下自己寫的東西... https://github.com/kyc1109/devcon
# Compile .py to class ==========================================
#https://stackoverflow.com/questions/14205464/converting-jython-code-into-a-java-class
Test file: A31Mod.py, A31Mod$py.class
指令如下: #若直接用Jython編譯則產出class, 但是如果直接用Python編譯則產出pyc檔。
java -jar jython-standalone-2.7.0.jar #run Jython
>>> import compileall # import for compile multi file。
#>>> compileall.compile_dir('directory/', force=True) #compile multi file
>>> import py_compile # import for compile single file。
>>> py_compile.compile("A31Mod.py") #compile single file from A31Mod.py to A31Mod$py.class
>>> from A31Mod import A31Mod #import A31Mod$py.class
>>> a31 = A31Mod("TC_COM_1436") # use A31Mod()
>>> a31.LAN_PING()
ping www.compal.com #result
LAN check Pass #result
Python 中文教學
http://mirror.sars.tw/Python_tut_tw/tut.html
#How to overload __init__ method based on argument type?==========================================
#https://stackoverflow.com/questions/141545/how-to-overload-init-method-based-on-argument-type
class MyData: #Quick and dirty fix
def __init__(string=None,list=None):
if string is not None:
#do stuff
elif list is not None:
#do other stuff
else:
#make data empty
#===import py part 1=======================================
#Complex.py
class Complex:
def __init__(self, realpart, imagpart): #__init__ 就是class的方法,所以等於Complex()
self.r = realpart
self.i = imagpart
#test.py
from Complex import Complex
x = Complex(3.0,-4.5)
print x.r, x.i
#===import py part 2=======================================
import os, subprocess, time
#變數和呼叫的方法要前面要加self.,所以會有一堆self.xxx。
class DevCompareMod:
def __init__(self, original_file, unoriginal_file, log_file): #__init__ equal DevCompareMod()
self.original_file = original_file #"original.txt"
self.unoriginal_file = unoriginal_file #"unoriginal.txt"
self.log_file = log_file #"log_DevCompare.txt"
def wLog(self, txtLog):
if not os.path.exists(self.log_file):
wLog=open(self.log_file, "w")
wLog.write(txtLog)
wLog.close()
else:
wLog=open(self.log_file, "a")
wLog.write(txtLog)
wLog.close()
self.wLog(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())+"=======================================\n")
self.wLog(strLost)
#使用方式
from DevCompareMod import DevCompareMod
DevCompareMod("original.txt","unoriginal.txt","log_DevCompare.txt")
#===import py part 3=======================================
#__init__ 和 __name__是可以一起用的
class DevCompareMod:
def __init__(self): #__init__ equal DevCompareMod()
if __name__ == '__main__':
if len(sys.argv) < 2 or sys.argv[1].lower()=="/h" or sys.argv[1].lower()=="-h" or sys.argv[1].lower()=="/?" or sys.argv[1].lower()=="-?" : #len小於2也就是不帶參數啦
print "no/wrong argument."
else:
DevCompareMod()
# 參考網址 http://www.kaiching.org/2012/12/Python-Constructor.html
http://usyiyi.cn/documents/python_278/library/subprocess.html
簡中的翻譯版
建議優先使用 subprocess.call()或是subprocess.check_call()或是subprocess.check_output()(回傳值不為0則丟出例外),
如果不行的話,再用Popen 搭配communicate()
#Popen VS. check_output
#因為check_outputt因為已經內建stdout,所以如果有問題只會出現error code和error msg,但不會出現執行的內容。
try:
p = subprocess.check_output(["ls non_existent_file; exit 1"],shell=True, stderr=subprocess.STDOUT) #不允許stdout因為已經內建了
print p
except subprocess.CalledProcessError,e:
print e.output
輸出ls: cannot access 'non_existent_file': No such file or directory
q = subprocess.Popen(["ls","-a"],shell=True, stdout=PIPE, stderr=PIPE)
stdout, stderr = q.communicate()
print stdout
輸出README.md
輸出Test_1.ipynb
https://docs.python.org/2/library/subprocess.html
#method2, output="dmesg | grep hda"
p1 = Popen(["dmesg"], stdout=PIPE)
p2 = Popen(["grep", "hda"], stdin=p1.stdout, stdout=PIPE)
p1.stdout.close() # Allow p1 to receive a SIGPIPE if p2 exits.
output = p2.communicate()[0]
http://www.powenko.com/wordpress/?p=8697
翻譯的有點怪,但還可以接受啦
https://stackoverflow.com/questions/4348524/subprocess-variables
https://blog.aweimeow.tw/2016/09/09/python-subprocess-%E5%90%84%E5%87%BD%E5%BC%8F%E7%9A%84%E4%BD%BF%E7%94%A8%E6%99%82%E6%A9%9F/
參考上述網頁,Popen裡面的指令與參數,用逗號","取代空格" "可以避免不必要的錯誤。
透過PIPE把結果回傳到stdout或是stderr。
def subxx():
import sys, os, subprocess # Import socket module
from subprocess import Popen, PIPE
try:
output = subprocess.Popen(["ping","localhost"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) #useing , not space in cmd
stdout, stderr= output.communicate()
print ("output: \n"+str(output))
print ("stdout: \n"+stdout)
except subprocess.CalledProcessError:
print('Exception handled')
subxx()
====以下為輸出結果=============================================
output:
<subprocess.Popen object at 0x8>
stdout:
Ping localhost [127.0.0.1] (使用 32 位元組的資料):
回覆自 127.0.0.1: 位元組=32 time<1ms TTL=128
回覆自 127.0.0.1: 位元組=32 time<1ms TTL=128
回覆自 127.0.0.1: 位元組=32 time<1ms TTL=128
回覆自 127.0.0.1: 位元組=32 time<1ms TTL=128
127.0.0.1 的 Ping 統計資料:
封包: 已傳送 = 4,已收到 = 4, 已遺失 = 0 (0% 遺失),
大約的來回時間 (毫秒):
最小值 = 0ms,最大值 = 0ms,平均 = 0ms
2017年9月15日 星期五
Java Screen Capture
private static void screencapture() throws IOException, AWTException {
//throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
try{
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] gs = ge.getScreenDevices();
for (int j = 0; j < gs.length; j++) { //get each monitor
GraphicsDevice gd = gs[j];
GraphicsConfiguration[] gc = gd.getConfigurations();
for (int i=0; i < gc.length; i++) {
Rectangle rec = gc[i].getBounds(); //get each screen resolution
BufferedImage image = new Robot().createScreenCapture(rec);
String timeStamp = new SimpleDateFormat("MMdd_HHmm_ss").format(Calendar.getInstance().getTime()); //yyyyMMdd_HHmmss
ImageIO.write(image, "png", new File("Screen_"+j+"_"+ rec.width +"x"+rec.height +"_"+timeStamp +".png"));
System.out.println("Screen:"+j+"_"+ rec.width +"x"+rec.height +"_"+timeStamp +".png");
//Save file at %userprofile%\Documents\NetBeansProjects\JavaSikuli
}
}
} catch (AWTException ex) {
Logger.getLogger(JavaSnapshot.class.getName()).log(Level.SEVERE, null, ex);
}
}
2017年9月4日 星期一
Sikuli 筆記
VLC record desktop command:
vlc screen:// -I rc --screen-fps 30 :sout=#transcode{vcodec=h264}:std{access=file,dst=%homepath%/Desktop/output.mp4}
之後再打stop即可停止錄影。
1.
hover(Location(s.getBottomRight())) #終於找到了之一,S=screen, hover 可以改成click等動作
hover(Location(s.getTopLeft()).offset(100,100)) #終於找到了之二,hover offset on second monitor
#來源網址 http://www.lai18.com/content/7527573.html
#screen capture
screen = Screen()
sc = screen.capture()
shutil.move(sc.getFilename(), os.path.join(os.path.abspath('.'), "some-name.png"))
2.
跟find()有關的
Find() # FindFailed exceptions
exists() #no exceptions
Region.exists() #returns False
setFindFailedResponse(PROMPT) # PROMPT/RETRY/SKIP/ABORT/HANDLE when not found you will be prompted. 這個超好用的,在發現findfailed的時候會跳出提示,真貼心。

註:http://sikulix-2014.readthedocs.io/en/latest/region.html#exception-findfailed
3.
在Sikuli呼叫JAVA
看樣子,jar在Jython裡面被視為是一個資料夾,所以用法如方法三。
參考網站:
http://techblog.leosoto.com/jython-import-logic/
https://puremonkey2010.blogspot.tw/2014/01/jython-using-jython-to-call-java.html
下面的Jython.class和Jython.jar是我自己建立的測試檔案,不是官網上的Jython.jar喔!!!
#Method 1. Jython.class in *.sikuli_folder\Jython.class
import class
#Method 2. Jython.class in *.sikuli_folder\jython\Jython.class
import jython.Jython
#Method 3. Jython.jar in ..\*.sikuli_folder\sikulix\lib\Jython.jar
import sys sys.path.append(getBundlePath()+"\\Jython.jar") #宣告jar檔案的位置 from jython import Jython #from package import class j = Jython("kyc1109","TPE") j.hello()
------Jython.jar start----------------------------------------------
package jython; /** * * @author kyc1109 */ public class Jython { private String name; private String city; /** * @param name * @param city */ public Jython(String name, String city){ this.name = name; this.city = city; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public void hello() { System.out.println("Hi this is Java by hello()"); } public static void main(String[] args) { // TODO code application logic here System.out.println("Hi this is Java"); } }
------Jython.jar end----------------------------------------------
# for Multi-Monitor
for i in range(0,Screen.getNumberScreens()): #1 = Monitor2, 0 = Monitor 1 s= Screen(i) print i bounds=s.getBounds() print bounds hover(s) #move cursor to screen 1,2...
vlc screen:// -I rc --screen-fps 30 :sout=#transcode{vcodec=h264}:std{access=file,dst=%homepath%/Desktop/output.mp4}
之後再打stop即可停止錄影。
1.
hover(Location(s.getBottomRight())) #終於找到了之一,S=screen, hover 可以改成click等動作
hover(Location(s.getTopLeft()).offset(100,100)) #終於找到了之二,hover offset on second monitor
#來源網址 http://www.lai18.com/content/7527573.html
#screen capture
screen = Screen()
sc = screen.capture()
shutil.move(sc.getFilename(), os.path.join(os.path.abspath('.'), "some-name.png"))
2.
跟find()有關的
Find() # FindFailed exceptions
exists() #no exceptions
Region.exists() #returns False
setFindFailedResponse(PROMPT) # PROMPT/RETRY/SKIP/ABORT/HANDLE when not found you will be prompted. 這個超好用的,在發現findfailed的時候會跳出提示,真貼心。

註:http://sikulix-2014.readthedocs.io/en/latest/region.html#exception-findfailed
3.
在Sikuli呼叫JAVA
看樣子,jar在Jython裡面被視為是一個資料夾,所以用法如方法三。
參考網站:
http://techblog.leosoto.com/jython-import-logic/
https://puremonkey2010.blogspot.tw/2014/01/jython-using-jython-to-call-java.html
下面的Jython.class和Jython.jar是我自己建立的測試檔案,不是官網上的Jython.jar喔!!!
#Method 1. Jython.class in *.sikuli_folder\Jython.class
import class
#Method 2. Jython.class in *.sikuli_folder\jython\Jython.class
import jython.Jython
#Method 3. Jython.jar in ..\*.sikuli_folder\sikulix\lib\Jython.jar
import sys sys.path.append(getBundlePath()+"\\Jython.jar") #宣告jar檔案的位置 from jython import Jython #from package import class j = Jython("kyc1109","TPE") j.hello()
------Jython.jar start----------------------------------------------
package jython; /** * * @author kyc1109 */ public class Jython { private String name; private String city; /** * @param name * @param city */ public Jython(String name, String city){ this.name = name; this.city = city; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public void hello() { System.out.println("Hi this is Java by hello()"); } public static void main(String[] args) { // TODO code application logic here System.out.println("Hi this is Java"); } }
------Jython.jar end----------------------------------------------
# for Multi-Monitor
for i in range(0,Screen.getNumberScreens()): #1 = Monitor2, 0 = Monitor 1 s= Screen(i) print i bounds=s.getBounds() print bounds hover(s) #move cursor to screen 1,2...
2017年3月14日 星期二
My Python note in Windows
My Python note in Windows
1. Python 已經內建pip,只需要update即可
C:\Python27\Scripts
python -m pip install -U pip
2. 透過pip安裝我常用的套件
pip install matplotlib BeautifulSoup selenium pandas requests bs4 jieba scikit-learn
3. 除了 scipy要另外單獨下載安裝
下載網址,注意他有for Python的版本喔!
http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy
pip install scipy-0.19.0-cp27-cp27m-win32.whl
另外,因為scipy是獨立安裝的關係吧,需要手動安裝numpy+MKL才行。
下載網址 http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
pip install numpy‑1.11.3+mkl‑cp27‑cp27m‑win32.whl
以上筆記參考網址如下:
https://pip.pypa.io/en/latest/installing/#upgrading-pip
http://stackoverflow.com/questions/37267399/importerror-cannot-import-name-numpy-mkl
1. Python 已經內建pip,只需要update即可
C:\Python27\Scripts
python -m pip install -U pip
2. 透過pip安裝我常用的套件
pip install matplotlib BeautifulSoup selenium pandas requests bs4 jieba scikit-learn
3. 除了 scipy要另外單獨下載安裝
下載網址,注意他有for Python的版本喔!
http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy
pip install scipy-0.19.0-cp27-cp27m-win32.whl
另外,因為scipy是獨立安裝的關係吧,需要手動安裝numpy+MKL才行。
下載網址 http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
pip install numpy‑1.11.3+mkl‑cp27‑cp27m‑win32.whl
以上筆記參考網址如下:
https://pip.pypa.io/en/latest/installing/#upgrading-pip
http://stackoverflow.com/questions/37267399/importerror-cannot-import-name-numpy-mkl
2016年10月26日 星期三
交通事故
今天2016/10/27早上約7:20~7:30。親眼目擊行經新北市汐止區吉林路口時,看到一位騎機車的婦人遭行經中興路的男子騎機車闖紅燈撞上。
不管事走路、騎車或開車,用路都要小心,阿彌陀佛。
不管事走路、騎車或開車,用路都要小心,阿彌陀佛。
2016年8月4日 星期四
Raspberry pi 網路資料筆記
raspberry + openCV 前置作業
http://yehnan.blogspot.tw/2015/12/raspberry-piraspbianopencv.html
直接安裝OpenCV的lib
sudo apt-get install libopencv-dev python-opencv
很棒的raspberry + openCV + camera 教學
https://www.raspberrypi.com.tw/tag/opencv/
https://www.slideshare.net/raspberrypi-tw/raspberry-pi-camera-python-opencv-day1
https://projects.raspberrypi.org/en/projects/getting-started-with-picamera
用Raspberry Pi學GPIO - 自己做遊戲機
http://www.slideshare.net/raspberrypi-tw/gpio-gameconsolestarterkit
PPT download
http://goo.gl/0nj2JB
sample code
http://goo.gl/BrPPP8
#開機就執行
#● 一次性的執行 , 可以放在 /etc/rc.local 裡
$ sudo nano /etc/rc.local
sudo python /home/pi/gpio-game-console/11_3-joystick_mapping_keyboard/joystick_mapping_keyboard.py &
#● 以服務的方式執行 , 需寫 systemd 設定檔
#新增 systemd 設定檔
$ sudo nano /lib/systemd/system/my_systemd.service
[Unit]
Description=Add a New Systemd
[Service]
ExecStart=/home/pi/my_systemd.sh
[Install]
WantedBy=multi-user.target
$ sudo systemctl daemon-reload
#● 有畫面的程式前景執行 , 用 LXDE 的 autostart
$ nano ~/.config/lxsession/LXDE-pi/autostart
@lxterminal -e /home/pi/gpio-game-console/11_3-joystick_mapping_keyboard/housenka.sh
#Q1 how to control PC
#http://blog.itist.tw/2016/03/clean-installation-and-setup-on-raspbian-jessie.html
#自動校時 (另一種方式就是用Server丟一個目前時間到Client,然後Clinet再照這個時間去設定)
sudo timedatectl set-ntp yes
sudo date 110121432016 #MMDDhhmmYYYY
# http://raspberrypihq.com/how-to-share-a-folder-with-a-windows-computer-from-a-raspberry-pi/
sudo apt-get -y update
sudo apt-get -y upgrade #更新的部分,不一定要進行如果你覺得你的系統穩定的話通常很多人是不會將系統進行更新免得產生額外問題,所以更新部分視情況決定就可以了。
sudo rpi-update
#xrdp port 3389
sudo apt-get install -y xrdp samba samba-common-bin
sudo shutdown now
sudo reboot
netstat -tlunp | grep mbd
sudo raspi-config
sudo chmod -R 777 Test
#---samba-------------------------------------------------------
sudo nano /etc/samba/smb.conf
workgroup = WORKGROUP
wins support = yes
netbios=raspberryk
dos charset = cp950
display charset=utf8
security=user
passdb backend=tdbsam
unix password sync = yes
passwd program = /usr/bin/passwd %u
pam password change = yes
[pi]
comment=Raspberry Pi
path=/home/pi
browseable=no
writeable=Yes
only guest=no
create mask=0777
directory mask=0777
public=yes
[PiShare]
comment=Raspberry Pi Share
path=/home/pi/share
browseable=no
writeable=Yes
only guest=no
create mask=0777
directory mask=0777
public=yes #public file or not
[ICU]
comment=Raspberry Pi ICU
path=/home/pi/icu
browseable=Yes
writeable=Yes
only guest=Yes
create mask=0777
directory mask=0777
public=yes #public file or not
sudo smbpasswd -a pi #add user pi
sudo service samba restart
sudo /etc/init.d/samba restart
testparm #查閱 smb.conf 的語法設定正確性
#---中文-------------------------------------------------------
# http://www.pcdiy.com.tw/detail/3773
#1.
sudo raspi-config
#Internationalisation Options -->Change Locale -->zh_TW.UTF-8
#2.
sudo apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy
#3.
sudo apt-get install scim-chewing
#---OpenCV No need-------------------------------------------------------
# http://www.pyimagesearch.com/2016/04/18/install-guide-raspberry-pi-3-raspbian-jessie-opencv-3/
#We then need to install some developer tools, including CMake, which helps us configure the OpenCV build process:
sudo apt-get install build-essential cmake pkg-config
#Next, we need to install some image I/O packages that allow us to load various image file formats from disk. Examples of such file formats include JPEG, PNG, TIFF, etc.:
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
#Just as we need image I/O packages, we also need video I/O packages. These libraries allow us to read various video file formats from disk as well as work directly with video streams:
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
#The OpenCV library comes with a sub-module named highgui which is used to display images to our screen and build basic GUIs. In order to compile the highgui module, we need to install the GTK development library:
sudo apt-get install libgtk2.0-dev
#Many operations inside of OpenCV (namely matrix operations) can be optimized further by installing a few extra dependencies:
sudo apt-get install libatlas-base-dev gfortran
#Lastly, let’s install both the Python 2.7 and Python 3 header files so we can compile OpenCV with Python bindings:
sudo apt-get install python2.7-dev python3-dev
#Now that we have our dependencies installed, let’s grab the 3.1.0 archive of OpenCV from the official OpenCV repository. (Note: As future versions of openCV are released, you can replace 3.1.0 with the latest version number):
cd ~
wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip
unzip opencv.zip
#We’ll want the full install of OpenCV 3 (to have access to features such as SIFT and SURF, for instance), so we also need to grab the opencv_contrib repository as well:
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip
unzip opencv_contrib.zip
#Before we can start compiling OpenCV on our Raspberry Pi 3, we first need to install pip , a Python package manager:
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
#So, given that, what’s the point of using virtualenv and virtualenvwrapper ?
#-----omnitty 批量管理多台linux介面-----------------------------------------------------
#require tool.
apt-get install libncurses5-dev
#http://omnitty.sourceforge.net/
# rote-0.2.8.tar.gz
./configure
make
make install
# omnitty-0.3.0.tar.gz
./configure
make
make install
#if error, try this.
#在/etc/ld.so.conf.d/下寫入一個omnitty.conf的檔案,內容寫入/usr/local/lib即可,之後重新執行/sbin/ldconfig
sudo echo /usr/local/lib > /etc/ld.so.conf.d/omnitty.conf
sudo ./sbin/ldconfig
#Added -lncurses and -ltinfo in Makefile of omnitty
#eg.
$(CC) $(CFLAGS) -o omnitty $(objects) $(LDFLAGS) $(LIBS) -lncurses -ltinfo
#-----Pi camera.py 這個似乎沒辦法透過Xming顯示(因為他是透過硬體?)-----------------------------------------------------
# https://www.raspberrypi.org/learning/getting-started-with-picamera/worksheet/
from picamera import PiCamera
from time import sleep
camera = PiCamera()
camera.rotation = 180
camera.start_preview()
sleep(10)
camera.stop_preview()
#-----Python camera.py 這個似乎可以透過Xming顯示 (因為他是透過軟體?) -----------------------------------------------------
不過很奇怪,有時候會無法開啟camera 會顯示 "error: (-215) size.width>0 && size.height>0 in function imshow"的錯誤訊息。
解決方法,重新載入驅動
sudo modprobe bcm2835-v4l2
其他指令如下
v4l2-ctl --list-devices
v4l2-ctl --list-formats
v4l2-ctl -L
#參考自 https://www.slideshare.net/raspberrypi-tw/raspberry-pi-camera-python-opencv-day1
import cv2, time
# reference https://gist.github.com/tedmiston/6060034
cam = cv2.VideoCapture(0)#(0)
cam.set(3,800) #reference https://stackoverflow.com/questions/11420748/setting-camera-parameters-in-opencv-python
cam.set(4,600)
while True:
ret_val, img = cam.read()
if mirror:
img = cv2.flip(img, -1)
img = cv2.flip(img, -1)
cv2.imshow("webcam", img)
if cv2.waitKey(1) == 27:
break # esc to quit
cv2.destroyAllWindows()
#-----RPi-Cam-Web-Interface-----------------------------------------------------
#https://elinux.org/RPi-Cam-Web-Interface#Basic_Installation
sudo apt-get update
sudo apt-get dist-upgrade
sudo rpi-update #Not recommand
git clone https://github.com/silvanmelchior/RPi_Cam_Web_Interface.git
cd RPi_Cam_Web_Interface
./install.sh
sudo chmod 755 /etc/rc.local
sudo reboot
./RPi_Cam_Web_Interface_Installer.sh
#-----模擬器-----------------------------------------------------
http://mstar.pixnet.net/blog/post/21804241-linux-%E4%B8%8B%E7%9A%84%E9%81%8A%E6%88%B2%E6%A9%9F%E6%A8%A1%E6%93%AC%E5%99%A8
#-----install utility-----------------------------------------------------
#rpm
sudo apt-get install alien
#7zip
sudo apt-get install p7zip
#unzip
7zr e file.zip
#player
sudo apt-get install smplayer
sudo apt-get install Rhythmbox
#Ubuntu : AVI, RMVB, MPEG, MP3 一次解決
#http://blog.xuite.net/chingwei/blog/27809648-%E3%80%90%E7%B3%BB%E7%B5%B1%E3%80%91Ubuntu+%3A+AVI,+RMVB,+MPEG,+MP3+%E4%B8%80%E6%AC%A1%E8%A7%A3%E6%B1%BA
sudo apt-get install gstreamer0.10-plugins-uglygstreamer0.10-plugins-bad gstreamer0.10-ffmpeg
#-----disable Pi camera LED-----------------------------------------------------
https://www.raspberrypi-spy.co.uk/2013/05/how-to-disable-the-red-led-on-the-pi-camera-module/
sudo nano /boot/config.txt
disable_camera_led=1
#-----install python module-----------------------------------------------------
pip3 install --upgrade pip
sudo pip3 install beautifulsoup4 html5lib pandas h5py keras numpy
pip install --upgrade tensorflow
#For pandas compile
sudo apt-get install gcc-arm-none-eabi
#-----install xming-----------------------------------------------------
sudo apt-get install -y lxde lightdm xinit
http://blog.jangmt.com/2009/11/xming.html
修改/etc/gdm/custom.conf,讓root可以使用
AllowRoot=true
#-----putty cmd-----------------------------------------------------
start putty -ssh yourIP -X -l username -pw userpassword
The -X option turns on X11 forwarding in SSH, and -x turns it off. These options are only meaningful if you are using SSH.
#-----install tensorflow-----------------------------------------------------
pip install --upgrade tensorflow
or
#https://www.wandianshenme.com/play/howto-install-tensorflow-in-raspberry-pi-2/
wget https://github.com/samjabrahams/tensorflow-on-raspberry-pi/releases/download/v1.1.0/tensorflow-1.1.0-cp27-none-linux_armv7l.whl
sudo pip install tensorflow-1.1.0-cp27-none-linux_armv7l.whl
h
#-----proxy settings cmd-----------------------------------------------------
export http_proxy=http://ip:8080
export https_proxy=https://ip:8080
putty cmd: http://the.earth.li/~sgtatham/putty/0.53b/htmldoc/Chapter3.html#3.7.3
cd /etc/apt/apt.conf.d
sudo nano 10proxy
Acquire::http::Proxy "http://ip:8080";
http://www.instructables.com/id/Adding-local-internet-proxy-settings-to-Raspberry-/
#-----Clean install all-----------------------------------------------------
sudo apt-get install -y alien p7zip xrdp samba samba-common-bin ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy scim-chewing lxde lightdm xinit python-opencv python-pip x11vnc
picamera doc
http://picamera.readthedocs.io/en/release-1.13/recipes1.html
#-----Clean script-----------------------------------------------------
sudo chmod +x /etc/rc.local #auto run
#-----auto run-----------------------------------------------------
/etc/rc.local # useless
#https://www.dexterindustries.com/howto/run-a-program-on-your-raspberry-pi-at-startup/
sudo nano /etc/init.d/myPiAutoRun.sh #OK
#!/bin/bash
### BEGIN INIT INFO
# Provides: myPiAutoRun.sh
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
if [ -f "/home/pi/python/piCam/Pi_Camera_Photo_telegram.py"];then
sudo /usr/bin/python3 /home/pi/python/piCam/Pi_Camera_Photo_telegram.py &
fi
exit 0
sudo chmod +x myPiAutoRun.sh
sudo update-rc.d myPiAutoRun.sh defaults
grep -rnw "/var/log/daemon.log" -e "myPiAutoRun" #check log
sudo nano /lib/systemd/system/myPiAutoRun.service #not yet
[Unit]
Description=myPiAutoRun
After=multi-user.target
Requires=network-online.target
[Service]
Type=idle
ExecStart=/usr/bin/python3 /home/pi/python/piCam/Pi_Camera_Photo_telegram.py > /home/pi/python/piCam/Pi_Camera_Photo_telegram.log 2>&1
#Restart=always
[Install]
WantedBy=multi-user.target
sudo chmod 644 /lib/systemd/system/myPiAutoRun.service
sudo systemctl enable myPiAutoRun.service
sudo systemctl start myPiAutoRun.service
sudo systemctl status myPiAutoRun
sudo systemctl daemon-reload
sudo reboot
systemctl status myPiAutoRun.service
journalctl -xn
#cmd
sudo reboot
#------localename-------------------------------
#https://github.com/spyder-ide/spyder/issues/4131
error message ValueError, 'unknown locale: %s' % localename
The problelm is solved. I installed the zh_TW.utf-8
with either "sudo locale-gen zh_TW.UTF-8" , or
"sudo dpkg-reconfigure locales" if the former does not work.
#---wlan cmd--------
sudo ifconfig wlan0 up
sudo iwlist wlan0 scan | grep ESSID
sudo iwconfig wlan0 essid ap_ssid key ap_key
sudo gedit /etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="AP_SSID"
key_mgmt=WPA-PSK
psk="AP_Key"
}
sudo /etc/init.d/networking restart
sudo iw dev
sudo ip link set wlan0 up
sudo iw wlan0 scan
sudo wpa_passphrase blackMOREOps >> /etc/wpa_supplicant.conf
sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
sudo iw wlan0 link
sudo dhclient wlan0
sudo ping 8.8.8.8
sudo iwconfig wlan0 txpower auto #change wlan0 power
#---ADSL pppoe cmd--------
sudo apt-get -y install pppoeconf
#---wlan auto connection--------
#https://weworkweplay.com/play/automatically-connect-a-raspberry-pi-to-a-wifi-network/
sudo nano /etc/network/interfaces
auto wlan0
auto eth0
sudo nano wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
http://yehnan.blogspot.tw/2015/12/raspberry-piraspbianopencv.html
直接安裝OpenCV的lib
sudo apt-get install libopencv-dev python-opencv
很棒的raspberry + openCV + camera 教學
https://www.raspberrypi.com.tw/tag/opencv/
https://www.slideshare.net/raspberrypi-tw/raspberry-pi-camera-python-opencv-day1
https://projects.raspberrypi.org/en/projects/getting-started-with-picamera
用Raspberry Pi學GPIO - 自己做遊戲機
http://www.slideshare.net/raspberrypi-tw/gpio-gameconsolestarterkit
PPT download
http://goo.gl/0nj2JB
sample code
http://goo.gl/BrPPP8
#開機就執行
#● 一次性的執行 , 可以放在 /etc/rc.local 裡
$ sudo nano /etc/rc.local
sudo python /home/pi/gpio-game-console/11_3-joystick_mapping_keyboard/joystick_mapping_keyboard.py &
#● 以服務的方式執行 , 需寫 systemd 設定檔
#新增 systemd 設定檔
$ sudo nano /lib/systemd/system/my_systemd.service
[Unit]
Description=Add a New Systemd
[Service]
ExecStart=/home/pi/my_systemd.sh
[Install]
WantedBy=multi-user.target
$ sudo systemctl daemon-reload
#● 有畫面的程式前景執行 , 用 LXDE 的 autostart
$ nano ~/.config/lxsession/LXDE-pi/autostart
@lxterminal -e /home/pi/gpio-game-console/11_3-joystick_mapping_keyboard/housenka.sh
#Q1 how to control PC
#http://blog.itist.tw/2016/03/clean-installation-and-setup-on-raspbian-jessie.html
#自動校時 (另一種方式就是用Server丟一個目前時間到Client,然後Clinet再照這個時間去設定)
sudo timedatectl set-ntp yes
sudo date 110121432016 #MMDDhhmmYYYY
# http://raspberrypihq.com/how-to-share-a-folder-with-a-windows-computer-from-a-raspberry-pi/
sudo apt-get -y update
sudo apt-get -y upgrade #更新的部分,不一定要進行如果你覺得你的系統穩定的話通常很多人是不會將系統進行更新免得產生額外問題,所以更新部分視情況決定就可以了。
sudo rpi-update
#xrdp port 3389
sudo apt-get install -y xrdp samba samba-common-bin
sudo shutdown now
sudo reboot
netstat -tlunp | grep mbd
sudo raspi-config
sudo chmod -R 777 Test
#---samba-------------------------------------------------------
sudo nano /etc/samba/smb.conf
workgroup = WORKGROUP
wins support = yes
netbios=raspberryk
dos charset = cp950
display charset=utf8
security=user
passdb backend=tdbsam
unix password sync = yes
passwd program = /usr/bin/passwd %u
pam password change = yes
[pi]
comment=Raspberry Pi
path=/home/pi
browseable=no
writeable=Yes
only guest=no
create mask=0777
directory mask=0777
public=yes
[PiShare]
comment=Raspberry Pi Share
path=/home/pi/share
browseable=no
writeable=Yes
only guest=no
create mask=0777
directory mask=0777
public=yes #public file or not
[ICU]
comment=Raspberry Pi ICU
path=/home/pi/icu
browseable=Yes
writeable=Yes
only guest=Yes
create mask=0777
directory mask=0777
public=yes #public file or not
sudo smbpasswd -a pi #add user pi
sudo service samba restart
sudo /etc/init.d/samba restart
testparm #查閱 smb.conf 的語法設定正確性
#---中文-------------------------------------------------------
# http://www.pcdiy.com.tw/detail/3773
#1.
sudo raspi-config
#Internationalisation Options -->Change Locale -->zh_TW.UTF-8
#2.
sudo apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy
#3.
sudo apt-get install scim-chewing
#---OpenCV No need-------------------------------------------------------
# http://www.pyimagesearch.com/2016/04/18/install-guide-raspberry-pi-3-raspbian-jessie-opencv-3/
#We then need to install some developer tools, including CMake, which helps us configure the OpenCV build process:
sudo apt-get install build-essential cmake pkg-config
#Next, we need to install some image I/O packages that allow us to load various image file formats from disk. Examples of such file formats include JPEG, PNG, TIFF, etc.:
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
#Just as we need image I/O packages, we also need video I/O packages. These libraries allow us to read various video file formats from disk as well as work directly with video streams:
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
#The OpenCV library comes with a sub-module named highgui which is used to display images to our screen and build basic GUIs. In order to compile the highgui module, we need to install the GTK development library:
sudo apt-get install libgtk2.0-dev
#Many operations inside of OpenCV (namely matrix operations) can be optimized further by installing a few extra dependencies:
sudo apt-get install libatlas-base-dev gfortran
#Lastly, let’s install both the Python 2.7 and Python 3 header files so we can compile OpenCV with Python bindings:
sudo apt-get install python2.7-dev python3-dev
#Now that we have our dependencies installed, let’s grab the 3.1.0 archive of OpenCV from the official OpenCV repository. (Note: As future versions of openCV are released, you can replace 3.1.0 with the latest version number):
cd ~
wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip
unzip opencv.zip
#We’ll want the full install of OpenCV 3 (to have access to features such as SIFT and SURF, for instance), so we also need to grab the opencv_contrib repository as well:
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip
unzip opencv_contrib.zip
#Before we can start compiling OpenCV on our Raspberry Pi 3, we first need to install pip , a Python package manager:
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
#So, given that, what’s the point of using virtualenv and virtualenvwrapper ?
#-----omnitty 批量管理多台linux介面-----------------------------------------------------
#require tool.
apt-get install libncurses5-dev
#http://omnitty.sourceforge.net/
# rote-0.2.8.tar.gz
./configure
make
make install
# omnitty-0.3.0.tar.gz
./configure
make
make install
#if error, try this.
#在/etc/ld.so.conf.d/下寫入一個omnitty.conf的檔案,內容寫入/usr/local/lib即可,之後重新執行/sbin/ldconfig
sudo echo /usr/local/lib > /etc/ld.so.conf.d/omnitty.conf
sudo ./sbin/ldconfig
#Added -lncurses and -ltinfo in Makefile of omnitty
#eg.
$(CC) $(CFLAGS) -o omnitty $(objects) $(LDFLAGS) $(LIBS) -lncurses -ltinfo
#-----Pi camera.py 這個似乎沒辦法透過Xming顯示(因為他是透過硬體?)-----------------------------------------------------
# https://www.raspberrypi.org/learning/getting-started-with-picamera/worksheet/
from picamera import PiCamera
from time import sleep
camera = PiCamera()
camera.rotation = 180
camera.start_preview()
sleep(10)
camera.stop_preview()
#-----Python camera.py 這個似乎可以透過Xming顯示 (因為他是透過軟體?) -----------------------------------------------------
不過很奇怪,有時候會無法開啟camera 會顯示 "error: (-215) size.width>0 && size.height>0 in function imshow"的錯誤訊息。
解決方法,重新載入驅動
sudo modprobe bcm2835-v4l2
其他指令如下
v4l2-ctl --list-devices
v4l2-ctl --list-formats
v4l2-ctl -L
#參考自 https://www.slideshare.net/raspberrypi-tw/raspberry-pi-camera-python-opencv-day1
import cv2, time
# reference https://gist.github.com/tedmiston/6060034
cam = cv2.VideoCapture(0)#(0)
cam.set(3,800) #reference https://stackoverflow.com/questions/11420748/setting-camera-parameters-in-opencv-python
cam.set(4,600)
while True:
ret_val, img = cam.read()
if mirror:
img = cv2.flip(img, -1)
img = cv2.flip(img, -1)
cv2.imshow("webcam", img)
if cv2.waitKey(1) == 27:
break # esc to quit
cv2.destroyAllWindows()
#-----RPi-Cam-Web-Interface-----------------------------------------------------
#https://elinux.org/RPi-Cam-Web-Interface#Basic_Installation
sudo apt-get update
sudo apt-get dist-upgrade
sudo rpi-update #Not recommand
git clone https://github.com/silvanmelchior/RPi_Cam_Web_Interface.git
cd RPi_Cam_Web_Interface
./install.sh
sudo chmod 755 /etc/rc.local
sudo reboot
./RPi_Cam_Web_Interface_Installer.sh
#-----模擬器-----------------------------------------------------
http://mstar.pixnet.net/blog/post/21804241-linux-%E4%B8%8B%E7%9A%84%E9%81%8A%E6%88%B2%E6%A9%9F%E6%A8%A1%E6%93%AC%E5%99%A8
#-----install utility-----------------------------------------------------
#rpm
sudo apt-get install alien
#7zip
sudo apt-get install p7zip
#unzip
7zr e file.zip
#player
sudo apt-get install smplayer
sudo apt-get install Rhythmbox
#Ubuntu : AVI, RMVB, MPEG, MP3 一次解決
#http://blog.xuite.net/chingwei/blog/27809648-%E3%80%90%E7%B3%BB%E7%B5%B1%E3%80%91Ubuntu+%3A+AVI,+RMVB,+MPEG,+MP3+%E4%B8%80%E6%AC%A1%E8%A7%A3%E6%B1%BA
sudo apt-get install gstreamer0.10-plugins-uglygstreamer0.10-plugins-bad gstreamer0.10-ffmpeg
#-----disable Pi camera LED-----------------------------------------------------
https://www.raspberrypi-spy.co.uk/2013/05/how-to-disable-the-red-led-on-the-pi-camera-module/
sudo nano /boot/config.txt
disable_camera_led=1
#-----install python module-----------------------------------------------------
pip3 install --upgrade pip
sudo pip3 install beautifulsoup4 html5lib pandas h5py keras numpy
pip install --upgrade tensorflow
#For pandas compile
sudo apt-get install gcc-arm-none-eabi
#-----install xming-----------------------------------------------------
sudo apt-get install -y lxde lightdm xinit
http://blog.jangmt.com/2009/11/xming.html
修改/etc/gdm/custom.conf,讓root可以使用
AllowRoot=true
#-----putty cmd-----------------------------------------------------
start putty -ssh yourIP -X -l username -pw userpassword
The -X option turns on X11 forwarding in SSH, and -x turns it off. These options are only meaningful if you are using SSH.
#-----install tensorflow-----------------------------------------------------
pip install --upgrade tensorflow
or
#https://www.wandianshenme.com/play/howto-install-tensorflow-in-raspberry-pi-2/
wget https://github.com/samjabrahams/tensorflow-on-raspberry-pi/releases/download/v1.1.0/tensorflow-1.1.0-cp27-none-linux_armv7l.whl
sudo pip install tensorflow-1.1.0-cp27-none-linux_armv7l.whl
h
#-----proxy settings cmd-----------------------------------------------------
export http_proxy=http://ip:8080
export https_proxy=https://ip:8080
putty cmd: http://the.earth.li/~sgtatham/putty/0.53b/htmldoc/Chapter3.html#3.7.3
cd /etc/apt/apt.conf.d
sudo nano 10proxy
Acquire::http::Proxy "http://ip:8080";
http://www.instructables.com/id/Adding-local-internet-proxy-settings-to-Raspberry-/
#-----Clean install all-----------------------------------------------------
sudo apt-get install -y alien p7zip xrdp samba samba-common-bin ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy scim-chewing lxde lightdm xinit python-opencv python-pip x11vnc
picamera doc
http://picamera.readthedocs.io/en/release-1.13/recipes1.html
#-----Clean script-----------------------------------------------------
sudo chmod +x /etc/rc.local #auto run
#-----auto run-----------------------------------------------------
/etc/rc.local # useless
#https://www.dexterindustries.com/howto/run-a-program-on-your-raspberry-pi-at-startup/
sudo nano /etc/init.d/myPiAutoRun.sh #OK
#!/bin/bash
### BEGIN INIT INFO
# Provides: myPiAutoRun.sh
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
if [ -f "/home/pi/python/piCam/Pi_Camera_Photo_telegram.py"];then
sudo /usr/bin/python3 /home/pi/python/piCam/Pi_Camera_Photo_telegram.py &
fi
exit 0
sudo chmod +x myPiAutoRun.sh
sudo update-rc.d myPiAutoRun.sh defaults
grep -rnw "/var/log/daemon.log" -e "myPiAutoRun" #check log
sudo nano /lib/systemd/system/myPiAutoRun.service #not yet
[Unit]
Description=myPiAutoRun
After=multi-user.target
Requires=network-online.target
[Service]
Type=idle
ExecStart=/usr/bin/python3 /home/pi/python/piCam/Pi_Camera_Photo_telegram.py > /home/pi/python/piCam/Pi_Camera_Photo_telegram.log 2>&1
#Restart=always
[Install]
WantedBy=multi-user.target
sudo chmod 644 /lib/systemd/system/myPiAutoRun.service
sudo systemctl enable myPiAutoRun.service
sudo systemctl start myPiAutoRun.service
sudo systemctl status myPiAutoRun
sudo systemctl daemon-reload
sudo reboot
systemctl status myPiAutoRun.service
journalctl -xn
#cmd
sudo reboot
#------localename-------------------------------
#https://github.com/spyder-ide/spyder/issues/4131
error message ValueError, 'unknown locale: %s' % localename
The problelm is solved. I installed the zh_TW.utf-8
with either "sudo locale-gen zh_TW.UTF-8" , or
"sudo dpkg-reconfigure locales" if the former does not work.
#---wlan cmd--------
sudo ifconfig wlan0 up
sudo iwlist wlan0 scan | grep ESSID
sudo iwconfig wlan0 essid ap_ssid key ap_key
sudo gedit /etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="AP_SSID"
key_mgmt=WPA-PSK
psk="AP_Key"
}
sudo /etc/init.d/networking restart
sudo iw dev
sudo ip link set wlan0 up
sudo iw wlan0 scan
sudo wpa_passphrase blackMOREOps >> /etc/wpa_supplicant.conf
sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
sudo iw wlan0 link
sudo dhclient wlan0
sudo ping 8.8.8.8
sudo iwconfig wlan0 txpower auto #change wlan0 power
#---ADSL pppoe cmd--------
sudo apt-get -y install pppoeconf
#---wlan auto connection--------
#https://weworkweplay.com/play/automatically-connect-a-raspberry-pi-to-a-wifi-network/
sudo nano /etc/network/interfaces
auto wlan0
auto eth0
sudo nano wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
訂閱:
文章 (Atom)