Nodemcu-เลี้ยงไก่-ปลูกผักกินเอง(ตอน4)

11-12ตค 65
ได้เริ่มทำที่หน้างาน
งาน1
ได้ทำ voltage divider เพื่อติดตามไฟ12V และแจ้งใน Blynk
เพราะ ไฟ12V ต้องใช้ในการหมุนมอเตอร์ปล่อยอาหารไก่,หมุนพัดลมระบายอากาศของระบบฟักไข่ และต้องใช้ในcapacitive sensor ของอาหารไก่
ต่อไปอาจทำโค้ด ที่เกี่ยวข้องไฟ 12V เพิ่มอีกก็ได้
วงจร
ตามที่เว๊บแนะนำแบบนี้


xxxx
แต่ที่ต่อจริงแบบนี้ เพราะ อุปกรณ์ไม่ครบ

ก็เวอร์กครับ ไดโอดกำลังสั่ง ค่อยต่อภายหลังครับ
โค้ด
เนื่องจาก timer แรกผมใช้เกิน 12 task แล้ว
ผมต้องเพิ่ม timer2 ครับ

......
.....
BlynkTimer timer;
BlynkTimer timer2;
......
.....
//V72(volt12_transformer_average)
int volt12_monitor_pin33 = 33;
int volt12_monitor_pin33_value = 0;
int volt12_monitor_pin33_volt = 0;
unsigned long start_5min_interval_transformer_read_ms=0;
int volt12_transformer_average;
WidgetLED volt12_status_led_V71(V71);
......
.....
void setup() {
  // put your setup code here, to run once:
  ......
.....
   timer2.setInterval(1000L,volt12_monitor_task);
   timer2.setInterval(1000L,V71_sync);
......
.....
}

void loop() {
  // put your main code here, to run repeatedly:
     timer.run();
     timer2.run();
     Blynk.run();

}

//////////////////////////////
void volt12_monitor_task()
{//void volt12_monitor_task()
  volt12_monitor_pin33_value = analogRead(volt12_monitor_pin33);  //อ่านค่าสัญญาณ analog ขา33 เว็บไว้ในตัวแปร volt12_monitor_pin33_value
  Serial.print("volt12_monitor_pin33_value = "); // พิมพ์ข้อมความส่งเข้าคอมพิวเตอร์ "val = "
  Serial.println(volt12_monitor_pin33_value); // พิมพ์ค่าของตัวแปร 
  volt12_monitor_pin33_volt=((volt12_monitor_pin33_value*12.23)/3182);
  //volt12_status_led_V71  
  delay(500);
  //ถ้า ภายใน5นาที เฉลี่ย battery วัดได้ มากกว่า 9 ถือว่าปกติ  น้อยกว่า 9 V  transformerมีปัญหา
  Blynk.virtualWrite(V72,volt12_transformer_average);

  if ((millis()-start_5min_interval_transformer_read_ms)<300000)
  {//if ((millis()-start_5min_interval_transformer_read_ms)<300000)
      volt12_transformer_average=(volt12_transformer_average+volt12_monitor_pin33_volt)/2;
      Serial.print("volt12_transformer_average = "); // พิมพ์ข้อมความส่งเข้าคอมพิวเตอร์ "val = "
      Serial.println(volt12_transformer_average); // พิมพ์ค่าของตัวแปร 
    if (volt12_transformer_average>=9)
    {//if (volt12_transformer_average>=9)
      volt12_status_led_V71.on();
      Blynk.setProperty(V71,"color","#2EFE2E");//เชียว    Blynk.setProperty(V2,"color","#2EFE2E");// สีเขียว
      Serial.println("color,#2EFE2E สีเขียว"); // พิมพ์ค่าของตัวแปร 

    }//if (volt12_transformer_average>=9)
    else//if (volt12_transformer_average>=9)
    {//else if (volt12_transformer_average>=9)
      volt12_status_led_V71.on();
     Serial.println("V71,color,FF4000");//สีแดง"); // พิมพ์ค่าของตัวแปร 
      Blynk.setProperty(V71,"color","#FF4000");//สีแดง       Blynk.setProperty(V2,"color","#FF4000");// สีแดง    
    }//elseif (volt12_transformer_average>=9)
  
  }//if ((millis()-start_5min_interval_transformer_read_ms)<300000)
  else//if ((millis()-start_5min_interval_transformer_read_ms)<300000)
  {//else if ((millis()-start_5min_interval_transformer_read_ms)<300000)
    volt12_transformer_average=volt12_monitor_pin33_volt;   
    start_5min_interval_transformer_read_ms =millis();
   
  }//else if ((millis()-start_5min_interval_transformer_read_ms)<300000)

}//void volt12_monitor_task()
//////////////////////////////
void V71_sync()
{
  Blynk.syncVirtual(V71);
}
////

