物聯網開發小計 0x02

2021-08-30 21:48:47 字數 2563 閱讀 3119

自用的的家庭物聯網開發筆記

環境部署好以後就是安裝homeassistant,這裡直接用pip安裝,安裝的過程中會各種error,開-v會發現2個錯誤,乙個是setuptools的(egg_info錯誤),另乙個是wheel的錯誤,對這幾個包公升級即可正常安裝了。

用putty或者其他的ssh工具連上路由器,執行安裝命令

#安裝所需依賴包

opkg update

opkg install python python3 python3-pip python3-dev python3-cryptography gcc make node-npm

pip3 install --upgrade setuptools

pip3 install --upgrade virtualenv

pip3 install --upgrade wheel #出現wheel錯誤時執行

安裝homeassistant

#建立虛擬環境

cd ~

virtualenv homeassistant

cd homeassistant

source bin/activate

pip3 install --upgrade homeassistant

安裝node-red,炒雞好用的圖形程式設計工具,有了這個你再也不會去摸homeassistant那蹩腳的指令碼了。

node-red 通過npm安裝,另外編譯過程中需要cc,還得在/usr/bin/下面建立乙個符號鏈結cc到gcc上面去。安裝中會報錯說找不到lpthread,因為這個函式在musl裡已經被打包進libc.so,編譯器肯定會找不到這個庫,需要執行ar建立乙個來欺騙編譯器通過。

ln -s /usr/bin/gcc /usr/bin/cc

ar -rc /usr/lib/libpthread.a

npm的官方源實在是太慢了,切換到阿里的映象上

npm config set registry  --global

npm config set disturl --global

安裝node-red以及配套的homekit和homeassistant外掛程式。劃重點,這裡的--unsafe-perm很重要,不帶會出現各種permission denied。npm有個奇怪的邏輯,根據官方doc描述,如果用root使用者執行npm他會進行降權,結果許可權就會變成nobody造成目錄無法訪問。

npm install -g --unsafe-perm node-red

npm install -g --unsafe-perm node-red-contrib-homekit

npm install -g --unsafe-perm node-red-contrib-home-assistant

cd ~

source bin/activate

自此,路由器側所需的全部軟體包準備就緒。

1.hass啟動指令碼

#!/bin/sh /etc/rc.common

# /etc/init.d service script for home assistant

start=99

pre_exec="source /root/homeassistant/bin/activate;"

hass_bin="hass"

pid_dir="/var/run"

pid_file="$pid_dir/hass.pid"

config_dir="/root/.homeassistant"

log_dir="/root/.homeassistant"

log_file="$log_dir/home-assistant.log"

flags="-v --config $config_dir --pid-file $pid_file --log-file $log_file --daemon"

start()

stop()

2.node-red啟動指令碼

因為直接啟動node程式會存在無法守護的問題,所以實際上用了forever來啟動

npm install -g --unsafe-perm forever
system v init指令碼如下

#!/bin/sh /etc/rc.common

# /etc/init.d service script for node-red

# file name node-red

start=99

forever_bin="node /usr/bin/forever"

pid_file="/var/run/node-red.pid"

user_dir="/root/.node-red"

port=1880

flags="--userdir $user_dir --port $port"

restart()

start()

stop()

逆向工程 0x02

常用的彙編指令 指令示例 含義說明 movmov eax,ecx eax ecx 將ecx的值存入eax addadd eax,ecx eax ecx 將eax的值加上ecx的值 subsub eax,ecx eax ecx 將eax的值減去ecx的值 incinc eax eax 將eax的值加1...

招聘程式設計題0x02

python3 coding utf 8 在4x4的棋盤上擺滿了黑白棋子,黑白兩色的位置和數目隨機其中左上角座標為 1,1 右下角座標為 4,4 現在依次有一些翻轉操作,要對一些給定支點座標為中心的上下左右四個棋子的顏色進行翻轉,請計算出翻轉後的棋盤顏色。給定兩個陣列a和f,分別為初始棋盤和翻轉位置...

科協預招新0x02

恭喜大家通過了智慧型車的預招新 以下是第二次的小作業,希望在一月前上交相應學長。硬體部分在完成原理圖以及pcb設計後,聯絡學長,帶你去完成,一款從畫圖到成品都由你親手製作的腐蝕電路板,實現相應的功能。想想就有成就感 使用微控制器 51,32都可,不限制微控制器型別 分別實現功能。若對題目有疑問可以聯...