get paid

Get paid for the tasks you do online

2021年12月4日 星期六

Raspberry Pi 7 inch touch screen

 因為專案需求需要一個 大一點的觸控螢幕

本來想買一般外接的HDMI 螢幕

但後來想想價差不大 ,  於是買了原廠的 7 寸觸控

此螢幕可以相容於最新的 4B  機種 

但有些需要注意的

如果使用 4B ,  那只需要接 power 跟 Gnd 即可 

I2C 可以不用接 , 但舊版的一定要接


另外要記得把 overscan 跟 GL driver 關掉

可以用 sudo raspi-config  disable overscan 與 GL 

否則觸控定位會出錯

如果要轉換螢幕方向

要修改 config.txt 

sudo nano /boot/config.tx

加入 

lcd_rotation = 2

千萬不要用 screen config  中的設定 

否則觸控會出問題


另外一個是觸控 右鍵功能

照原廠文件究改 script  但 4B 無法動作

後來看到下面這文章才解決

https://fmirkes.github.io/articles/20190827.html




2021年9月5日 星期日

使用 Mesh AP (D-Link Covr-1100) 讓樓上樓下都有無線網路

 現在基本上所有設備都需要無線網路上網

此次朋友家整棟 3層 都要使用無線網路 

之前自己家是使用 PLC  來連 ,  但 朋友家太老舊了

使用 PLC  可能速度不會很高 

於是想說試試  Mesh AP 

此次 pchome D-Link 有優惠 ,  就買 3 台 Covr-1100 來試試

本來想買 ax 機種的 ,  但想想 ac  就夠他們用了

就改買較便宜的 ac  機種 

應此就選擇 Covr-1100 

原以為 Mesh AP  設定會很麻煩

但沒想到 ,  只要把第二台 AP  先接到 router  下面

他自動會把 config  設好

不需其他動作

之後只要把機器擺到適當位置即可


測試幾個擺放位置 ,  為了讓大部分位置訊號都不錯

把機器放在 樓梯間是最好的方案

於是  1F , 2F , 3F 玄關都放一台是最好的方案

很多人說 D-Link  是 Do not Linking 

但此次購買經驗跟實測 D-Link Mesh  讓我很滿意 






2021年6月27日 星期日

樹莓派安裝常用軟體最容易的方式

 之前安裝樹莓常用軟體 如 anydesk or teamviewr , or pycharm 等 都是自己下載 source compile .. 

但遇到了不少坑 ,  每次都要花不少時間

如 obs 有時能成功,  但大都失敗

直到昨天看到有人做好了 script 


只要執行下面script 之後就換安裝 pi-app  ,  再點選 pi-app  選擇要安裝的 app 即可

省下不少時間 

wget -qO- https://raw.githubusercontent.com/Botspot/pi-apps/master/install | bash-

2021年6月26日 星期六

樹莓派安裝 ubuntu

ubuntu 推出了 21.04 版 for  樹莓派 , 因為 ubuntu 的資源比較多

且 obs studio 在原生 os 一直無法 compile 成功

於是決定改用 ubuntu 的樹莓派版

但一開始就遇到一個難題

anydesk teamviewer 等遠端工具都裝不了 

teamviewer 雖然安裝成功 ,  但跑不起來很容易 crash . 


且 gpis picamera 等制都有點不同 obs studio 雖然ok ,  但跑起來有問題

看起來 還是要等一下 資源才會完整

 

2021年6月22日 星期二

PysimpleGUI 安裝與簡介

 安裝 pysimplegui  很簡單 

pip install pysimplegui or pip3 install pysimplegui 即可

Linux, Mac, Windows 樹莓派 都支援


先說一下 pysimplegui 與其他 GUI 如 pyqt5 等的最大差異在於

pyqt5 的基本視窗宣告完時 本身視窗就可以想像是一個 while loop , 他會一直執行

但 pysimplegui 比較像一個 function

自己需要加入 while loop 讓 program 變成一個無限迴圈

這樣 windows 才會一直顯現

下面是官網的sample code ..


import PySimpleGUI as sg sg.theme('DarkAmber') # Add a touch of color # All the stuff inside your window. layout = [ [sg.Text('Some text on Row 1')], [sg.Text('Enter something on Row 2'), sg.InputText()], [sg.Button('Ok'), sg.Button('Cancel')] ] # Create the Window window = sg.Window('Window Title', layout) # Event Loop to process "events" and get the "values" of the inputs while True: event, values = window.read() if event == sg.WIN_CLOSED or event == 'Cancel': # if user closes window or clicks cancel break print('You entered ', values[0]) window.close()