volt12_monitor_pin33_volt=((volt12_monitor_pin33_value*12.23)/3182);
มาจาก ผมเทียบวัดของจริงคือ วัดจากpin33 ได้ 3182 โดยที่วัดโวลต์มัลติมิเตอร์ ได้ 12.23 volts
ผลลัพธ์
ผมใส่ใน superchart จะมี ไฟ 5V อยู่แล้ว


ครบสูตรเลยครับ

ปัญหา
1.สายบัดกรี จาก รีเลย์เพื่อรับสัญญาณไฟ12V หลุด ทำให้มีการเติมอาหารจนล้น เลยบัดกรีใหม่ ก็หายปกติ
2.nodeMCU32 ร้อนทำให้อัพโหลดไม่ได้ เปลี่ยนตัวใหม่ก็อัพโหลดได้ ตัวที่ร้อนง่าย ผมจะลองติดฮีตซิ้งค์จะช่วยแก้ปัญหาได้ไหม ไม่ทราบเพื่อนๆได้ลองบ้างไหมครับ
3.ช่วงที่อัพโหลด มีจังหวะสั้นๆ (ไม่เกิน5 วินาที)ที่ต้องรีบกดปุ่ม format มิฉะนั้นจะfail และเริ่มใหม่อีก
4.รู้สึกว่า เสียเวลากับการอัพโหลด node32s มากครับ เป็นเวลาไม่น้อยกว่า 1ชั่วโมง แกะ nodemcu32 ออกจาก แผงบอร์ดขยายขาแล้ว เปลี่ยนสายแล้ว พอร์ต usb แล้ว สามารถแสดงผลการทำงานใน serial monitorได้ แต่อัพโหลดไม่ได้ เจอ error บ่อยมาก เทียบกับ 8266 จะอัพโหลดง่ายกว่าเยอะมากครับ
13-17ตค65
ปัญหา โปรเจ็คไก่โต-nodeesp32 แสดง led blynk 1 led ไม่ตรง
สาเหตุ
1.สายเซ็นเซอร์ที่บัดกรีหลุด ต่อแล้ว ต่อมาหลุดอีกแต่คนละสายของรีเลย์เดียวกัน
2.อาการแสดง led blynk ยังไม่ตรงอีก ไล่สายใหม่ เปลี่ยนตน.pinใหม่ ก็ดีบ้าง ไม่ดีบ้าง ใช้เวลาท 4 วัน เป็นที่โค้ด วางผิด ตน.ของ loop :hot_face: :hot_face:
พอแก้แล้ว แสดงปกติแล้วครับ

