silos-monitoring-dashboard

ThingsBoard IOT Dashboard บน Centos 7

ติดตั้ง thingsboard บน centos 7 และใช้งานร่วมกับ postgresql มีขั้นตอนดังนี้
1). ติดตั้ง java 8

เปิด firewall

2). ติดตั้ง postgresql

3). ตั้งค่า config

4) สร้างฐานข้อมูล

5) ติดตัง thingsboard

6) config

ตั้งค่า memory

ตั้งค่า crontab ให้มีการ restart service เวลา 9.00 am, 21.00 pm

7). หลังจากติดตั้งเรียบร้อย ให้run script

เปิด http://your-ip::8080

ติตตั้ง Arduino IDE บน Fedora 27

หลังจากติดตั้ง ide บน window 10 แล้ว แต่การติดตั้ง บน fedora 27 ไม่จำเป็นต้อง Download แต่สามารถติดตั้งผ่านทาง repository ได้ทันที และต้อง เพิ่ม user ในกลุ่ม uucp,dialout,lock

หลังจาก reboot


 

Pull-up Pull-down คืออะไร

เมื่อมีการกำหนด pin ให้มีเป็น ขา INPUT แต่เมื่อไม่มีการต่อกับภายนอก โปรแกรมก็จะไม่สามารถกำหนดสถานะ (State of pin) อย่างชัดเจน เรียกว่าสถานะการนี้ว่า floating อาจเป็น HIGH หรือ LOW บอกได้ยาก เพื่อป้องการไม่เป็น unknown state จึงมีการใช้งาน pull-up (to vcc) หรือ pull-down (to ground) resistor
การต่อแบบ Pull-ups resistor ร่วมกับ button

เมื่อ pull-up resister เมื่อไม่มีการกดปุ่มกระแสจะไหล จาก VCC ไปสู่ input pin ทำให้ค่าที่อ่านได้ จะมีค่าใกล้เคียง กับ VCC แต่เมื่อมีการกดปุ่ม จะทำให้กระแสไหลลง ground และ input pin จะเชื่อม โดยตรงกับ Ground แต่หากไม่มีการใส่ตัว R1 resister (Resister มีหน้าที่ จำกัดกระแสที่ยอมให้ไหลผ่านวงจร) ไว้ในวงจร จะทำให้เกิดความเสียหาย เพราะเป็นการ short circuit (ประมาณกระแส จะเป็น infinity ตามหลักของ Ohm’s law

การเลือกค่า pull-up resister ที่เหมาะสม
เมื่อกำหนดให้มีค่า resister ต่ำ จะทำให้มีกระแส ไหลสูง ในทางกลับกันหาก มีการใช้ค่า resister จะมีการไหลของกระแสต่ำ ดังนั้นการกำหนดการใช้งานจะต้องคำนึงถึงองค์ประกอบสองส่วน

  1. เมื่อมีการกดปุ่ม input pin (pulled down) จะเชื่อมต่อกับ ground  ขนาดของตัวต้านทาน R1 จะเป็นตัวกำหนดกระแสที่ไหลจาก vcc  ผ่าน button ไปยัง ground
  2.  เมื่อไม่มีการกด (pulled high) ขนาดของ R1 ก็เป็นการกำหนดกระแสที่ไหลเข้าสู่ pin

ค่าที่เหมาะสมจะต้องมีขนาดที่มากพอที่ไม่ทำอันตรายกับ MCU และ ไม่มากเกินไป จนไม่สามารถอ่านค่าได้ โดยทั่วไปค่าขนาดที่เหมาะสม ประมาณ 10 k ohm สำหรับ ATmega328 สามารถ เปิดการใช้งาน pull-up register ได้ด้วย
pinMode(5, INPUT_PULLUP); // Enable internal pull-up resistor on pin 5

ทดสอบ Pullup
ต่อวงจรตามรูปด้านล่าง สายสีดำจะเชื่อมกับ ground และเชื่อมกับขาข้างหนึ่งของ switch และขาอีกข้างหนึ่งของ switch ให้ต่อกับขาที่ pin2

arduino code

 

เข้าใจ ขา pinout ของ Arduino

ก่อนอื่นเรามาทบทวน spec ของ board arduino uno ที่ใช้ ATmega328p

Techinical Specification

Microcontroller: ATmega328P
Operating Voltage: 5v
Input Voltage: 7-20v
Digital I/O Pins: 14 (of which 6 provide PWM output)
Analog Input Pins: 6
DC Current per I/O Pin: 20 mA
DC Current for 3.3V Pin: 50 mA
Flash Memory: 32 KB of which 0.5 KB used by bootloader
SRAM: 2 KB
EEPROM: 1 KB
Clock Speed: 16 MHz
Length: 68.6 mm
Width: 53.4 mm
Weight: 25 g

ในการพัฒนา นั้นผู้พัฒนาต้องทำความเข้าใจเกี่ยวกับการใช้งาน pinout ของ Arduino เนื่องจากส่วนมากนักพัฒนาจะพัฒนาผ่าน IDE จะมีการอ้างอิงตาม Arduino pin ที่สามารถสังเกตุการใช้งานได้จาก label บน board ได้เลย จากรูปด้านล่างจะเห็นการ mapping ระหว่าง Arduino pin และ ATmega328p

ลองมาเปลี่ยน มุมมองบน board จริง เพื่อทำความเข้าใจ

เมื่อนำมาเขียน code ตามตัวอย่าง blink

LED_BUILTIN คือค่าคงที่ ให้มีเชื่อมกับ pin 13 จะแสดงผลเป็น ไฟกระพริบ onboard โดยตรง

pinMode(LED_BUILTIN, OUTPUT)  ฟังก์ชั่น pinMode() มีหน้าที่กำหนดให้ pin 13 ทำหน้าเป็น  OUTPUT และจะใช้คำสั่งต่อมา คือ digitalWrite()  กำหนดให้เป็น HIGH หรือ LOW

จะเป็น INPUT/OUTPUT จะเป็น High ถ้า

  • ค่า Voltage มีค่ามากกว่า 3.0 v สำหรับ board 5v
  • ค่า Voltage มีค่ามากกว่า 2.0 v สำหรับ board  3.3v  (เช่น esp8266,esp32)

Syntax ของ pinMode

pinMode(pin, mode)

Parameters

pin: ตำแหน่งของ pin ที่ต้องการตั้งค่า

mode: สามารถกำหนดได้เป็น INPUT, OUTPUT, หรือ INPUT_PULLUP

Arduino ได้กำหนดให้มี pullup resisters ภายใน มีขนาด 20k ohm และสามารถ enable ให้ทำงานด้วย option INPUT_PULL ทำให้ pin จะมีสถานะ เป็น HIGH (+5V) เมื่อไม่มีสัญญาณ input เข้า และ จะมีค่าเป็น LOW เมื่อ input เข้า (Senser on จะเป็น LOW, Senser off จะเป็น HIGH) โดยส่งผลให้มีการ กลับกัน เมื่อกำหนดค่าเป็น option INPUT

เริ่มต้นใช้งาน Arduino IDE Windows 10

การเริ่มต้นการพัฒนา Arduno uno นั้นต้องมีการติดตั้ง IDE โดย ไปยังหน้า Download Download page เลือกทำการ Download installer (exe) หรือ zip packages แนะนำให้โหลด install เพื่อทำการติตตั้งโดยตรง เพราะจะทำการติตตั้ง ide และ driver ที่จำเป็นในคราวเดียวกัน เมื่อทำการ Download เรียบร้อย ก็ให้ดำเนินการติดตั้งดังนี้
ยอมรับ License

เลือกติดตั้งทั้งหมด

เลือก folder สำหรับการติดตั้ง


ติดตั้ง Adafruit Industries

ติดตั้ง USB driver


สิ้นสุดการติดตั้ง

เปิด ide

เชื่อมต่อ port

เลือก Board Arduino Uno

หากเลือก port ไม่ตรงก็แสดง error