一開始當然是 import package ,

sg.theme 主要是定義主題顏色 從字面上就可以看出是深底字是 琥珀色

layout 就定義 windows 內的元件有哪些

每一行就用 [] 匡起來

如第一行 就 sg.text 一個元件

第二行 有兩個 sg.text , sg.InputText

第三行就兩個 button

window = sg.Window('Window Title', layout)

就是定義一個 windows , 使用 layout 中的元件


再來就 用 while loop 讓這windows 一直跑

window.read()


此時 windows 就會出來了

但 windows 還是要能做互動啊

event, values 這兩個就是 windows 互動用的

當 button 被按下了這時有 event 時 才會往下一行執行喔

如果是 輸入 text 此時 還是不會往下作 , 但如果是按下任何一個 button , 就會觸發 event

此事程式就會往下跑

如果是 cancel被按下,event == 'Cancel'

就會結束




python 簡易的 UI module - pysimplegui

 之前使用的 pyqt5 功能很強大, 但針對某些主要是做機器學習的應用.只是要簡單UI

而不想花太多時間在 GUI 設計上的人來說 pysimplegui 是很棒的選擇 


我的應用會用到很多 opencv ,  但之前測試 tkiner 顯示 frame 時 即使使用 multi-threading 還是會有不順的狀況, pyqt 也是 ,  且對很多人來說 multithread 有點小麻煩

而pysimplegui 我測過再 macOS , raspberry pi  下opencv 的 imshow 都很順 

code 也簡單好讀很多

不過如果你的 UI 設計 位置要要自訂 ,  那 pysimplegui 的建置就會很多了 

之後會做一些簡單的教學 

2021年6月12日 星期六

樹莓派 YouTube 直播的方法

raspivid -o - -t 0 -vf -hf -fps 30 -b 6000000 | ffmpeg -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/<SESSION>

2021年5月18日 星期二

利用 GCP 建立 ssh reserve tunnel

 目前有幾台 tx2 架構在外部, 因為機器在 NAT 下, 也無法叫客人開 port 

於是想到利用GCP 的 固定 IP , 建立 reseve SSH

但之前踩了很多坑   其一是忘記將 sha public key 存到 tx2 上 

2. 原本使用別人建好的 GCP , 但 ssh 一直建不起來 ,  後來才發現該 IP 被客人的訪火想擋下了

於是自己在另建一台


簡單記錄一下設定 


1. Tx2 上 

command line 下 

 ssh -N -R 60030:localhost:22.  <gcp_username>@<GCP public IP> 


其中 60030 是 要將 ssh 轉的 port 

透過轉 port , GCP SSH 就要改用 60030 port 來跟 GCP 連線

2.  GCP 

ssh -p 60030 <tx2 username>@localhost 


60030 需要跟 tx2 轉的轉的

port 相同 , 如果有多台 tx2 , 可以利用 port 來分開 

這樣就可以透過 GCP 管理多台機器了 



2021年5月4日 星期二

"Brave" 瀏覽器使用心得

 用了 3 個月的 Brave 瀏覽器  初期是為了免費的加密貨幣來使用的

但後來越用越喜歡 ,  因為很多網站會追蹤你的使用紀錄 ,  但 brave 基本會擋掉一部分

另外 感覺使用上也比 chrome firefox 快很多.  當然這只是感覺

不過有些網站  需要改用 firefox or chrome  才能登入 

所以 firefox and chrome 還是不能移掉 



2021年2月12日 星期五

IoT data DashBoard 平台

 最近需要將 Raspberry Pi 收集的資料 統計給別人看

本來是用 GCP 自己收集資料 , 自己寫網頁

但 GCP 費用也不便宜

survey 一下 thing speaker 平台是最簡的單

直接用 https get 就可以將資料上傳到他們的平台了


ChartGPT 學 python 很強喔

 ChartGPT 最近很紅 ,  前一陣子有一些小 module  本來想 google  一下 語法 但發現用 chartGPT 直接請他給 sample code 反而較快 所以只要你有基本 知識 ChartGPT 可以加速你的開發 好用喔