18-23ตค.65
node mcu 8266 ที่ควบคุม ระบบการฟักไข่ มีการเอ๋อ บางครั้ง ไม่ทำงาน ต้องมารีเซ็ต บางครั้ง มีการทำงานค้างจน อุณหภูมิเกิน 40 องศาเซลเซียส
ผลการทำการฟักไข่ 2 เดือนที่ผ่านมา ล้มเหลว ผมสั่งไข่มีเชื้อ 3 รุ่น ไม่สำเร็จเลย
ก่อนหน้านี้ ผมใช้ ระบบควบคุม ด้วย เซ็นเซอร์อุณหภูมิและความชื้นแบบธรรมดา แบบที่ให้ตั้งค่า และให้มันตัดต่อ แล้วผ่านรีเลย์ ยังสำเร็จครับ
พอมาใช้ กับ nodemcu 8266 และ arduino และ dht11 โดยทำโปรแกรมน่าจะโอเค แต่มันมีปัญหาจุกจิก คือ ความเสถียร ทำให้การฟักไข่ ที่ต้องการแบบ intensive care ทำให้ fail อย่างน่าเสียดาย เพราะจุดเด่นคือ สามารถ ติดต่อผ่าน blynk ได้ตลอดเวลา
และวันนี้เป็นวันที่ผมต้องเอาไข่ไก่ 10กว่าฟอง ต้องไปฝังเป็นปุ๋ยต้นกล้วยแทน
เพราะฟักมา 30 วันแล้ว ไม่ยอมออกสักที น่าจะตายคาโครมแล้วหละ ปกติ ไข่ไก่ ฟักใช้เวลา 21 วันเท่านั้น
และผมต้องบอกลา nodemcu สำหรับ การฟักไข่แล้วครับ
เหลือตัวเดียวที่ผมยังไม่ลอง คือ PLC โดยที่ไม่เคยจับมันเลย และต้องมาเริ่มต้นศึกษาใหม่จาก ศูนย์ครับ
30 ตค. 65
ได้สั่ง plc ตัวแรก เป็น บอร์ด PLC.FX3U-24MR เอาท์พุทรีเลย์ พีแอลซี Board FX3U-24MR PLC Controller ราคา 1400 บาท จากร้านนี้

1-10พย.65
และได้ศึกษาข้อมูลจาก ของพี่ปุ๋ย มีประโยชน์มาก :pray: :pray: แต่ระยะแรกผมศึกษาภาษาladder เพื่อใช้สั่งงานโดยตรง สำหรับอนาคต ผมจะลองเอา esp32 ตามพี่ปุ๋ย มาเชื่อมต่ออีกทีครับ
การสั่งงาน plc ใช้ภาษา ladder หรือขั้นบันได เป็นภาษารีเลย์ก็ว่าได้
และได้ค้นหาในยูทูป มีอาจารย์หลายท่านช่วยให้ความรู้ ได้อย่างละเอียด
ด่านแรกที่ผมเจอคือ ต้องเรียนรู้เรื่องเลขฐาน2,8,10,bit,byte,word ผมยอมรับว่า
ไม่มีพื้นฐานในด้านนี้เลยครับ
เพราะเป็นเลขที่plcเข้าใจ
ถึงบางอ้อ ว่าทำไม arduino ไม่ต้องยุ่งเรื่องเลขฐานเหล่านี้ เพราะมี library เป็นตัวช่วยแปลให้ภาษามนุษย์(ภาษา arduino) เป็นภาษาคอมพ์(เลขฐาน)เหล่านี้
ดังนั้น plc ไม่ต้องมี library ให้เราต้องติดตั้งเพิ่มเลย
แต่มันยากมาก กว่าจะได้จับทางได้
มันต่างกับ arduino มาก คนละเรื่องเลย
เพราะไม่มีการเขียนเป็น ประโยคคำสั้ง แต่ plc มันเป็นการขีดเส้นๆ มีตัวหนังสือกำกับนิดหน่อย …

ผมได้รวบรวมหัวข้อเกี่ยวกับ PLC ผมทำบันทึกไว้ใน docs ของ google พร้อมแคปหน้าจอ youtube เพื่อจะรู้ตน. นาที ที่สอนแต่ละเรื่อง เพื่อจะเอามาทบทวนอีกครั้ง ถ้าเพื่อนๆสนใจ ก็กดลิ้งค์นี้ เพื่อเอาไปประกอบในการศึกษาเบื้องต้นด้วยตัวเอง

