วันอังคารที่ 18 กันยายน พ.ศ. 2561

ติดตั้ง nodejs, nodered, mqtt broker, mongodb บน rpi

ติดตั้ง node js
1. sudo apt-get update
2. ให้ไป download Linux Binaries (ARM) จากที่นี่มา https://nodejs.org/en/download/ ให้เลือกให้ตรงกับ rpi ของเราว่าเป็น ARM รุ่นไหน สามารถทดสอบได้โดยพิมพ์ uname -m ใน rpi
ในกรณีของผม เป็น ARMv6 download file ลงมาเป็นชื่อ node-v8.12.0-linux-armv6l.tar.xz 
3. copy file ไว้ใน rpi
4. แตก file โดยใช้คำสั่ง tar -xvf node-v8.12.0-linux-armv6l.tar.xz 
5. cd node-v8.12.0-linux-armv6l
6. sudo cp -R * /usr/local/
7. node --version เพื่อดู version
8. npm --version เพื่อดู version
9. sudo apt-get install -y nodejs

ติดตั้ง node red
1. sudo npm install -g --unsafe-perm node-red
2. sudo npm install -g node-red-admin
3. พิมพ์ node-red เพื่อ start node red, ให้ลองเปิด browser แล้วใส่ ip:1880 ต้องเข้า node red ได้

ทำ auto start เมื่อ boot
1. nano nodered.service
2. ใส่ข้อความต่อไปนี้ลงไป

[Unit]
Description=My service
After=network.target

[Service]
ExecStart=/usr/bin/env node-red-pi $NODE_OPTIONS $NODE_RED_OPTIONS
WorkingDirectory=/home/pi
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi

[Install]
WantedBy=multi-user.target


3. save แล้วปิด
4. sudo cp nodered.service /etc/systemd/system/nodered.service
5. sudo systemctl enable nodered.service
6. sudo systemctl daemon-reload
7. sudo systemctl start nodered.service
8. sudo systemctl status nodered.service ต้องไม่มี Error

ป้องกัน node red จากคนอื่น ด้วยการทำ Authentication
1. node-red-admin hash-pw ให้ใส่ password ลงไป มันจะสร้างชุดข้อมูลมาชุดนึง ให้ copy ไว้
2. nano .node-red/settings.js ให้หาคำว่า adminAuth แล้ว uncomment ออกทั้งชุดปีกกา, แล้วใส่ password ใหม่ลงไป
    adminAuth: {
        type: "credentials",
        users: [{
            username: "admin",
            password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            permissions: "*"
        }]
    },

3. sudo service nodered stop
4. sudo service nodered start
5.ให้เปิด browser แล้วเข้า localhost:1880 คราวนี้จะมีการให้ใส่ user name และ password
ให้ใส่ user name = amin และ password ตามที่เราตั้งไว้ 
6.ติดตั้ง dashboard, npm install node-red-dashboard
(https://www.youtube.com/watch?v=RA06ee3jahM )

ติดตั้ง mqtt broker
1. sudo apt-get install mosquitto mosquitto-clients
2. sudo mosquitto_passwd -c /etc/mosquitto/passwd pi
3. ใส่ password ลงไป
4. sudo nano /etc/mosquitto/conf.d/default.conf
5. ใส่ข้อความต่อไปนี้ลงไป
allow_anonymous false
password_file /etc/mosquitto/passwd

6. sudo systemctl restart mosquitto
7.ทดสอบ โดยเปิด terminal แล้วพิมพ์
mosquitto_sub -t "test" -u "pi" -P "passwdที่เราตั้งไว้"
8.แล้วเปิด terminal อีกอันขึ้นมาใหม่ พิมพ์
mosquitto_pub -t "test" -u "pi" -P "passwdที่เราตั้งไว้" -m "hello world"
จะเห็นข้อความที่ส่งจาก pub ไปที่ sub ว่า "hello world"

ติดตั้ง mongoDB
1. sudo apt-get install mongodb-server
2. sudo service mongodb start

ทำให้ node red รู้จัก mongodb
1. cd ~/.node-red/
2. sudo npm install node-red-node-mongodb
3. sudo service mongodb stop 
4. sudo service mongodb start
5. sudo service nodered stop
6. sudo service nodered start

ถ้าต้องการใช้งาน gpio ของ rpi ให้ทำดังนี้
ไปที่ manage palette

 เลือก tap install
ให้พิมพ์ gpio แล้วกด istall ที่ตัว node-red-node-pi-gpio

 

ไม่มีความคิดเห็น: