แอปพลิเคชัน IoT2050 นี้มีหน้าที่รวบรวมข้อมูลกระจายอำนาจและส่งผ่านวิทยุ LPWAN Technology Range (LORA) ใช้เพื่อจุดประสงค์นี้ IOT2050 ทำหน้าที่เป็นเกตเวย์ Lorawan LoRawan ทั่วโลกฟรี (เครือข่ายพื้นที่กว้างในระยะยาว) จากเครือข่ายสิ่งต่าง ๆ หรือสิ่งต่าง ๆ ของสแต็คชุมชนรุ่นที่ใช้เป็นเซิร์ฟเวอร์เครือข่าย คู่มือนี้อธิบายถึงโครงสร้างซอฟต์แวร์และฮาร์ดแวร์ของเกตเวย์ (การกำหนดค่าและฟังก์ชั่นของอุปกรณ์ปลายทาง (เช่นเซ็นเซอร์) ไม่ได้อธิบายไว้ในคู่มือนี้เพราะมันขึ้นอยู่กับวัตถุประสงค์ของแอปพลิเคชัน):

ส่วนประกอบฮาร์ดแวร์ต่อไปนี้จำเป็นสำหรับแอปพลิเคชัน:
คุณยังสามารถดูส่วนบุคคลทั้งหมดในรายการคำสั่งซื้อ
อินเทอร์เฟซ Arduino UNO ของ SIMATIC IOT2050 ใช้เพื่อรวม IC880A Concentrator จำเป็นต้องใช้โล่อะแดปเตอร์เพื่อจุดประสงค์นี้ซึ่งรวมการกำหนด PIN เข้าด้วยกัน เครื่องเข้มข้นมาพร้อมกับ 5V
ตัวป้องกันอะแดปเตอร์ที่ใช้ในแอปพลิเคชันนี้สร้างขึ้นเอง ส่วนประกอบที่ต้องการสามารถนำมาจากรายการคำสั่งซื้อ ข้อมูลเพิ่มเติมเกี่ยวกับโครงสร้างสามารถพบได้ในไฟล์โครงการ (.pro) ไฟล์แผนผัง (.sch) และไฟล์เลย์เอาต์ (.kicad_pcb)
Lorawan Concentrator IC880A เป็นโมดูลเครื่องส่งสัญญาณ/ตัวรับสัญญาณประสิทธิภาพสูงหลายช่องทางที่ออกแบบมาเพื่อรับแพ็กเก็ต LORA หลายตัวพร้อมกันโดยใช้ปัจจัยการแพร่กระจายที่แตกต่างกันในหลายช่องทาง โมดูล Concentrator IC880A สามารถรวมเข้ากับเกตเวย์เป็นส่วนหน้า RF ที่สมบูรณ์ของเกตเวย์นี้
รูปต่อไปนี้แสดงโครงสร้างฮาร์ดแวร์ที่สมบูรณ์ของเกตเวย์ Lorawan ในการเชื่อมต่อเสาอากาศ (2 DBI DIPOLE ANTENNA 863-870MHz กับ RP SMA) ไปยังโมดูล IC880A จะใช้อะแดปเตอร์ SMA ย้อนกลับ เครื่องเข้มข้นถูกเสียบเข้ากับส่วนต่อประสาน Arduino UNO ของ IOT2050 พร้อมกับตัวป้องกันอะแดปเตอร์

ซอฟต์แวร์ต่อไปนี้ใช้สำหรับคู่มือนี้:
สำหรับการว่าจ้างครั้งแรกของ IOT2050 โปรดดูการตั้งค่า คุณสามารถขอความช่วยเหลือเพิ่มเติมในฟอรัม SIMATIC IOT2050
หลังจากทำงานผ่านการตั้งค่าจะต้องทำการอัปเดตสำหรับระบบและต้องติดตั้ง GIT คำสั่งต่อไปนี้จะดำเนินการสำหรับสิ่งนี้:
sudo apt-get update
sudo apt-get install git
สร้างการเชื่อมต่อ SHH ผ่าน Putty และใช้คำสั่งต่อไปนี้:
iot2050setup
Use the arrow keys: "Peripherals" -> "Configure Arduino I/O" -> "Enable SPI on IO10-IO13" -> "Enable"
Use ESC to exit the iot2050setup


หากต้องการโคลนสถานี Lora Basics ™เวอร์ชันล่าสุดจาก GitHub ให้ใช้คำสั่งต่อไปนี้:
cd /home
git clone https://github.com/lorabasics/basicstation.git
ตอนนี้ไฟล์ setup.gmk ซึ่งเป็นส่วนหนึ่งของโคลนจะต้องปรับให้เข้ากับ IoT2050 เพื่อจัดเก็บไดเรกทอรีที่ถูกต้องสำหรับเครื่องมือ Toolchain ในการทำเช่นนี้ให้เปิดไฟล์ในตัวแก้ไขโดยใช้คำสั่งต่อไปนี้:
cd /home/basicstation/
nano setup.gmk
ด้วยการผสมผสานคีย์ CTRL+C ข้อมูลจำเพาะบรรทัดสามารถแสดงได้ใน Nano-editor:

บรรทัด 55 - 66 ต้องแสดงความคิดเห็นด้วย # และบรรทัด 68 - 72 ต้องเปลี่ยนเป็นสิ่งต่อไปนี้:
CC=/usr/bin/gcc
LD=/usr/bin/ld
AR=/usr/bin/ar
OD=/usr/bin/objdump
OC=/usr/bin/objcopy
นอกจากนี้บรรทัด 76 จะต้องแก้ไขดังนี้:
export LD_LIBRARY_PATH=/usr/local/lib
บันทึกและปิดไฟล์ด้วยคำสั่งต่อไปนี้:
CTRL+X -> to exit editing
Y -> to save the changes
Enter -> to confirm the filename
ในการสร้างสถานีส่งต่อแพ็คเกจให้ใช้คำสั่งต่อไปนี้ในไดเรกทอรี /home/basicstation/ :
make platform=rpi variant=std
หลังจากรวบรวมสถานีพื้นฐานโฟลเดอร์ใหม่ที่เรียกว่า build-rpi-std ที่มีโฟลเดอร์ย่อยสี่รายการปรากฏขึ้น คุณสามารถค้นหา station ไบนารีที่รวบรวมได้ใน bin ย่อยย่อย
คำสั่งและการกระทำดังต่อไปนี้จะถูกดำเนินการในไดเรกทอรีนี้เสมอ ( /home/basicstation/build-rpi-std/bin/ )
จำเป็นต้องมีการกำหนดค่าบางอย่างสำหรับสถานีพื้นฐานซึ่งระบุไว้ใน File station.conf คัดลอก File Station.Conf ที่ทำสำเร็จลงในไดเรกทอรี (เคล็ดลับ: เครื่องมือ WinSCP สามารถใช้ในการถ่ายโอนไฟล์)
สถานี LORA Basics ™จำเป็นต้องได้รับพร้อมกับLoRawan® Network Server (LNS) เพื่อเชื่อมต่อ สำหรับตัวอย่างนี้มีการใช้เซิร์ฟเวอร์ Edition Edition ของ Stack ที่มีพอร์ต 8887 สิ่งนี้ระบุไว้ในไฟล์ tc.uri คัดลอกไฟล์สำเร็จรูป TC.URI ลงในไดเรกทอรี
สิ่งนี้ต้องใช้ใบรับรองรูท คำสั่งต่อไปนี้สามารถใช้เพื่อรับใบรับรองและสร้างไฟล์ tc.trust โดยตรง:
curl https://letsencrypt.org/certs/isrgrootx1.pem.txt -o tc.trust
นอกจากนี้คุณยังสามารถใช้ใบรับรองรูทอื่นซึ่งจำเป็นต้องแทรกลงในไฟล์ tc.trust โดยไม่มีอักขระ <> :
-----BEGIN CERTIFICATE-----
<insert root certificate here>
-----END CERTIFICATE-----
โมดูล IC880A ที่มีชิป BaseBand SX1301 จะต้องรีเซ็ตทุกครั้งที่เปิดใช้งาน อย่างไรก็ตามการรีเซ็ตนี้ไม่ได้ดำเนินการโดย HAL ของชิป ดังนั้นสคริปต์ Python จึงถูกเขียนขึ้นเพื่อดำเนินการภายนอก คัดลอก Python Script IC880A_RESET.PY ลงในไดเรกทอรี หลังจากนั้นต้องตั้งค่า I/O Digital I/O 4 เป็นเอาต์พุตเนื่องจากใช้เป็นพินรีเซ็ต:
iot2050setup
Use the arrow keys: "Peripherals" -> "Configure Arduino I/O" -> "Enable GPIO" -> Set PIN 4 as output
Use ESC to exit the iot2050setup