11-17พย.65
หลังได้รู้เรื่อง plc คร่าวๆ ก็
ลองมาลงรูป การ wiring ลงใน edrawmax มีรูปประกอบ ด้วย จะได้ไม่งง มาก
Screenshot 2022-11-18 055603

xxx


จะเห็นว่า อาหารของPLC คือไฟ 24โวลต์ ขณะ nodemcu ใช้ไฟ 5 v
xxx

xxx

ข้อดีของบอร์ดนี้คือมี output ออกเป็น relay มีจำนวน10ตัว สามารถรับกระแสสูงสุด 5 A
แต่รีเลย์ 10 ตัวนี้ เสียดายใช้ ขา common แค่ 3 ตัวเอง ไม่ใช่ 1:1
comm1 ใช้กับ y0,y1,y2,y3
comm2 ใช้กับ y4,y5,y6,y7
comm3 ใช้กับ y10,y11
ดังนั้นต้องวางแผนให้ดีว่า ใช้ไฟอะไรบ้าง จะได้ประหยัดรีเลย์ ถ้ามากกว่า3 กลุ่ม ก็ต้อง เพิ่มรีเลย์อีกชั้นหนึ่งก็ได้
สำหรับโปรเจ็คนี้ พอดีครับ มีอุปกรณ์ไฟฟ้า 3 ประเภทคือ 12vdv,24vdc,220vacพอดีเลย
และกำหนดค่า y (output) ให้ตรงกับตน.รีเลย์ที่ใช้ด้วยครับ
xxx
จะได้รู้ว่า input(x) มีอะไรบ้าง output(y) มีอะไรบ้าง port rs486 มีอะไรบ้าง
ซึ่งมี input(x) 14 ตัว
สำหรับผมตอนนี้ผมไม่ใช้ x เพราะรอสวิทช์แบบ push button ส่งมา
แต่สามารถใช้สวิทช์โปรแกรมคือ m8000 เพื่อให้เริ่มทำงานได้เลย

xxx
อุปกรณ์ที่สำคัญอีกตัวที่แทน dht11 คือ ตัวนี้ครับ


ผมสั่งจากที่นี่
ราคา 189 บาท ซึ่งเป็นราคาที่ถูกที่สุดในช้อปปี้และลาซาด้า
ต่อเข้า port rs486 และใช้ protocol modbus ในการสื่อสาร ซึ่งเป็นอีก1วิชาที่ต้องศึกษา
ผมได้ลองใช้ค่าตามตย. ที่อาจารย์plc center( :pray:)ให้มาแล้ว และสลับตัวแปรค่า tempและhumid ใช้ได้ครับ เพราะอุปกรณ์ของตย.มันคนละยี่ห้อ นอกนั้นก็เหมือนกันหมด ใครสนใจลองเอาโค้ดในภาษาladderศึกษาดู

xxx
จากนั้น ผมลองสร้างโปรแกรม ladder เพื่อควบคุมการฟักไข่ ตามเงื่อนไข เหมือนกับที่ใช้กับ arduino
ถ้าใครสนใจลองเอาไปศึกษาดูครับ อาจมีข้อผิดพลาดบ้าง อย่าตามทั้งหมดนะ 555
xxx


