- 12
- 32 519
เขียนโปรแกรมเรื่องง่าย by นายโต้ง
Thailand
เข้าร่วมเมื่อ 18 เม.ย. 2020
ช่องความรู้ แนะนำการพัฒนา Open Source Software (Arduino, Raspberry pi, Python) ผ่านการเรียนรู้แบบ Trial and Error เพื่อนำไปพัฒนาต่อยอด
Arduino Modbus RTU | EP.3 แนะนำการใช้งาน Arduino Modbus RTU Master (พร้อมตัวอย่าง)
แนะนำการใช้งาน Arduino Modbus RTU Master เพื่อให้ Arduino สามารถดึงข้อมูลจากอุปกรณ์ที่มีมาตรฐานการสื่อสารผ่าน Modbus RTU Protocol
อุปกรณ์ที่ใช้
1. Arduino uno
2. TTL to RS485 : AC-3B485 จาก www.smicrothai.com/smicro_9.php
3. USB to RS485 : www.arduinoall.com/product/572/usb-to-rs485-usb-485-converter-adapter
4. Modbus Simulator : ModRSim2
5. Modbus Library : github.com/4-20ma/ModbusMaster
อุปกรณ์ที่ใช้
1. Arduino uno
2. TTL to RS485 : AC-3B485 จาก www.smicrothai.com/smicro_9.php
3. USB to RS485 : www.arduinoall.com/product/572/usb-to-rs485-usb-485-converter-adapter
4. Modbus Simulator : ModRSim2
5. Modbus Library : github.com/4-20ma/ModbusMaster
มุมมอง: 16 167
วีดีโอ
Python using OpenCV | EP5. แนะนำการใช้ Python OpenCV อ่านค่า Analog Gauge (พร้อมตัวอย่าง)
มุมมอง 1.7K4 ปีที่แล้ว
แนะนำการใช้งาน Python OpenCV อ่านค่า Analog Gauge Source Code : github.com/intel-iot-devkit/python-cv-samples
Arduino + I2C LCD | EP.2 สอนการใช้งาน 20x4 I2C LCD (สำหรับมือใหม่)
มุมมอง 2.2K4 ปีที่แล้ว
สอนการใช้งาน LCD 20x4 I2C Module เพื่อแสดงค่าความชื้นและอุณหภูมิจาก DHT11 Sensor
10 Arduino Project Ideas | ไอเดียการสร้าง Arduino Project
มุมมอง 3324 ปีที่แล้ว
10 Arduino Project Ideas : ไอเดียการสร้าง Arduino Project แหล่งที่มาคลิปต้นฉบับ 1. Arduino Flip clock : th-cam.com/video/HZ1vyH5v_HY/w-d-xo.html 2. Best Arduino Projects (13) (Intermediate level) : th-cam.com/video/raekOEvEcXk/w-d-xo.html 3. CarWash control with Arduino : th-cam.com/video/qRlG5yZJN38/w-d-xo.html 4. DIY Traffic Counter - Road Tube : th-cam.com/video/x1HM3IvExJE/w-d-xo.html 5. He...
Raspberry pi modbus RTU | EP.1 ตัวอย่างการใช้งาน Python ใน Raspberry Pi (ใช้งานจริง)
มุมมอง 1.4K4 ปีที่แล้ว
ตัวอย่างการใช้งาน Python ใน Raspberry Pi เพื่ออ่านค่ากระแสไฟฟ้า จากบอร์ด Analog Input ผ่าน Modbus RTU Protocol
Arduino + DHT11 | EP.1 สอนการใช้งาน DHT11 อ่านค่าอุณหภูมิและความชื้น (สำหรับมือใหม่)
มุมมอง 2K4 ปีที่แล้ว
สอนการใช้งาน Arduino อ่านค่าอุณหภูมิและความชื้นจาก DHT11 แบบง่ายๆสำหรับมือใหม่หัดเขียนโปรแกรม
Python using BeautifulSoup | EP.4 สอนการใช้งาน Python ดึงข้อมูล Website (อัตโนมัติ) แบบง่ายๆ
มุมมอง 1.6K4 ปีที่แล้ว
สอนการใช้งาน Python Beautifulsoup ดึงข้อมูลราคาทองคำและแจ้งเตือนไปยัง Line Notification แบบอัตโนมัติ
Python using Beautifulsoup | EP.3 สอนการใช้งาน Python ดึงข้อมูล Website แบบง่ายๆ (ใช้งานได้จริง)
มุมมอง 3.4K4 ปีที่แล้ว
สอนการใช้งาน Python BeautifulSoup เพื่อดึงข้อมูลจาก ราคาทองคำประจำวันจาก Website มายังโปรแกรม Python และแจ้งไปยัง Line Notification
ESP8266 COVID-19 JSON REST API | EP.1 อัพเดทสถานการณ์ Covid แจ้งเตือนผ่าน Line (เข้าใจง่าย)
มุมมอง 5354 ปีที่แล้ว
แนะนำการเขียนโปรแกรม ESP8266 (Node MCU) อัพเดทสถานการณ์ Covid-19 จาก Covid-19 JSON REST API และแจ้งเตือนผ่าน Line Notification
ESP32 COVID-19 JSON REST API | EP.1 อัพเดทสถานการณ์ COVID-19 แจ้งเตือนผ่าน Line (เข้าใจง่าย)
มุมมอง 8444 ปีที่แล้ว
แนะนำการเขียนโปรแกรม Arduino ESP32 อัพเดทสถานการณ์ COVID-19 แบบ Realtime จาก COVID-19 JSON REST API และแจ้งเตือนผ่าน Line Notification
Python using PythonAnywhere | EP.2 อัพเดทสถานการณ์ Covid-19 และแจ้งเตือนผ่าน Line (แบบอัตโนมัติ)
มุมมอง 1.1K4 ปีที่แล้ว
แนะนำการใช้งาน PythonAnywhere : เขียนโปรแกรม Python อัพเดทสถานการณ์ Covid-19 ผ่าน Line Notification แบบอัตโนมัติ ไม่ต้องติดตั้งบนคอมพิวเตอร์ คลิปตอนที่แล้ว th-cam.com/video/ua1x54x5HOk/w-d-xo.html
Python using JSON web API | EP.1 อัพเดทสถานการณ์ Covid-19 และแจ้งเตือนผ่าน Line Notify
มุมมอง 1.3K4 ปีที่แล้ว
Code โปรแกรม Python import requests r = requests.get('covid19.th-stat.com/api/open/today') print("UpdateDate : ", r.json()['UpdateDate']) print("Confirmed : ", r.json()['Confirmed']) print("NewConfirmed : ", r.json()['NewConfirmed']) print("NewDeaths : ", r.json()['NewDeaths']) # Code for Line Notification url = 'notify-api.line.me/api/notify' token = 'Line Token' # Token from Line Notify heade...
สามารถอ่านจากคลิปวีดิโอได้ไหมครับ
ขอ code ตัวอย่างได้มั๊ยครับ kaki_kh@hotmail.com
ผมใช้max232 แทน ttl to rs485 อัพลงบอดได้แล้วแต่มันไม่อ่านค่าเลยครับ
ทำผ่าน pycharm ได้ไหมคะ
อยากติดต่อสอบถามครับ
อาจารย์ครับ ถ้าเราจะให้ ทางฝั่ง Arduino เป็น slave แล้ว เรามี library ของ modbus rtu slave ในฝั่ง arduino มั๊ย ครับ
รบกวนขอ Code เพื่อใช้กับ Arduino Mega 2560 ด้วยครับ..
ตัวแปรอะเรย์ Data_Modbus[xx] ค่าสูงสุดของ xx กำหนดได้กี่ค่าครับ?
รบกวนขอcodeตัว Master และ Slave ด้วยครับ
คิดค่าสอนเท่าไรครับ
จอ 20×4 จะทำเป็นสองบรรทัด ตัวอักษรใหญ่ได้ไหมครับ
ขอบคุณอย่างสูงเลยครับ
ผมเอามาใช้กับ PM2200 ได้ไหมครับ
ใช้ได้ครับ แต่ต้องรู้ modbus address ครับ
สวัสดีครับ รบกวนขอความรู้ หากต้องการนำข้อความจาก ไลน์ ไปค้นหาจากเว็ปไซต์ แล้วทำข้อมูลมาแสดง ต้องทำอย่างไรครับ
มีแนวทางเขียน code slave ไหมครับ ขอบคุณมากครับ
มีรับสอน modbus ส่วนตัว ไหมครับ?
ขอโค้ดตัวอย่างหน่อยครับ teerawa77@gmail.com
สุดยอกมากครับ ผมขอโค้ชมาศึกษาต่อได้มั้ยครับ itsariya.2213@gmail.com
ขอโค๊ดตัวอย่างหน่อยครับพีทั้ง master แล้วก็ slave เลยครับ nipat40211aon@gmail.com ครับ ขอคุณล่วงหน้าครับพี่
ขอดู code หน่อยได้มั้ยครับ
line token copyมาจาตรงไหนครับ
ลองดูตามนี้เลยครับ medium.com/dev2pro/%E0%B8%97%E0%B8%B3-line-notify-%E0%B8%81%E0%B8%B1%E0%B8%99%E0%B9%84%E0%B8%AB%E0%B8%A1-4a2a7d62ac05
ผมลองเปลี่ยนค่าใน database แล้ว เลขที่ใช้ python ดึงเข้ามา ไม่เห็นเปลี่ยนเลยครับ
ใช้ดึงค่ามาจากไหนและอะไรคือ database ครับ
พี่ครับผมเขียนมัน erorr รบกวนขอโค้ดด้วยครับ suriya88520@gmail.com ขอบคุณครับ #include <ModbusMaster.h> #include <SoftwareSerial.h> ModbusMaster node; SoftwareSerial mySerial(6,7); float Data_Modbus[5]; void setup() { Serial.begin(19200); mySerial.begin(9600); node.begin(1, mySerial); } void loop() { Data_Modbus[0] = ReadModbus16bits(1, 0); Data_Modbus[1] = ReadModbus16bits(1, 1); Serial.println(""); Serial.println("Address 0 Value : " + String(Data_Modbus[0])); Serial.println("Address 1 Value : " + String(Data_Modbus[1])); delay(1000); } float ReadModbus16bits(char addr , uint16_t REG);{ float i = 0; uint8_t j; uint16_t result; uint16_t data[1]; uint16_t value = 0; node.begin(addr,mySerial); result = node.readHoldingRegisters (REG,1); delay(50); if(result == node.ku8MBSuccess){ for (j = 0; j < 1; j++) { data[j] = node.getResponseBuffer(j); } value = data[0]; i = value; return i; } else{ Serial.print("Connec modbus fail.REG >>>"); Serial.println(REG,HEX); delay(500); return 0; } }
อันนี้ยังไม่ได้ลองเขียนค่ากลับไปใช่ไหมครับ
ยังไม่ได้เขียนค่ากลับครับผม
@@by4972 สอนเขียนกลับหน่อยครับ
เยี่ยมมากเลยคับ ขอบคุณคับ
can you share your code of how you implemented this protocol in python , thanks
Thanks for your interesting and sorry for late response i will send code to your email.
@@by4972 bilalhassan12374@gmail.com
คำสั่ง pip install ไปติดตั้งตรงไหนครับ
ติดตั้งใน command line ครับ
@@by4972 มันขึ้นแบบนี้ครับ Fatal error in launcher: Unable to create process using '"c:\python38\python.exe" "C:\Python38\Scripts\pip.exe" install BeautifulSoup4': The system cannot find the file specified.
@@by4972 ของผมรันจาก windows ครับ
มีประโยชน์มากครับ..
ขอบคุณครับผม
ขอถามหน่อยครับถ้าผทใช้findAll แล้วตอนprint มันออกแค่text แรกอะครับถ้าอยากได้textที่2ทำไงครับเพราะชื่อ classเหมือนกันเลย
รบกวนส่ง code ไว้แล้วผมค่อยตรวจสอบให้ครับ
@@by4972 github.com/santiphap22/-
@@santiphapsamosorn1067 Code ตามนี้ครับ from urllib.request import urlopen as req from bs4 import BeautifulSoup as soup url = "ddc.moph.go.th/viralpneumonia/" webopen = req(url) pange_html = webopen.read() webopen.close() #print(pange_html) data = soup(pange_html,'html.parser') #print(data) temp = data.findAll('h4',{'class':'txt'}) #print(temp) result1= temp[0].text result2= temp[1].text print("ผู้ติดเชื้อสะสม : " + temp[0].text) print("ผู้ติดเชื้อวันนี้ : " + temp[1].text) print("รุนแรง = " + temp[2].text) print("เสียชีวิต = " + temp[3].text) print('ผู้ติดเชื้อสะสม: {} ผู้ติดเชื้อวันนี้: {}'.format(result1,result2))
พอจะส่งโปรแกรม Modbus sim กับCode ตั้งArduino เป็น slaveให้ได้ไหมครับ kittipich.siripongvaree@hotmail.com
มีประโยชน์มากครับ ขอบคุณครับ
ขอบคุณครับ
ถ้าต้องการเขียนไป modbus ทำไงครับ ขอบคุณครับ
สองถามหน่อยครับผมทำโปรเจครับค่า input จาก generator ถ้าเครื่องสตารท์ให้แต้งเตือนทางไลน์ แต่ input มันจะปล่อยมาตลอดเวลา มันเลยให้ไลน์แจ้งเตือนตลอด ผมอยากให้มันแจ้งเตือนครั้งเดียวต้องทำอย่างไรครับ
แนะนำตามนี้ครับ เมื่อส่งแล้วไม่ต้องส่งซ้ำ โดยผมสร้างตัวแปร MessageUpdate ไว้ ตอนเริ่ม Run Program กำหนดให้ MessageUpdate = 0, ดังนั้นโปรแกรมจะวิ่งเข้าลูปที่ 2 ไปตรวจสอบว่า Engine Start หรือยัง ถ้า Start แล้วก็ให้แจ้ง Message ทาง Line หลังจากนั้นจึง Update ตัวแปร MessageUpdate = 1 เมื่อตัวแปร MessageUpdate = 1 ก็จะไม่เข้าไปส่งสถานะ Engine Start ซ้ำอีก If MessageUpdate = 0 If engine_start = 1 Send Message…. MessageUpdate = 1 end End # MessageUpdate = 0 >> จะกำหนดอีกครั้งเมื่อ Engine Stop
@@by4972 บอบคุณครับพี่เดี๋ยวจะไปลองดูครับ
@@by4972 สอบถามเพิ่มเติมครับพี่จะดึงเวลามาแจ้งเตือนด้วยต้องทำไงครับ
ถ้าใช้ nodemcu หรือ esp32 สามารถดึงเวลาจาก internet แล้วส่งมาพร้อมกับสถานะ engine start ได้ครับ
montienfocus.blogspot.com/2016/06/internet-esp8266.html
ไม่มี code แจก หรือครับ
apisak2514@yahoo.co.th ขอบคุณครับ
ส่งให้แล้วครับ
มี code เขียนไป modbus ไหมครับ หรือ อ่านได้อย่างเดียวครับ
พี่ครับ แล้วถ้าเราตั้งเวลาเป็นเดือนละครับ หรือแบบ 3วัน แจ้งที มันได้ไหมครับ
ผมดูจาก web pythonanywhere กำหนดได้เป็น daily แต่ถ้าอยากได้อาทิตย์ละครั้ง อาจจะกำหนดในเงื่อนไขในโปรแกรม python ได้ครับ เช่น ส่งทุกวันจันทร์ เป็นต้น ส่วนใน pythonanywhere ก็กำหนด task ให้ run เพื่อตรวจสอบทุกวัน (แต่จะไม่แจ้งทางไลน์ทุกวัน เนื่องจากเรากำหนดให้ส่งเฉพาะวันจันทร์ )
ขอ Code ตัวอย่างหน่อยครับ
wichian4406@gmail.com
ส่งให้แล้วครับ
พี่ครับ ผมขอ code ตัวอย่างเชื่อมต่อกับ slave หน่อยครับ Email : Phitthaya.yawi@bumail.net ขอบคุณครับ
ส่งเมล์ให้แล้วนะครับผม
ขอบคุณครับได้รับแล้วครับ พี่ครับถ้าผมใช้บอร์ด mega 2560 เป็น mater ต้องปรับเปลี่ยนcodeตรงไหนบ้างครับ
@@by4972 ขอด้วยคนนะครับ aekk123-456@hotmail.com
ส่งให้แล้วครับผม
@@by4972 ขอ code slave ด้วยคนครับ sukrit.ktit@gmail.com
ผมเขียนตามแล้วครับ ,มัน erorr ตรง Data_Modbus[0] = ReadModbus8bits(1, 0); Data_Modbus[1] = ReadModbus8bits(1, 1); error exit status 1 'readHoldingRegisters' was not declared in this scope
ขอดูโค้ดเต็มๆหน่อยครับ
@@by4972 #include <ModbusMaster.h> #include <SoftwareSerial.h> ModbusMaster node; SoftwareSerial mySerial(6,7); float Data_Modbus[5]; void setup() { Serial.begin(19200); mySerial.begin(9600); node.begin(1,mySerial); } void loop() { Data_Modbus[0] = ReadModbus8bits(1, 0); Data_Modbus[1] = ReadModbus8bits(1, 1); Serial.println(""); Serial.println("Address 0 Value" = + String(Data_Modbus[0])); Serial.println("Address 1 Value" = + String(Data_Modbus[1])); } float ReadModbus8bits(char addr, uint8_t REC); { float i = 0; uint8_t j; int8_t result; int8_t data[1]; int8_t Value = 8; node.begin(addr, mySerial); result = node.readHoldingRegisters (REG,5); delay(1000); if (result == node.ku8MBSuccess); { for (j = 0; j < 1 j++) { data[j] =node.getResponseBuffer(j); } Value = data[0]; i = Value return 1; } elif { Serial.print("Connec fail REC >>>>"); Serial.println(REC, HEX); delay(1000); return 0; } }
@@by4972 อ.โต้ง มีเฟสบุ๊ค หรือเปล่าครับขอคำปรึกษาหน่อยได้หรือเปล่าครับ
rooster diy ครับ
@@sharing6507 ทำยังไงครับของผมก็ขึ้น erorr
คลิปดีมากเลยครับ
ขอบคุณครับ
รอ slave อยู่ครับผม เคยใช้แต่ ตัวที่ตัวคุม RE DE จะลองซื้อมาทดลองบ้าง
เดี่ยวจะรีบจัดให้ รอติดตามได้เลยครับผม
@@by4972 ขอบคุณครับพี่
ขออีเมล์หน่อยครับ จะส่งตัวอย่างให้ ไม่มีเวลาทำคลิปเลยครับ
@@by4972 manza12298@gmail.com ครับผม
รับเขียนโปรแกรม แจ้งเตือนราคาหุ้น Line Notify ดึงข้อมูลจาก Excel RTD ไหม ครับ
สามารถส่งรายละเอียดมาให้ดูก่อนได้ครับ pro.nattasit@gmail.com
แบบ slave ลองยังคับ ใช้ libary ตัวไหนคับ
เคยลองทำครับ จะอัพเดทให้อีกทีครับ
หากเพื่อนๆท่านใดมีข้อสงสัย ติชม สามารถคอมเมนต์ลงในช่องคอมเมนต์ได้นะครับ
โจทย์ ข้อนี้ต่อลักษณะเดียวกันได้ไหมครับ eleceasy.com/t/code-arduino-ec-sensor/3894/6?u=remy_martin
ถ้าอุปกรณ์นั้นเป็น modbus protocol ก็ลักษณะเดียวกันครับ ทดลองเอา usb to rs485 ต่อกับอุปกรณ์ผ่านขา A+, B- และลองอ่านค่าด้วย modbus simulator program ดูครับ ถ้าอ่านได้แสดงว่าสามารถใช้ arduino อ่านด้วย modbus rtu ได้ครับ
@@by4972 อันกลับทางกันครับ ใช้ arduino อ่านค่ากลับมาจาก เซนเซอร์ เราใช้ เสียบที่ Tx Rx ของ Arduino เลยใช่ไหมครับ
ต้องถามก่อนว่า output ที่ออกมาจาก sensor คืออะไรครับ จากที่ผมดูอุปกรณ์ประกอบด้วย 2 ส่วน คือ 1. sensor ใช้อ่านค่าที่ต้องการวัด 2. Trasnmitter แปลงค่าจาก sensor ไปเป็น modbus rtu protocol หาก output ของ sensor เป็น 4-20ma หรือ 0-5V ก็ใช้ arduino อ่านค่าผ่าน analog input ครับ ถ้าเป็นกรณีนี้จะต่อเข้าที่ Rx และ Tx ไม่ได้ครับ
@@by4972 อ่อครับขอบคุณครับ
สามารถระบุเวลาที่แน่นอนได้ไหมครับ สมมุติว่าแจ้งเตือนวันละครั้งเวลา 08.00 น
ขอแนะนำการใช้งานโดย PythonAnywhere ครับ เป็นการนำไฟล์ python ไปไว้บน server และกำหนด Task ให้รันตามเวลาที่กำหนด โดยไม่ต้องเปิดคอมพิวเตอร์ของเราทิ้งไว้ สำหรับตัวอย่างการใช้งาน PythonAnywhere สามารถศึกษาได้จาก EP.2 ครับ
โค้ดสวยงาม เป็นระเบียบ ศึกษาตามได้เข้าใจง่ายมากครับ
ขอบคุณครับ
หากเพื่อนๆท่านใดมีข้อสงสัย ติดชม สามารถคอมเมนต์ได้นะครับ
หากเพื่อนๆมีข้อสงสัย ติชม สามารถคอมเมนต์ได้นะครับ LCD I2C Library : www.thaieasyelec.com/downloads/EFDV561/LiquidCrystal_I2C.zip
COOL & pretty awesome job buddy i will suppourt you as much as possible for me beacause we have similar passion and channel contents and i subscribed your too....anyways all the very best buddy
Thanks sir. I work with coding for 2-3 years via trial and error and I just creat my youtube channel to share my ideas in arduino, python and raspberry pi.
This looks amazing😀😇😁 Big Like
thanks
หากเพื่อนๆมีข้อสงสัย ติชม สามารถคอมเมนต์ในช่องคอมเมนต์ได้นะครับ