ขั้นตอนต่อไปคือการเพิ่มเชลล์สคริปต์ที่เรียกใช้สคริปต์ Python สคริปต์นี้จะถูกดำเนินการในภายหลังด้วยการเริ่มต้นของไบนารี station คัดลอกไฟล์สำเร็จรูป RESET_GW.SH ลงในไดเรกทอรี ในสคริปต์เชลล์นี้สคริปต์ Python ที่สร้างขึ้นก่อนหน้านี้สำหรับการรีเซ็ตฮาร์ดแวร์ของตัวควบคุมจะเรียกว่า ตอนนี้สคริปต์จำเป็นต้องได้รับสิทธิ์ในการดำเนินการด้วยคำสั่งต่อไปนี้:
chmod 755 reset_gw.sh
ในการรับ EUI ของเกตเวย์สำหรับการลงทะเบียนที่เซิร์ฟเวอร์ station โปรแกรมจะต้องเริ่มต้นหนึ่งครั้ง (การดำเนินการยังไม่ทำงานอย่างสมบูรณ์):
./station
EUI ของเกตเวย์ประกอบด้วยที่อยู่ MAC ของ IOT2050 และแสดงในเอาต์พุตคอนโซลหลังจากเริ่มต้นสถานี:

แอปพลิเคชันสามารถหยุดได้ด้วยการผสมผสานคีย์ CTRL+C
ในที่สุดเพื่ออนุญาตเกตเวย์ด้วยสิ่งที่สแต็กชุมชนรุ่น API ต้องเก็บไว้ในไฟล์ที่เรียกว่า tc.key ในการทำเช่นนี้เกตเวย์จะต้องลงทะเบียนในรุ่นชุมชนสแต็ก สิ่งนี้มีการอธิบายในขั้นตอนต่อไปนี้: หลังจากเข้าสู่หน้าเว็บแล้วภูมิภาคจะถูกเลือก หลังจากนั้นสามารถเพิ่มเกตเวย์ใหม่ได้ สำหรับสิ่งนี้จะต้องป้อนรหัสเกตเวย์ที่ไม่ซ้ำกันเช่นเดียวกับเกตเวย์ EUI จากรูปก่อนหน้า นอกจากนี้ยังเลือกแผนความถี่สำหรับภูมิภาค นอกจากนี้ยังสามารถเลือกได้ว่าสถานะของเกตเวย์สามารถมองเห็นได้หรือไม่ การกำหนดค่าที่จำเป็นทั้งหมดจะแสดงในรูปต่อไปนี้:

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


ใช้คำสั่งต่อไปนี้เพื่อสร้างไฟล์ tc.key และใช้คีย์ API ที่คัดลอกก่อนหน้านี้แทน xxx :
export LNS_KEY="xxx"
echo "Authorization: Bearer $LNS_KEY" | perl -p -e 's/rn|n|r/rn/g' > tc.key
สิ่งนี้จะเสร็จสิ้นการติดตั้งและการกำหนดค่าของสถานีพื้นฐาน ตอนนี้สถานีสามารถเริ่มต้นด้วยตนเองด้วยคำสั่ง:
./station
หากการติดตั้งและการรับรองความถูกต้องประสบความสำเร็จสถานีจะเริ่มต้นและเกตเวย์จะแสดงตาม connected ในคอนโซลของสิ่งที่ชุมชนสแต็ค:

คุณสามารถรับข้อมูลเพิ่มเติมเกี่ยวกับเว็บไซต์ The Things Stack - เพิ่มเกตเวย์
คัดลอกสคริปต์เชลล์สำเร็จรูป start.sh ซึ่งเรียกว่าสถานีไบนารี station ลงในไดเรกทอรี สคริปต์จะต้องได้รับสิทธิ์ในการดำเนินการ:
chmod 755 start.sh
คัดลอกไฟล์บริการระบบสำเร็จรูป IoT-2050-lora-gateway.service ลงในไดเรกทอรี /etc/systemd/system หากต้องการเปลี่ยนเป็นไดเรกทอรีนั้นให้ใช้คำสั่งต่อไปนี้:
cd /etc/systemd/system
ตอนนี้ไฟล์บริการสามารถเริ่มต้นด้วยตนเองและทดสอบด้วยคำสั่งต่อไปนี้:
sudo systemctl start iot2050-lora-gateway.service
หลังจากเริ่มต้นการให้บริการและสถานีที่ประสบความสำเร็จสามารถยกเลิกได้ด้วยคำสั่งต่อไปนี้:
sudo systemctl stop iot2050-lora-gateway.service
เพื่อเปิดใช้งาน Autostart ของบริการให้ใช้คำสั่ง
sudo systemctl enable iot2050-lora-gateway.service
หลังจากรีบูตครั้งต่อไปเกตเวย์จะเริ่มต้นด้วยการบูตทุกครั้ง
เกตเวย์พร้อมใช้งานแล้ว ตอนนี้อุปกรณ์สิ้นสุดสามารถเพิ่มลงในแอปพลิเคชันผ่านสิ่งที่สแต็กชุมชนรุ่นซึ่งจะส่งข้อมูลผ่านเกตเวย์ไปยังเซิร์ฟเวอร์ ที่นี่คุณสามารถค้นหาอุปกรณ์สิ้นสุดที่เป็นไปได้ วิธีเพิ่มอุปกรณ์สิ้นสุดบนเซิร์ฟเวอร์อธิบายไว้ที่นี่
Node-Red ใช้เพื่อให้เห็นภาพข้อมูลที่รวบรวม ตัวแก้ไขเว็บสามารถเข้าถึงได้ผ่านที่อยู่ IP ของ IOT2050 และพอร์ต 1880 Node-Red อยู่ใน Autostart โดยค่าเริ่มต้นในภาพตัวอย่าง หากต้องการเข้าถึงให้เปิดเบราว์เซอร์บนพีซีของคุณที่เชื่อมต่อกับ IOT2050 และเปิด URL http://<IP of the IOT2050>:1880/
ตอนนี้ไฟล์ flows.json สามารถนำเข้าสู่ Node-Red:
Menu -> Import -> Select file for Upload