ผมเก็บเคสplc ใว้ในแกลลอนเปล่ามารีไซเคิลใช้ให้เป็นประโยชน์ อาจดูไม่สวยครับ
และรอเก็บสายไฟใส่ในรางให้เรียบร้อย
xxx
18พย.65
เจอปัญหา หลอดไฟ 100 วัตต์(y1)เปิดค้าง จนอุณหภูมิทะลุ 50 องศา เซลเซียส ทั้งๆที่ ดูออนไลน์ กับgx work2 ไม่ได้สั่งเลย และ ดูที่ไฟ led ที่ y1 ก็ดับอยู่ และไล่สายไฟ ก็ผ่าน รีเลย์ y1 เท่านั้น ไม่ได้ลัดวงจรที่ไหน
แสดงว่า น่าสัมผัสมันค้าง เข้าแล้ว หลังจากผมดึงปลั๊กไฟ 220vac ออก สัก 2 นาที หลอดไฟไม่ค้างแล้ว และเปิดปิดตามรีเลย์แล้ว แต่ไข่ร้อนถึง 50 องศาเซลเซียส ไม่รู้ว่าจะเสียไหม :sob: :sob:
เช็คแล้ว หน้าสัมผัส y1 ค้างครับ ไม่ยอมดีดกลับ หลังจาก ไฟled y1 ดับแล้ว คลิป

1 Likes

29พย.65
หลังจากได้ ใช้ PLC ตัวแรก ควบคุมการฟักไข่ แล้วเดินเครื่องได้ปกติแล้ว
ผมได้สั่ง PLC ตัวที่2 รุ่น เดิม 24MR ต่อครับ เพื่อควบคุมการให้อาหารไก่ แทน esp32 ครับ
ก่อนอื่นผมลองลงรูป การเดินสาย ใน Edrawmax เพื่อให้เข้าใจมากขึ้น
ภาพรวม

ภาพPLC

จะเห็นว่า โปรเจ็คนี้ ใช้ output จนหมดเกลี้ยงครับ(10 device)
เพื่อควบคุม มอเตอร์ 3 ตัว(หมุนทวนและตามเข็ม) และควบคุม การเปิดปิด เซ็นเซอร์อาหาร อีก 3ตัว เพื่อป้องการกันหน้าสัมผัสไม่ให้ทำงานถึ่เกินไป จะได้มีอายุการใช้งานที่นานขึ้นครับ

1 Likes


ผมลองใช้ chat GPT ถามเรื่อง ทำไม เวลาเพิ่ม id ต้วที่ 2 id ตัวที่1 จะทำงานเพี้ยน
มันก็ตอบให้ 5555
Q:device A slave id 1 report correctly,27 degree celceus , but when I add device B id slave=3 ,A report 53 degree celcieus that not correct. why??

A:There could be several reasons why your device A is reporting incorrect temperature values when device B is added to the network. Some potential causes could include:

  1. Interference or noise on the communication network: If there is interference or noise on the communication network, it can cause errors in the data being transmitted, leading to incorrect values being reported.
  2. Configuration or wiring issues: There may be an issue with the configuration or wiring of device B that is causing it to interfere with the communication of device A. For example, if the wiring of device B is incorrect, it could cause a short circuit or other issue that could affect the communication of device A.
  3. Hardware or software issues: There may be a hardware or software issue with one or both of the devices that is causing the incorrect temperature readings. This could include issues with the temperature sensor itself, or with the software that is responsible for reading and transmitting the temperature data.

To troubleshoot the issue, you may want to try the following steps:

  1. Check for interference or noise on the communication network: Check for any external sources of interference or noise that could be affecting the communication of the devices, such as power cables or other electronic devices.
  2. Verify the configuration and wiring of device B: Make sure that device B is properly configured and wired, and that it is not causing any issues with the communication of device A.
  3. Check for hardware or software issues: Test the temperature sensors of both devices to ensure they are working correctly, and check for any software issues that could be causing the incorrect temperature readings.

By following these steps, you may be able to identify the cause of the issue and take the appropriate steps to fix it.

เสียดาย มันใช้แต่ภาษาอังกฤษ ไม่มีภาษาไทย
อยากถามเพื่อนๆ ว่าแก้อย่างไรครับ เรื่อง เซ็นเซอร์อุณหภูมิ ถ้ามีตัวเดียว มันอ่าน 27 องศา แต่พอเพิ่ม sensor ตัวที่2 มันอ่าน 53 องศา ซึ่งมันผิด
พอถอดตัวเซ็นเซอร์ตัวที่ 2 ตัวที่1 ทำงานปกติ

