นี่เป็นคำถามที่กว้างขวางมาก แต่ฉันจะพยายามให้คำแนะนำทั่วไปบางอย่างหวังว่าจะเป็นประโยชน์กับผู้อื่นเช่นเดียวกับคุณ (เช่นนั้นโปรดยอมรับคำขอโทษของฉันถ้าฉันโพสต์สิ่งที่คุณรู้อยู่แล้ว)
หากคุณถามเกี่ยวกับเซ็นเซอร์การอ่านนี่คือระบบตรวจสอบระยะไกลและไม่จำเป็นต้องใช้ IoT ฉันเขียนรหัสหลายโครงการที่พีซีแบบสแตนด์อโลนอ่านและแสดงการวัดบางอย่าง
หากคุณยังต้องการไปยังตัวควบคุมฮาร์ดแวร์ที่แนบมานี้เป็นระบบ SCADA อีกครั้งมันไม่จำเป็นต้องเชื่อมต่อกับอินเทอร์เน็ต
นี่คือแผนภาพของ SCADA ซึ่งให้ความรู้สึกที่ดีมากสำหรับ IoT โดยทั่วไป โปรดทราบว่าPLCในแผนภาพเป็นเซ็นเซอร์และการควบคุมของอุปกรณ์ที่เปิดใช้งาน IoT
คุณสามารถขอ commendations ฮาร์ดแวร์สำหรับเซ็นเซอร์และตัวควบคุมที่แนะนำอุปกรณ์
และเมื่อคุณมีรหัสบางอย่างที่คุณจะได้รับคำแนะนำสำหรับปัญหาที่กองมากเกิน
โดยทั่วไปแล้ว IoT สำหรับอุตสาหกรรมนั้นเกี่ยวข้องกับรูปแบบของไคลเอนต์ / เซิร์ฟเวอร์โดยที่ไคลเอนต์วัด / ควบคุมอุปกรณ์ฮาร์ดแวร์และรายงานไปยัง / รับคำสั่งจากเซิร์ฟเวอร์ เซิร์ฟเวอร์โดยทั่วไปยังมีฐานข้อมูลและอนุญาตให้สร้างรายงานสำหรับการจัดการและการเตือนภัย (และอาจสั่งให้ฮาร์ดแวร์ระยะไกลตั้งค่า / ปิดเครื่องใหม่ตามข้อมูลที่ได้รับ)
วุ้ย นั่นคือคำนำของทาง ตอนนี้มือของเราสกปรก
ถ้าคุณต้องการที่จะได้รับใน nitty ทรายของการเข้ารหัสดูที่ซ็อกเก็ตและเข้าใจความแตกต่างระหว่างTCPและUDP
โชคดีที่ทศวรรษที่ผ่านมามีสิ่งที่หลอกลวงมากที่สุดในห้องสมุดและคุณควรได้รับการแนะนำให้อ่านบริการ RESTful มีแบบฝึกหัดออนไลน์หลักสูตรและวิดีโอสอนฟรีมากมายขึ้นอยู่กับภาษาของคุณ C เป็นภาษาที่ฝังตัวแบบดั้งเดิมโดยบางคนใช้ C ++ แต่แน่นอนว่าใช้สิ่งที่คุณรู้ / รู้สึกสบายใจ Python เป็นที่นิยมอย่างมากและง่ายต่อการเรียนรู้รวมทั้งเป็นภาษาที่แนะนำสำหรับ Raspberry Pi
โดยส่วนตัวแล้วฉันชอบแปลภาษามากกว่าที่จะเข้าใจเพราะมันง่ายกว่าที่จะกำจัดจุดบกพร่อง แต่ตัวเลือกนั้นขึ้นอยู่กับคุณ เพียงตรวจสอบให้แน่ใจว่ารองรับการเข้าถึงอุปกรณ์ต่อพ่วงผ่าน USB, Ethernet และยังคงเป็นเรื่องธรรมดาในอุตสาหกรรม - พอร์ตอนุกรม
สำหรับฝั่งเซิร์ฟเวอร์ 90% + ของเซิร์ฟเวอร์โลกยังคงทำงานบน PHP อย่างไรก็ตามมีการใช้ NodeJS เป็นส่วนใหญ่จากผู้ที่ใช้รหัสเบราว์เซอร์แอปซึ่งปัจจุบันสามารถทำได้ใน JavaScript เท่านั้นและไม่ต้องการเรียนรู้สองภาษา ฉันไม่แนะนำให้พัฒนาแอพ IoT ที่เป็นเบราว์เซอร์เนื่องจากข้อ จำกัด ของรหัสเบราว์เซอร์ที่เข้าถึงระบบไฟล์และอุปกรณ์ต่อพ่วง (แม้ว่าฉันจะพูดถึงCordova ที่ชอบถ้าคุณต้องการพัฒนาสำหรับสมาร์ทโฟน)
ในการเริ่มต้นฉันจะแนะนำRaspberry Pi (การเข้ารหัสใน Python หรือ C)
และฉันขอแนะนำหมวกเซ็นเซอร์ อันนี้เป็นเพียงตัวอย่าง แต่มันไม่แพงและมี
- Gyroscope - เซ็นเซอร์อัตราเชิงมุม: +/- 245/500 / 2000dps Accelerometer
- เซ็นเซอร์เร่งเชิงเส้น: +/- 2/4/8/16 g
- Magnetometer - เซ็นเซอร์แม่เหล็ก: +/- 4/8/12/16
- Gauss Barometer: 260 - 1260 hPa ช่วงที่แน่นอน (ความแม่นยำขึ้นอยู่กับอุณหภูมิและความดัน +/- 0.1 hPa ภายใต้สภาวะปกติ)
- เซ็นเซอร์อุณหภูมิ (อุณหภูมิที่แม่นยำถึง +/- 2 degC ในช่วง 0-65 degC)
- เซ็นเซอร์ความชื้นสัมพัทธ์ (ความแม่นยำถึง +/- 4.5% ในช่วง 20-80% rH, ความแม่นยำถึง +/- 0.5 degC ในช่วง 15-40 degC)
- จอแสดงผลเมทริกซ์ LED 8x8 RGB
- จอยสติ๊ก 5 ปุ่มขนาดเล็ก
ที่จะช่วยให้คุณรวบรวมข้อมูลและรายงานไปยังเซิร์ฟเวอร์ของคุณ คุณอาจสามารถค้นหาบริการฟรีออนไลน์เพื่อรับและแสดงข้อมูลของคุณ ฉันเคยเห็นบางไซต์ SO อื่น ๆ แต่ลืมที่
แต่คุณอาจต้องการรหัสเซิร์ฟเวอร์ของคุณเอง ฉันจะแนะนำ PHP เป็นภาษาการเขียนโปรแกรม สำหรับ Linux คุณได้รับLAMP (Linux, Apache, Mysql & PHP) เป็นอย่างดี สำหรับ Windows คุณต้องติดตั้งWAMP (Windows …และอื่น ๆ )
คุณสามารถเลือกของคุณ ฉันใช้XAMPPในงานอุตสาหกรรมมานานกว่าทศวรรษ คุณไม่ได้ใช้ Mysql, Sqlite ก็สามารถให้บริการได้เช่นกัน (shaless plug สำหรับคำถาม SO ของฉันเมื่อ 6 ปีที่แล้ว,“ Sqlite หรือ MySql? จะตัดสินใจได้อย่างไร? ”) นอกจากนี้คุณยังจะต้องเรียนรู้เกี่ยวกับCRUD
จากข้อมูลที่ได้รับจากไคลเอนต์ / เซ็นเซอร์คุณอาจต้องการส่งคำสั่งกลับแม้เพียงอย่างง่าย (จอแสดงผล: "อุณหภูมิสูงเกินไป" ซึ่งอาจแปลเป็นการปิดวาล์วในระบบอุตสาหกรรม)
คุณอาจต้องการส่งสัญญาณเตือนตามเวลาจริง (ส่งอีเมลแจ้งว่าอุณหภูมิสูงเกินไป)
และคุณอาจต้องการคิดเกี่ยวกับการสร้างรายงาน เริ่มต้นด้วยตารางที่แสดงข้อมูลที่ได้รับ พิจารณาแผนภูมิหรือสิ่งที่นักเล่น เพิ่มตัวเลือกในการส่งออกไปยังComma Separated Values (CSV) ซึ่งช่วยให้ผู้ใช้ปลายทางนำเข้าข้อมูลไปยังสเปรดชีตสำหรับการวิเคราะห์และการจัดการต่อไป
หากคุณไม่ตัดสินใจว่าคุณต้องการรายงานแฟนซีคุณสามารถทำมันใน PHP แต่หลังจากไม่กี่ทศวรรษที่ผ่านมาจากการที่ผมได้ย้ายในขณะนี้เพื่อทำมากของฝั่งไคลเอ็นต์สิ่งที่รายงานในเบราว์เซอร์
สำหรับหลักการโดยทั่วไปได้รับภาพรวมของ หน้าเดียวแอพลิเคชันและAJAX ส่วนตัวแล้วฉันทำการค้นคว้ามากมายและเลือกAngularJSของ Google เป็นภาษาโปรแกรมของฉัน (มีจำนวนมากแบบฝึกหัดและการสนับสนุนที่ยอดเยี่ยม) แต่คุณสามารถใช้ JS, Jquery และอื่น ๆ ได้ตามต้องการ
หากคุณตัดสินใจที่จะรหัสสิ่งเบราว์เซอร์เช่นกันและคุณอาจจะใช้ NodeJsทางฝั่งเซิร์ฟเวอร์เพื่อที่คุณจะได้เรียนรู้ภาษาการเขียนโปรแกรมใหม่เพียงภาษาเดียวเท่านั้น
ทางเลือกมากเกินไป? ขอโทษ :-(
ฉันหวังว่าสิ่งนี้จะให้คำแนะนำแก่คุณ แต่อย่าลังเลที่จะถามคำถามและแจ้งให้เราทราบหากมีคำแนะนำทั่วไปหายไปที่นี่