ต้องปรับโหนดดังนี้:
MQTT: แทรกที่อยู่เซิร์ฟเวอร์และพอร์ตของสิ่งต่าง ๆ สแต็กในแท็บการเชื่อมต่อ เพื่อสมัครสมาชิกข้อความทั้งหมดที่ตั้งไว้ หัวข้อ เป็น #

ป้อน ชื่อผู้ใช้ ของคุณและ MQTT-API-Key เป็น รหัสผ่าน คุณสามารถสร้าง api-key นี้ในการตั้งค่าการรวมแอปพลิเคชันของคุณ:



Parse Node: ในฟังก์ชั่น Parse Node ต้องปรับ device_id ที่แตกต่างกัน (ขึ้นอยู่กับแอปพลิเคชัน):

คำอธิบายของโฟลว์: ในการประมวลผลข้อความที่เข้ามาวัตถุ JavaScript ถูกสร้างขึ้นก่อน จากนั้นอัปลิงค์จะถูกแยกวิเคราะห์ในฟังก์ชั่น ที่แยกวิเคราะห์โหนด เพื่อแยกข้อความแต่ละข้อความของแต่ละอุปกรณ์ปลายทาง นอกจากนี้โหนดจะขยายไปถึงสามเอาต์พุต ดังนั้นแต่ละข้อความจึงถูกกำหนดให้กับเอาต์พุตและย่อมาจากอุปกรณ์ปลายทาง การใช้ไลบรารีแดชบอร์ดและโหนดเกจวัดเหล่านี้สามารถสร้างขึ้นเป็นแต่ละคนในแผงควบคุม
การไหลล่วงหน้าของการสร้างแสดงตัวอย่างของการรวมกันของอุปกรณ์ปลายสามด้านในโหนดแยกวิเคราะห์ ต้องปรับ ID ขึ้นอยู่กับแอปพลิเคชันและการตั้งค่าในเครือข่ายสิ่งต่าง ๆ
Dashboard: ในการแสดงข้อมูลได้ตอนนี้สามารถติดตั้งพาเล็ตแดชบอร์ดและกำหนดค่าเป็นรายบุคคล:
Menu -> Manage Palette -> Install Tab -> Search and install the given libraries
เสร็จสิ้น: หากต้องการดาวน์โหลดโฟลว์ไปยัง IOT2050 คลิกที่ปุ่ม Deploy
ในการเปิดแดชบอร์ดของ Node-Red เปิด URL http://<IP of the IOT2050>:1880/ui
ขอบคุณสำหรับความสนใจในการบริจาค ทุกคนมีอิสระที่จะรายงานข้อบกพร่องเอกสารที่ไม่ชัดเจนและปัญหาอื่น ๆ เกี่ยวกับที่เก็บนี้ในส่วนปัญหา นอกจากนี้ทุกคนมีอิสระที่จะเสนอการเปลี่ยนแปลงใด ๆ ในที่เก็บนี้โดยใช้คำขอดึง
หากคุณไม่ได้ลงนามในข้อตกลงใบอนุญาตผู้มีส่วนร่วมของซีเมนส์ (CLA) ก่อนหน้านี้ระบบจะแจ้งให้คุณทราบโดยอัตโนมัติเมื่อคุณส่งคำขอดึงของคุณ สิ่งนี้สามารถทำได้อย่างสะดวกผ่านแพลตฟอร์มออนไลน์ของผู้ช่วย CLA เมื่อ CLA ลงนามแล้วคำขอดึงของคุณจะถูกล้างโดยอัตโนมัติและพร้อมสำหรับการรวมกันหากขั้นตอนการทดสอบอื่น ๆ ทั้งหมดสำเร็จ
โปรดอ่านข้อมูลทางกฎหมาย