ใช้เซ็นเซอร์ตัวไหนครับ

เจอแล้ว สาเหตุ คือ สาย B- ของ sensor ตัวที่ 2 มันหลุด 555

DIY เซ็นเซอร์วัดความชื้นในดิน งบไม่เกิน 50 บาท
*ข้อดี *
ราคาถูก
ทนทาน เพราะใช้เหล็กชุบกัลวาไนซ์

ข้อเสีย
ไม่มีค่ามาตรฐานว่า เท่าไหร่ถือว่าเปียก หรือแห้ง
เราต้องมาทดสอบวัดเอาเอง ว่า ดินเปียกอ่านได้เท่าไหร่ ดินแห้งอ่านได้เท่าไหร่
ถ้ามาอ่านได้ค่ามากเท่ากันตลอดทั้งเปียกและแห้ง เราแก้โดยเพิ่ม R จาก 1K ohm ไป และเทสต์ดู เป็นต้น


ดินเปียก อ่านกระแสได้ 900+
xxx

ดึงแท่งเหล็กที่ทำเป็นเซ็นเซอร์ออกจากดินเปียก อ่านค่าได้ 400+
xxx
เอา ค่า D50 มาใช้งานได้เลย
โค้ดตัวอย่าง

การต่อวงจร(แก้ไข 7มค65)

ขอย้ำ ว่าให้ใช้ไฟเลี้ยงเซ็นเซอร์วัดความชื้นในดินนี้ให้ใช้ไฟ 24VDC เพื่อจะใช้สาย GND ร่วมกับ ที่ใช้กับ PLC เพราะถ้าใช้ ไฟ 5vdc และใช้ GND ของ 5vdc ในการเชื่อมกับ PLCซึ่งเป็นmaster จะมีผลทำให้ ค่าที่อ่านจาก slaveตัวอื่นๆ เพี้ยนหมดเลยครับ ผมเสียเวลาหาสาเหตุกว่าจะเจอ เสียไป 6 ชั่วโมงเลยครับ

1 Likes

ตอนนี้ ระบบ plc พอทำงานได้บ้างแล้ว

PLC ตัวที่1
PLC ตัวที่2

การต่อวงจร อาจมีบางจุดที่ต้องแก้ไข

เหลืออีกอย่างคือ การให้ esp32 ต่อกับ plc และส่งข้อมูลผ่าน blynk ยังไม่เริ่มทำอีกครับ คิดว่าต้องถามเพื่อนๆอีกหลายครั้งครับ

มีโค้ด ที่ ผีพราย(chatGPT)กระซิบมาบอก แต่ยังไม่ได้ลอง

#include <HardwareSerial.h>

HardwareSerial PLCSerial(2); // Set up a serial communication object using hardware serial port 2

void setup() {
  // Initialize serial communication at a baud rate of 9600
  PLCSerial.begin(9600);
}

void loop() {
  // Send data to the PLC
  PLCSerial.write(0x01); // Send the value 0x01 over the serial connection
  PLCSerial.write(0x02); // Send the value 0x02 over the serial connection

  // Read data from the PLC
  if (PLCSerial.available()) {
    // Read a single byte from the serial connection
    byte data = PLCSerial.read();
  }
}

เป็นรุ่นนี้ ทั้ง 2 ตัวครับ

เทียบเทอร์โมมิเตอร์สำหรับการฟักไข่ 10มค.66

1.เซ็นเซอร์ วัดความชื้นและอุณหภูมิ rs485
วัดได้ 37.0 องศาเซลเซียส
2.แบบ แอลกอฮอล์ สีแดง วัดได้ 36.0 องศาเซลเซียส
3.แบบปรอท วัดไข้ วัดได้ 37.0 องศาเซลเซียส
4…เซ็นเซอร์ วัดความชื้นและอุณหภูมิ dht11 arduino ไม่ได้ทำการวัด
สรุป ผมเอาแบบที่3 เป็นค่ามาตรฐาน จะเห็นว่า เซ็นเซอร์ วัดความชื้นและอุณหภูมิ rs485 ให้ค่าที่ถูกต้องอยู่ ในอนาคตไม่แน่ ต้องเช็คเป็นระยะๆ

1 Likes


อแดปเตอร์12VDC ซื้อเมื่อ 8 เดือนที่แล้ว วันนี้ ท่าทางจะเสื่อมแล้ว เพราะวัดได้ 6V เท่านั้น ไม่มีแรงพอจะขับมอเตอร์ได้ พอที่จะแก้ไขอย่างไรบ้างครับ
ต้องทำการเปลี่ยนตัวใหม่

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

อยากทราบเหตุผลที่เลือกใช้ PLC เข้ามาร่วมทำงานในโปรเจ็คนี้หน่อยครับ

เหตุผลคือ ผมจนปัญญากับ nodemcu8266 และ esp32 ในโปรเจ็คทำฟาร์มไก่ เช่น การฟีดอาหารไก่ การฟักไข่ ผมคิดว่า โปรแกรมลองแล้วก็เวิร์กดีนะระดับนึง แต่มีปัญหาเกี่ยวกับ cpu แฮงค์บ่อย ยิ่งกับการควบคุมฟักไข่ ต้องการความต่อเนื่อง และอุณหภูมิที่คงที่มากๆ และแคบมากๆ ไม่ควรเกิน 38 องศา ซ. และไม่ต่ำกว่า 37 องศา ซ ต่อเนื่องกันอย่างน้อย 21 วัน ผมได้ลองทำมาตั้งแต่ มีนาคม 65 พัฒนาความรู้เรื่อยๆ แบบงูๆปลาๆ ผมคิดว่าระบบน่าสมบูรณ์ที่สุดเดือนกันยายน65 , แต่ทำไมใช้ arduino ฟักไข่ 3ชุดแล้วไม่สำเร็จเลย ขณะที่ผมเคยใช้ เซ็นเซอร์แบบอนาลอกควบคุมผ่านรีเลย์ยังสำเร็จได้
ผมก็ลอง PLC ดู เริ่มศึกษา ต้งแต่ ตค.65 , พย.65 เริ่มใช้ plcคตัวแรก 14MR คุมการฟักไข่ ต่อมาธค.65 ซื้อตัวที่2 14MR มาคุมเรื่องฟีดอาหารไก่ , กลางๆ ธค. 65 ซื้อplc ตัวที่3 เป็นรุ่น 48MR คุมทั้งเล้าไก่ในตัวนี้ โดยมี 14MR 1ตัวเป็น slave, เซ็นเซอร์ อุณหภูมิ ความชื้น 3 ตัว ผ่าน RS485 port,
เท่าที่ผมใช้ nodemcu 8266 และ esp32 มีปัญหา คือ เวลาไฟดับ มันหยุดทำงาน พอเวลาไฟมาไม่ยอมรีสตาร์ท ผมอยู่ไกลจากฟาร์ม ทำให้เรามารีเซ็ต และ ทำให้ไข่ไก่ไม่ฟัก และเสียไปเลย ลองๆมา เสียไข่ ประมาณ 30ฟอง หรือ 3 ชุด ไม่เคยได้ตัวไก่เลย 555
พอผมเริ่มใช้plc ก็มีไข่ฟักครั้งแรก 2ตัวจากไข่10ฟอง รอดูชุด2 กำหนดฟัก 21 มค.66 นี้แล้ว
นอกจากนี้แล้ว เรื่องระบบฟีดอาหาร ก็ปัญหาเดียวกัน ที่เมื่อไหร่ ไฟดับ พอไฟมา จะทำงานไม่แน่นอนแล้วครับ
ถ้าเพื่อนอยากใช้ arduino ผมอยากให้เพื่อนข้าม ชิป nodemcu หรือ ESP32 ให้ใช้ของ แท้ เช่น arduino จากอิตาลีไปเลย ซึ่งผมไม่ได้ลองจุดนี้ อยากให้เพื่อนๆลองทำดู แล้วแชร์มาครับ

1 Likes

หลังจากใช้ PLC ทำให้โปรเจ็คเราเดินหน้าได้ ไม่ต้องย่ำอยู่ที่เดิมครับ แต่ arduino เป็นสิ่งแรกที่จุดประกายเรื่อง automation และทำให้เราได้เปรียบเพราะ arduino พร้อมเติมเต็ม ที่จะทำอย่างไรให้โปรเจ็คเราสำเร็จตามเป้าหมาย

1 Likes

ปัญหาที่เจอนั้นเห็นด้วยเลยครับ มันเหมาะกับการนำมามอนิเตอร์มากกว่า คือจะหยุดส่งบางครั้งก็ไม่ได้กระทบกับงานหลัก อยากที่กล่าวถ้านำไปใช้กับฟาร์มผัก 100 ไร่ เครื่องหยุดทำงานไปแค่ 2 ชม ไม่มีการให้น้ำ ความบันเทิงจะเกิดขึ้นแน่นอน

1 Likes

ผมซื้อตัวนี้มาลองอยู่ครับ แพงหน่อย 400 กว่าบาท flash 16M

พอดีอยากทำรับค่า นน. จากเครื่องชั่ง BLE แยกส่วนเทสได้รับค่าได้ แต่พอเอามารวมกัน ต่อ wifi ด้วยบันเทิง รีเซตเลย flash ไม่พอด้วยตัวปกติ

พอซื่อ flash 16M usb port มาก็up ผ่านแต่รีเซตไม่หาย ตัดสินใจเลือกบอร์ดที่ใช้ usb type c มาเลยการันตีเรื่องไฟเลือกพอแน่นอน ถ้าเป็น micro usb อาจเจอไฟตกไม่พอพอร์ต

ตอนนี้กำลังเทสอยู่ครับ เบื้องต้น โค้ตที่อัพไปรันผ่านใช้งานได้ปกติครับ

1 Likes

chip บอร์ดสีม่วงนี้ เป็น esp32 รุ่นไหนครับ

วันนี้มาซ่อม ที่วัดความชื้นในดิน
เพราะมันอ่านค่าเป็น 0 แม้ เทน้ำให้เหล็กเซ็นเซอร์เปียกชุ่มก็ตาม ค่าที่ถูกต้อง ต้องได้ 900 กว่า

เลยไล่หาว่าสายมันขาดไหม ปรากฎว่าสายไม่ได้ขาด แต่ตัวต้านทานมันเสื่อม และขาดใน


ผมเลยเชื่อมปลายสายแทนตำแหน่งตัวต้านทาน และย้ายตัวต้านทานให้อยู่ในที่ร่ม มาอยู่ที่ปลายสุดก่อนเข้า plc , ใช้ ตัวต้านทาน 68K ohm, ไฟ 24VDC ,

แล้วปิดทับด้วย พลาสติกเหลวอีกที
xxx

ผมมาดูค่า analog input ในคอมพ์
3ค่า
1633 คือ ดินที่เปียกชุ่ม
1307 คือดินที่แห้งแต่มีความชื้นบ้าง
445 คือค่าที่ได้เวลาดึงเซ็นเซอร์ให้ลอยจากพื้น
ผมจะใช้ค่า 1500 ขึ้นไปเป็นตัวบอกว่า เปียก

ESP32-S3 FLASH 16M ที่ต้องใช้ flash 16M เพราะใช้ library BLE+WIFI+Line_Notify verify แล้วเกิน 4M ครับ

1 Likes