53 KiB
មេរៀនដោះស្រាយបញ្ហា
មេរៀននេះជួយអ្នកដោះស្រាយបញ្ហាទូទៅពេលធ្វើការជាមួយសៀវភៅបង្រៀន IoT សម្រាប់អ្នកថ្មី។ បញ្ហាត្រូវបានរៀបចំតាមប្រភេទសម្រាប់ងាយស្រួលក្នុងការស្វែងរក។
បញ្ជីមាតិកា
- បញ្ហាការដំឡើង
- បញ្ហាឧបករណ៍ផ្ទាល់ខ្លួន
- បញ្ហាការតភ្ជាប់
- បញ្ហាសენს័រ និងឧបករណ៍ដំណើរការ
- បរិបទអភិវឌ្ឍន៍
- បញ្ហាការសម្តែង
- សារកំហុសទូទៅ
- ផ способовជំនួយ
បញ្ហាការដំឡើង
ការដំឡើង Python
បញ្ហា៖ កំណែ Python ចាស់ពេក
កំហុស៖ ត្រូវការពី Python 3.6 ឡើងទៅ
ដំណោះស្រាយ៖
- ទាញយក Python 3 ចុងក្រោយពី python.org
- ការដំឡើងលើ Windows សូមជ្រើស "បន្ថែម Python ទៅ PATH"
- សំណូមពរការដំឡើង៖
python3 --version
បញ្ហា៖ មានកំណែ Python ច្រើនបង្កការច្របូកច្របល់
រោគសញ្ញា៖ ប្រើកំណែ Python មិនត្រឹមត្រូវ ផ្នែកបណ្ណាល័យដំឡើងលើទីតាំងខុស
ដំណោះស្រាយ៖
- Windows: ប្រើ
py -3ជំនួសpythonដើម្បីហៅ Python 3 យ៉ាងច្បាស់ - macOS/Linux: ប្រើ
python3ជំនួសpython - តែងតែបង្កើត ហើយប្រើបរិបទមេឌីយ៉ាង (virtual environments) សម្រាប់គម្រោង
បញ្ហា៖ មិនរកឃើញបញ្ជា pip
កំហុស៖ `'pip' មិនត្រូវបានគេរំពឹងទុកជាបញ្ជាក្នុងម៉ាស៊ីន'
ដំណោះស្រាយ៖
- សាកល្បងប្រើ
pip3ជំនួសpip - ឬប្រើ
python -m pipឬpython3 -m pip - ប្រាកដថា Python ត្រូវបានបន្ថែមចូល PATH (ដំឡើងPythonឡើងវិញ ហើយជ្រើសជម្រើសនេះ)
VS Code និងផ្នែកបន្ថែម
បញ្ហា៖ ផ្នែកបន្ថែម Pylance មិនដំណើរការ
រោគសញ្ញា៖ គ្មាន IntelliSense, ការសម្រេចកូដ ឬការត្រួតពិនិត្យប្រភេទ
ដំណោះស្រាយ៖
- បើក Command Palette នៅ VS Code (
Ctrl+Shift+PឬCmd+Shift+P) - រត់ "Python: Select Interpreter"
- កំរើស Python interpreter ត្រឹមត្រូវ (បរិបទមេឌីយ៉ាងប្រសិនបើប្រើ)
- Reload ប្រព័ន្ធ
បញ្ហា៖ VS Code មិនចាប់ផ្តើមបរិបទមេឌីយ៉ាង
រោគសញ្ញា៖ ជ្រើស Python interpreter មិនត្រឹមត្រូវ
ដំណោះស្រាយ៖
- ប្រាកដថាបង្កើតនិងបើកបរិបទមេឌីយ៉ាងនៅក្នុង terminal
- បើក Command Palette ហើយរត់ "Python: Select Interpreter"
- ជ្រើស interpreter ពីថត
.venv - ពិនិត្យ status bar (ខាងក្រោមឆ្វេង) បង្ហាញកំណែ Python ត្រឹមត្រូវ
PlatformIO (Wio Terminal)
បញ្ហា៖ ការដំឡើង PlatformIO មិនបានជោគជ័យ
កំហុស៖ កំហុសផ្សេងៗពេលដំឡើង PlatformIO
ដំណោះស្រាយ៖
- ប្រាកដថា VS Code ទាន់សម័យ
- ដំឡើងផ្នែកបន្ថែម C/C++ ជាមុន
- ចាប់ផ្តើម VS Code ជាថ្មីបន្ទាប់ជាដំឡើង PlatformIO
- ពិនិត្យការតភ្ជាប់អ៊ីនធឺណិត (PlatformIO ទាញយកឯកសារធំ)
បញ្ហា៖ ប៊ូលដ័រ PlatformIO មិនចាប់បាន
រោគសញ្ញា៖ មិនអាចផ្ទុកកូដទៅ Wio Terminal
ដំណោះស្រាយ៖
- សាកល្បងខ្សែ USB ផ្សេង (ខ្សែខ្លះគឺសម្រាប់សាកថ្មតែប៉ុណ្ណោះ)
- ពិនិត្យ Device Manager (Windows) ឬ
ls /dev/tty*(macOS/Linux) - ដំឡើង ឬអាប់ដេតដ្រាយវែរ USB
- សាកល្បងច្រក USB ផ្សេង
- រអិលប៊ូតុងភ្លើងលើ Wio Terminal ឆាប់ៗពីរដង ដើម្បីចូលម៉ូដ bootloader
បញ្ហា៖ កំហុសបញ្ចូលកូដក្នុង PlatformIO
កំហុស៖ fatal error: Arduino.h: No such file or directory
ដំណោះស្រាយ៖
- លុបថត
.pioក្នុងគម្រោង - រត់ "PlatformIO: Rebuild" ពី Command Palette
- ប្រាកដថា
platformio.iniមានការកំណត់ប៊ូលដ័រត្រឹមត្រូវ៖[env:seeed_wio_terminal] platform = atmelsam board = seeed_wio_terminal framework = arduino
បណ្ណាល័យ Grove
បញ្ហា៖ ការនាំចូលបណ្ណាល័យ Grove បរាជ័យលើ Raspberry Pi
កំហុស៖ ModuleNotFoundError: No module named 'grove'
ដំណោះស្រាយ៖
- ដំឡើងបណ្ណាល័យ Grove ថ្មី៖
cd ~ git clone https://github.com/Seeed-Studio/grove.py cd grove.py sudo pip3 install . - ប្រសិនបើប្រើបរិបទមេឌីយ៉ាង អ្នកប្រហែលត្រូវតែដំឡើងជាសកល ឬចម្លងបណ្ណាល័យ
- ប្រាកដថា I2C បានបើក:
sudo raspi-config nonint do_i2c 0
បញ្ហា៖ Grove sensor មិនចាប់បាន
កំហុស៖ IOError: [Errno 121] Remote I/O error
ដំណោះស្រាយ៖
- ពិនិត្យការតភ្ជាប់ផ្លូវហត្ថ (ប្រាកដថា ខ្សែ Grove បានដាក់ត្រឹមត្រូវ)
- ប្រាកដថាសេនស័រត្រូវបានភ្ជាប់ទៅច្រកត្រឹមត្រូវ (analog, digital, I2C, UART)
- រត់
i2cdetect -y 1ដើម្បីមើលថាឧបករណ៍បង្ហាញលើ I2C bus មានទេ - សាកល្បងខ្សែ Grove ផ្សេង
- ប្រាកដថា Grove Base Hat ត្រូវបានដាក់លើពិសោធន៍ Raspberry Pi GPIO បានត្រឹមត្រូវ
បញ្ហាឧបករណ៍ផ្ទាល់ខ្លួន
Raspberry Pi
បញ្ហា៖ Raspberry Pi មិនចាប់ផ្តើម
រោគសញ្ញា៖ គ្មានការបង្ហាញទេ មិនមាន LED ធ្វើការ ឬអេក្រង់ពណ៌ខៀវ
ដំណោះស្រាយ៖
- ពិនិត្យថាមវន្ត៖ ប្រើថាមវន្ត USB-C 5V 3A ផ្លូវការសម្រាប់ Pi 4
- បញ្ហាគាត SD៖
- កែទ្រង់គាត SD និងដំឡើងឡើងវិញរបៀបប្រើ Raspberry Pi OS
- សាកល្បងគាត SD ផ្សេង (ប្រើម៉ាកណែនាំ)
- ប្រាកដថាគាត SD ត្រូវបានដាក់សរសេរត្រឹមត្រូវ
- ពិនិត្យការតភ្ជាប់ HDMI: សាកល្បងច្រក HDMI ទាំងពីរលើ Pi 4 ប្រើ HDMI ជិតថាមវន្ត
បញ្ហា៖ មិនអាច SSH ទៅ Raspberry Pi
រោគសញ្ញា៖ មិនអាចភ្ជាប់បាន ឬកាលពេលកំណត់លើកលែង
ដំណោះស្រាយ៖
- បើក SSH៖
- ពេលបង្ហាប់គាត SD ប្រើ Raspberry Pi Imager កំណត់ SSH នៅជម្រើសឈានមុខ
- ឬបង្កើតឯកសារគ្មានផ្នែកបន្ថែមឈ្មោះ
sshនៅក្នុងផ្នែក boot
- ស្វែងរកអាសយដ្ឋាន IP របស់ Pi:
- ពិនិត្យឧបករណ៍ភ្ជាប់សង្គមរបស់អ្នក
- ប្រើ
ping raspberrypi.local(ប្រសិនបើ mDNS ប្រតិបត្តិការ) - ប្រើឧបករណ៍ស្តាប់បណ្ដាញដូចជា
nmapឬ Angry IP Scanner
- ពិនិត្យបណ្តាញ៖
- ប្រាកដថា Pi នៅលើបណ្តាញដូចជាគណនីអ្នក
- សាកល្បងភ្ជាប់ ethernet ជំនួស WiFi
- ប្រាកដឈ្មោះនិងពាក្យសម្ងាត់ (លំនាំដើម៖ ឈ្មោះ
pi, ពាក្យសម្ងាត់raspberry)
បញ្ហា៖ Grove Base Hat មិនត្រូវបានស្គាល់
រោគសញ្ញា៖ សេនស័រមិនដំណើរការ កំហុស I2C
ដំណោះស្រាយ៖
- ប្រាកដថា Base Hat បានដាក់លើពិសោធន៍ GPIOទាំងអស់យ៉ាងត្រឹមត្រូវ
- ពិនិត្យថា ពិនភាគុំ់ខូចលើ Pi ឬ Base Hat
- បើក I2C interface៖
sudo raspi-config nonint do_i2c 0 sudo reboot - ពិនិត្យថា I2C ធ្វើការ៖
i2cdetect -y 1
បញ្ហា៖ Raspberry Pi ធ្វើការយឺត
រោគសញ្ញា៖ UI យឺត ផ្ទារាចលនា យឺត
ដំណោះស្រាយ៖
- ពិនិត្យល្បឿនគាត SD (ប្រើ Class 10 ឬលើស ស៊េរី SSD តាម USB)
- សម្អាតកន្លែងរក្សាទុក៖ ប្រើ
df -hដើម្បីពិនិត្យ លុបឯកសារមិនចាំបាច់ - បន្ថយ GPU memory នៅក្នុង
raspi-configប្រសិនបើមិនប្រើកាមេរ៉ា/អេក្រង់យ៉ាងខ្លាំង - បិទកម្មវិធីដែលមិនចាំបាច់
- ពិចារណាឡើងកំលាំងទៅ Pi 4 ក្នុងករណីប្រើ Pi 3 ឬចាស់ជាងនេះ
Wio Terminal
បញ្ហា៖ អេក្រង់ Wio Terminal ស្ពឺ
រោគសញ្ញា៖ គ្មានបង្ហាញផ្សេងទេបន្ទាប់ពីផ្ទុកកូដ
ដំណោះស្រាយ៖
- ពិនិត្យថាកូដចាប់ផ្តើមអេក្រង់ (បណ្ណាល័យ TFT_eSPI)
- អាប់ដេត firmware Wio Terminal ពី Seeed Wiki
- បន្ថែមកូដចាប់ផ្តើមអេក្រង់:
#include <TFT_eSPI.h> TFT_eSPI tft; tft.begin(); tft.fillScreen(TFT_BLACK); - សាកល្បងផ្ទុកគំរូពី PlatformIO ដើម្បីសាកល្បងឧបករណ៍
បញ្ហា៖ WiFi មិនដំណើរការលើ Wio Terminal
រោគសញ្ញា៖ មិនអាចភ្ជាប់ WiFi កំហុសបណ្តាញ
ដំណោះស្រាយ៖
- អាប់ដេត firmware WiFi: អនុវត្តតាម លទ្ធផល WiFi Wio Terminal
- ពិនិត្យលក្ខណៈសញ្ញា WiFi: ធ្វើការផ្ទៀងផ្ទាត់ SSID និងពាក្យសម្ងាត់ត្រឹមត្រូវ
- ថួរក WiFi: Wio Terminal គាំទ្រត្រឹម 2.4GHz WiFi ប៉ុណ្ណោះ (មិនគាំទ្រ 5GHz)
- កម្លាំងសញ្ញា: ក្រោយពីខ្សែ WiFi ទៅកាន់ម៉ាស៊ីនបម្រើ
- ការកំណត់ម៉ាស៊ីនបម្រើ: បណ្តាញសហគ្រាស ឬ WPA-Enterprise ច្រើនប្រហែលមិនដំណើរការ
បញ្ហា៖ Wio Terminal មិនត្រូវបានស្គាល់ពីកុំព្យូទ័រ
រោគសញ្ញា៖ ឧបករណ៍ USB មិនត្រូវបានរកឃើញ
ដំណោះស្រាយ៖
- សាកល្បងខ្សែ USB ផ្សេង: ប្រើខ្សែទិន្នន័យ មិនមែនខ្សែសាកថ្មប៉ុណ្ណោះ
- ចូលម៉ូដ bootloader: រអិលប៊ូតុងភ្លើងចុះពីលើពីរដងឆាប់ៗ
- LED ខៀវគួរតែបង្ហាញជារលក ឧបករណ៍បង្ហាញជា "Arduino" នៅក្នុង Device Manager
- ដំឡើងដ្រាយវែរ (Windows):
- ទាញ និងដំឡើង ដ្រាយវែរ USB Seeed
- សាកល្បងច្រក USB ផ្សេង: មិនប្រើ USB hub ប្រើភ្ជាប់ផ្ទាល់
- អាប់ដេតដ្រាយវែរ USB ប្រព័ន្ធ
បញ្ហា៖ សេនស័រមិនដំណើរការលើ Wio Terminal
រោគសញ្ញា៖ សេនស័រ Grove មិនអានទិន្នន័យ
ដំណោះស្រាយ៖
- ពិនិត្យការតភ្ជាប់ខ្សែ Grove
- ប្រាកដថាអ្នកប្រើច្រក Grove ត្រឹមត្រូវ (ឆ្វេង ឬស្តាំ)
- រួមបញ្ចូលបណ្ណាល័យត្រឹមត្រូវសម្រាប់សេនស័រ
- ពិនិត្យតម្រូវការថាមពលសេនស័រ
- សាកល្បងសេនស័រជាមួយកូដគំរូពីបណ្ណាល័យ
ឧបករណ៍ពាក់ព័ន្ធវីរុច (CounterFit)
បញ្ហា៖ ពុំអាចចាប់ផ្តើមកម្មវិធី CounterFit
កំហុស៖ កំហុស Python ផ្សេងៗពេលចាប់ផ្តើម CounterFit
ដំណោះស្រាយ៖
- ប្រាកដថាបរិបទមេឌីយ៉ាងបានបើក
- ដំឡើង ឬដំឡើងឡើងវិញ CounterFit:
pip install CounterFit - ពិនិត្យថាច្រក 5000 មិនត្រូវបានប្រើរួច:
- Windows:
netstat -ano | findstr :5000 - macOS/Linux:
lsof -i :5000
- Windows:
- បិទដំណើរការដែលប្រើច្រក 5000 ឬប្រើច្រកផ្សេង:
counterfit --port 5001
បញ្ហា៖ មិនអាចភ្ជាប់ទៅ CounterFit ពីកូដ
កំហុស៖ ការភ្ជាប់ត្រូវបានបដិសេធ ឬពេលកំណត់អស់
ដំណោះស្រាយ៖
- ប្រាកដថា CounterFit កំពុងដំណើរការ៖ បើកកម្មវិធី浏览器ទៅ
http://127.0.0.1:5000 - ពិនិត្យ URL ភ្ជាប់នៅក្នុងកូដធៀបនឹងអាសយដ្ឋាន CounterFit
- ប្រាកដថា firewall មិនរាំងខ្សែច្រក
- សាកល្បងចាប់ផ្តើមម្តងទៀត CounterFit និងកូដរបស់អ្នក
បញ្ហា៖ សេនស័រមិនបង្ហាញនៅក្នុង CounterFit
រោគសញ្ញា៖ សេនស័រដែលបានបង្កើតមិនបង្ហាញនៅក្នុង UI CounterFit
ដំណោះស្រាយ៖
- បង្កើតសេនស័រនៅក្នុង UI CounterFit មុនពេលរត់កូដ
- បង្កើតទំព័ររុញ (refresh)
- ពិនិត្យប្រភេទសេនស័រត្រូវនឹងអ្វីដែលកូដរំពឹងទុក
- សម្អាត cache របស់កម្មវិធី浏览器
បញ្ហាការតភ្ជាប់
ការតភ្ជាប់ WiFi
បញ្ហា៖ ឧបករណ៍មិនអាចភ្ជាប់ WiFi
រោគសញ្ញា៖ ពេលភ្ជាប់អស់កំណត់ ការផ្ទៀងផ្ទាត់បរាជ័យ
ដំណោះស្រាយ៖
- ពិនិត្យ SSID និងពាក្យសម្ងាត់: ប្រាកដថាត្រូវ
- ថួរក WiFi: ឧបករណ៍ IoT ភាគច្រើនគាំទ្រត្រឹម 2.4GHz (មិនមែន 5GHz)
- ការកំណត់ម៉ាស៊ីនបម្រើ:
- បិទ AP isolation ប្រសិនបើបានបើក
- ប្រើសុវត្ថិភាព WPA2-PSK (ជៀសវាង WPA3, WEP ឬបណ្តាញបើក)
- ប្រាកដថា DHCP បានបើក
- បណ្តាញលាក់: ប្រសិនបើ SSID លាក់ អ្នកប្រហែលត្រូវកំណត់យ៉ាងច្បាស់
- កម្លាំងសញ្ញា: ធ្វើឲ្យឧបករណ៍ជិតម៉ាស៊ីនបម្រើ
- ការរំខាន: ឧបករណ៍ផ្សេង កំដៅម៉ីក្រូ វា៉លក៏អាចរំខាន
បញ្ហា៖ ការតភ្ជាប់ WiFi ធ្លាក់ជាប្រចាំ
រោគសញ្ញា៖ ការតភ្ជាប់ពាក់កណ្តាល
ដំណោះស្រាយ៖
- ពិនិត្យភាពចល័តម៉ាស៊ីនបម្រើ និងពិចារណាចាប់ផ្តើមម្ដងទៀត
- អាប់ដេត firmware ឧបករណ៍
- ប្រើ IP ស្តាទិក ជំនួស DHCP
- បន្ថយចម្ងាយទៅម៉ាស៊ីនបម្រើ ឬបន្ថែម WiFi extender
- ពិនិត្យការរំខានពីឧបករណ៍ផ្សេងៗ
- ប្រាកដថាថាមពលគ្រប់គ្រាន់ (ពិសេស Raspberry Pi)
សេវាកម្ម Cloud
បញ្ហា៖ មិនអាចភ្ជាប់ទៅ Azure IoT Hub
កំហុស៖ ផ្ទៀងផ្ទាត់បរាជ័យ ការភ្ជាប់ត្រូវបានបដិសេធ
ដំណោះស្រាយ៖
- បញ្ជាក់គណនេយ្យ៖
- ពិនិត្យខ្សែភ្ជាប់ត្រឹមត្រូវ
- ប្រាកដថាគ្មានចន្លោះ ឬបន្ទាត់ខ្ទង់លើខ្សែភ្ជាប់
- ពិនិត្យការចុះបញ្ជីឧបករណ៍៖ ឧបករណ៍ត្រូវបានចុះបញ្ជីនៅ IoT Hub
- Firewall / Proxy: ប្រាកដថា MQTT (ច្រក 8883) ឬ HTTPS (ច្រក 443) បានកំណត់អនុញ្ញាត
- តំបន់ IoT Hub: ពិនិត្យថា IoT Hub កំពុងដំណើរការ និងមិនបាននៅតំបន់ផ្សេងបង្កការពន្យារពេល
- ដែនកំណត់ quota: ពិនិត្យថាតម្រូវការមិនលើសដែនកំណត់ឥតគិតថ្លៃ
- សាកល្បងការភ្ជាប់៖
az iot hub device-identity show-connection-string --hub-name YourIoTHub --device-id YourDevice
បញ្ហា៖ Azure Functions មិនធ្វើការជើងផ្សាយ
រោគសញ្ញា៖ សារត្រូវបានផ្ញើ ប៉ុន្តែលំនាំមិនធ្វើ
ដំណោះស្រាយ៖
- ពិនិត្យ Function App កំពុងដំណើរការ (មិនបានឈប់)
- ប្រាកដខ្សែភ្ជាប់នៅក្នុងការកំណត់ Function App
- ពិនិត្យកំណត់ហេតុ function នៅ Azure Portal
- ប្រាកដ Endpoint Event Hub compatible ត្រឹមត្រូវ
- ពិនិត្យទ្រង់ទ្រាយសារត្រូវបានផ្ញើសម្រប
- ពិនិត្យផែនការសេវាកម្ម Function App (consumption ឬ dedicated)
MQTT
បញ្ហា៖ ការភ្ជាប់ MQTT មិនបាន
កំហុស៖ ការភ្ជាប់ត្រូវបានបដិសេធ ផ្ទៀងផ្ទាត់បរាជ័យ ដំណោះស្រាយៈ
- អាសយដ្ឋាន Broker: ពិនិត្យ URL/IP Broker ថាត្រឹមត្រូវ
- កំពង់ផែ: ពិនិត្យលេខកំពង់ផែ (1883 សម្រាប់មិនអ៊ិនគ្រីប, 8883 សម្រាប់ TLS)
- ការផ្ទៀងផ្ទាត់អត្តសញ្ញាណ: ពិនិត្យឈ្មោះអ្នកប្រើ/ពាក្យសម្ងាត់ ប្រសិនបើត្រូវការ
- TLS/SSL: ប្រាកដថាសំបុត្រត្រឹមត្រូវ និងពឹងពាក់
- Firewall: ពិនិត្យកំពង់ផែមិនត្រូវបានបញ្ជាលឿន
- សាកល្បងជាមួយ MQTT client: ប្រើ MQTT Explorer ឬ mosquitto_pub/sub សម្រាប់សាកល្បង
បញ្ហា៖ សារ MQTT មិនទទួលបាន
រោគសញ្ញាៈ សារ បានផ្សាយ តែក៏មិនទទួលបានពីអ្នកជាវ
ដំណោះស្រាយៈ
- ឈ្មោះប្រធានបទ: ពិនិត្យថាប្រធានបទអ្នកជាវត្រូវនឹងប្រធានបទអ្នកផ្សាយបានត្រឹមត្រូវ
- កម្រិត QoS: សាកល្បង QoS 1 ឬ 2 ជំនួស 0
- Wildcards: ពិនិត្យការប្រើ wildcards ប្រធានបទបានត្រឹមត្រូវ (
+សម្រាប់កម្រិតតែមួយ,#សម្រាប់ច្រើនកម្រិត) - សារដែលរក្សាទុក: អ្នកផ្សាយអាចកំណត់ retain flag សម្រាប់រក្សាសារចុងក្រោយ
- ពេលវេលាភ្ជាប់: ប្រាកដថាអ្នកជាវភ្ជាប់មុនពេលផ្សាយសារ
បញ្ហាជាមួយ ឧបករណ៍ស៊ិនស័រ និងឧបករណ៍ចល័ត
ស៊ិនស័រ Grove
បញ្ហា៖ ស៊ិនស័របង្រួមតម្លៃខុស
រោគសញ្ញា: ការអានជានិច្ច 0, -1 ឬតម្លៃគ្មានអត្ថន័យ
ដំណោះស្រាយ:
- ពិនិត្យការតភ្ជាប់៖ ប្រាកដថាស៊ិនស័រត្រូវបានភ្ជាប់ត្រឹមត្រូវ
- កំពង់ផែត្រឹមត្រូវ: ពិនិត្យស៊ិនស័រនៅក្នុងប្រភេទកំពង់ផែត្រឹមត្រូវ៖
- ស៊ិនស័រ Analog → កំពង់ផែ Analog (A0, A2, A4)
- ស៊ិនស័រ Digital → កំពង់ផែ Digital (D5, D16, D18, ល។)
- ស៊ិនស័រ I2C → កំពង់ផែ I2C
- កំណត់តំរូវការតាមមនុស្សវិទ្យា: ស៊ិនស័រមួយចំនួនត្រូវការកំណត់ស្តង់ដា (ដីស្រូបសំណើម, ពន្លឺ)
- បង្វិលថាមពល: ពិភ្ជាប់ និងដោះសោស្និត្រកក្រោយ
- សៀវភៅច្បាប់ស៊ិនស័រ: ពិនិត្យលក្ខណៈបច្ចេកទេស និងតម្រូវការ
បញ្ហា៖ ស៊ិនស័រ សំណើមដី Capacitive រៀងរាល់ពេលអានគឺសើម
រោគសញ្ញា៖ ស៊ិនស័រអានការសំណើមខ្ពស់ទោះបីដីស្ងួត
ដំណោះស្រាយ:
- ត្រូវការកំណត់តំរូវការ៖ ស៊ិនស័រដីត្រូវតែបង្កើតស្តង់ដា៖
- អានតម្លៃក្នុងអាកាស (ស្ទះស្ងួត)
- អានតម្លៃក្នុងទឹក (ស្ទះសើម)
- បង្ហាញតម្លៃចន្លោះរវាងនេះ
- ពិនិត្យការការពារស៊ិនស័រ: ស៊ិនស័រសំណើមអាចបែកបាក់ ប្រសិនបើការការពារខូច
- ទីតាំង: ប្រាកដថាស៊ិនស័របញ្ចូលចូលក្នុងដីពេញលេញ
បញ្ហា៖ ការអានសន្ទស្សន៍សីតុណ្ហភាព/សំណើមខុស
រោគសញ្ញា៖ DHT11/DHT22 បង្ហាញសីតុណ្ហភាព ឬសំណើមខុស
ដំណោះស្រាយ:
- ទីតាំងស៊ិនស័រ: មិនប្រើពន្លឺព្រះអាទិត្យផ្ទាល់ ប្រភពកម្តៅ ឬខ្យល់ហូរ
- ពេលការរំកិលកម្តៅ៖ អនុញ្ញាតឲ្យស៊ិនស័រយកពេល 2 វិនាទី បន្ទាប់ពីបើកថាមពល មុនអានទិន្នន័យ
- កម្រិតអាន៖ ស៊ិនស័រ DHT ត្រូវការបំបទិន្នន័យពេញលេញចន្លោះ (យ៉ាងហោចណាស់ 2 វិនាទី)
- ពិនិត្យសំណើមទឹកកក: អាចមានផលប៉ះពាល់ដល់ការអាន
- គុណភាពស៊ិនស័រ: DHT11 មានភាពត្រឹមត្រូវតិចជាង DHT22
កាមេរា
បញ្ហា៖ កាមេរាមិនត្រូវបានរកឃើញលើ Raspberry Pi
កំហុស: mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera'
ដំណោះស្រាយ:
- បើកអន្តរកម្មកាមេរា:
ចូលទៅ Interface Options → Camera → Enablesudo raspi-config - ពិនិត្យខ្សែរបញ្ចូល: ប្រាកដថាខ្សែកាមេរារត្រូវបានដាក់ត្រឹមត្រូវ
- ផ្ទាំងខៀវឈរមុខចំពោះកំពង់ USB លើ Pi Zero
- ផ្ទាំងខៀវឆ្វេងរូបមុខពីកំពង់ USB លើ Pi 4
- ធ្វើបច្ចុប្បន្នភាព firmware:
sudo apt update sudo apt full-upgrade sudo reboot - សាកល្បងកាមេរា:
raspistill -o test.jpg
បញ្ហា៖ រូបភាពកាមេរាមិនបានគុណភាពល្អ
រោគសញ្ញា៖ រូបភាពមិនច្បាស់ ធំងងឹត ឬជារូបភាពបាត់បង់ពណ៌
ដំណោះស្រាយ:
- មើលទិស: លុបស្នាមការពារពីលើទ្រនុងកាមេរា ប្ដូរតំណកបើអាចធ្វើបាន
- ពន្លឺ: ប្រាថ្នាពន្លឺគ្រប់គ្រាន់
- ការកំណត់កាមេរា: ប្ដូរតំរូវការបញ្ចេញពន្លឺ ISO និង white balance ក្នុងកូដ
- ស្ថិរភាព: រក្សាទុកកាមេរា ហើយប្រើ tripod ប្រសិនបើត្រូវការ
- កម្រិតទំហំរូបភាព: កុំឲ្យលើសកម្រិតកម្រិតអតិបរមារបស់កាមេរា
មីក្រូហ្វូន និង ស្បែកហ្វូន
បញ្ហា៖ គ្មានសំឡេងបញ្ចូល/ចេញ
រោគសញ្ញា៖ មីក្រូហ្វូនមិនកំណត់សំឡេង ស្បែកហ្វូនមិនអាចលេង
ដំណោះស្រាយ:
- ពិនិត្យការតភ្ជាប់: ប្រាកដថាឧបករណ៍សំឡេងភ្ជាប់ត្រឹមត្រូវ
- សាកល្បងឧបករណ៍៖
- ស្បែកហ្វូន៖
speaker-test -t wav -c 2 - មីក្រូហ្វូន៖
arecord -lសម្រាប់បញ្ជី,arecord test.wavសម្រាប់ថត
- ស្បែកហ្វូន៖
- ចំណុចសំឡេង: ពិនិត្យ និងកែតម្រូវចំណុចសំឡេង:
alsamixer - ជ្រើសយកឧបករណ៍សំឡេងៈ បញ្ជាក់ឧបករណ៍នៅក្នុងកូដត្រឹមត្រូវ
- បញ្ហាអ្នកបើកបរមុខងារ: ដំណើរការ ALSA ឬដំឡើងឡើងវិញអ្នកបើកបរមុខងារ
បញ្ហា៖ ReSpeaker hat មិនដំណើរការ
រោគសញ្ញា៖ ឧបករណ៍សំឡេងមិនត្រូវបានរកឃើញ
ដំណោះស្រាយ:
- ដំឡើងអ្នកបើកបរមុខងារ:
git clone https://github.com/HinTak/seeed-voicecard cd seeed-voicecard sudo ./install.sh sudo reboot - ពិនិត្យការដំឡើង:
arecord -lគួរតែបង្ហាញ ReSpeaker - ធ្វើបច្ចុប្បន្នភាព firmware: ជួរ Pi OS ច្រើនត្រូវការកែសម្រួលអ្នកបើកបរមុខងារ
- ពិនិត្យការចាក់: ប្រាកដថា hat ត្រូវបានភ្ជាប់ត្រឹមត្រូវទៅ GPIO pins
បញ្ហាបរិបទអភិវឌ្ឍន៍
VS Code
បញ្ហា៖ Terminal មិនបើក virtual environment បានជាស្វ័យប្រវត្តិ
រោគសញ្ញា៖ Terminal បើក ប៉ុន្តែមិនបើក venv
ដំណោះស្រាយ:
- កំណត់ Python interpreter: Command Palette → "Python: Select Interpreter" → ជ្រើស venv
- បើក VS Code ម្តងទៀត បន្ទាប់ពីជ្រើស interpreter
- ពិនិត្យការកំណត់: ក្នុង
settings.jsonបន្ថែម:"python.terminal.activateEnvironment": true
បញ្ហា៖ កូដមិនដំណើរការលើឧបករណ៍
រោគសញ្ញា៖ កូដដំណើរការ ប៉ុន្តែមិនមានអ្វីកើតឡើងលើឧបករណ៍
ដំណោះស្រាយ:
- ប្រាកដថាកូដបានរក្សាទុក (ពិនិត្យចុចសញ្ញាក្បាលផ្ទាំងឯកសារ)
- ពិនិត្យ Python ដែលដំណើរការ៖
which pythonឬwhere python - សម្រាប់ Wio Terminal: ប្រាកដថាកូដត្រូវបានផ្ទុកឡើងតាម PlatformIO (ចុចប៊ូតុង upload)
- សម្រាប់ Raspberry Pi: SSH ចូល Pi ហើយដំណើរការកូដនៅទីនោះ
- ពិនិត្យវីនដូវផលប៉ះពាល់ សម្រាប់កំហុស
បញ្ហា៖ IntelliSense មិនបង្ហាញមុខងារសៀវភៅបណ្ណាល័យ
រោគសញ្ញា៖ គ្មានការបញ្ចូលបញ្ច្រាសសម្រាប់ម៉ូឌុលនាំចូល
ដំណោះស្រាយ៖
- ប្រាកដថាបណ្ណាល័យត្រូវបានដំឡើងនៅក្នុងបរិបទបច្ចុប្បន្ន
- ធ្វើរុញជំរុញ VS Code window
- ពិនិត្យថា Python interpreter ត្រឹមត្រូវ
- ដំឡើង type stubs ប្រសិនបើមាន៖
pip install types-<library-name>
បរិបទ Python Virtual Environments
បញ្ហា៖ មិនអាចបង្កើត virtual environment បាន
កំហុស: The virtual environment was not created successfully
ដំណោះស្រាយ:
- ដំឡើងមុខងារ venv:
- Ubuntu/Debian:
sudo apt install python3-venv - macOS: មកជាមួយ Python ស្រាប់
- Windows: ដំឡើងឡើងវិញ Python ជាមួយគ្រប់គ្រងគ្រឿងបន្លាស់
- Ubuntu/Debian:
- ពិនិត្យការដំឡើង Python: ប្រាកដថា Python ត្រូវបានដំឡើងត្រឹមត្រូវ
- ប្រើផ្លូវពេញ: សាកល្បង
python3 -m venv .venvជាមួយការហៅ python3 ដាស់តឿន
បញ្ហា៖ កញ្ចប់ត្រូវបានដំឡើងច្របាក់ទីតាំង
រោគសញ្ញា៖ កំហុសនាំចូលបន្ទាប់ពីដំឡើងកញ្ចប់
ដំណោះស្រាយ:
- ប្រាកដថា venv ត្រូវបានបើក: Prompt បង្ហាញ
(.venv) - ពិនិត្យទីតាំង pip:
which pipត្រូវបង្ហាញទៅ.venv/bin/pip - ដំឡើងឡើងវិញនៅក្នុង venv: បើក venv ហើយ
pip install <package> - កុំប្រើ sudo ជាមួយ pip នៅក្នុង virtual environment
បញ្ហា៖ Virtual environment មិនអាចផ្ទុកបាន
រោគសញ្ញា៖ Venv មិនដំណើរការបន្ទាប់ពីផ្លាស់ទី ឬនៅលើកុំព្យូទ័រផ្សេង
ដំណោះស្រាយ:
- កុំផ្លាស់ទី venv: លុបចោលហើយបង្កើតឡើងវិញនៅទីតាំងថ្មី
- ប្រើ requirements.txt:
pip freeze > requirements.txt pip install -r requirements.txt - បង្កើតឡើងវិញ venv:
python3 -m venv .venv source .venv/bin/activate # ឬ activate.bat នៅលើ Windows pip install -r requirements.txt
ផ្នែក Dependencies
បញ្ហា៖ ការដំឡើងកញ្ចប់បរាជ័យ
កំហុស: កំហុស pip ផ្សេងៗពេលដំឡើង
ដំណោះស្រាយ:
- ធ្វើបច្ចុប្បន្នភាព pip:
pip install --upgrade pip - ដំឡើងឧបករណ៍កសាង:
- Ubuntu/Debian:
sudo apt install build-essential python3-dev - macOS:
xcode-select --install - Windows: ដំឡើង Visual Studio Build Tools
- Ubuntu/Debian:
- ពិនិត្យការតភ្ជាប់អ៊ីនធឺណិត
- សាកល្បងប្រភពកញ្ចប់ផ្សេងៗ:
pip install --index-url https://pypi.org/simple/ <package> - ដំឡើងកំណែជាក់លាក់៖
pip install <package>==<version>
បញ្ហា៖ សំឡឹងទុកបញ្ហា Dependency Conflict
កំហុស: ERROR: pip's dependency resolver does not currently take into account all the packages that are installed
ដំណោះស្រាយ:
- ប្រើ virtual environment ថ្មីៗ សម្រាប់រាល់គម្រោង
- ធ្វើបច្ចុប្បន្នភាពកញ្ចប់:
pip install --upgrade <package> - ពិនិត្យความត្រូវតាម: ប្រើ
pip checkសម្រាប់រកបញ្ហា - ដំឡើងកំណែដែលសមរម្យ: បញ្ជាក់ជួរជាមួយ requirements.txt
បញ្ហាប្រតិបត្តិការ
បញ្ហា៖ កូដដំណើរការយឺត
រោគសញ្ញា៖ ពន្យាពេល, ពេលវេលា timeout, អត់ឆ្លើយតប
ដំណោះស្រាយ:
- កាត់បន្ថយកម្រិតអានស៊ិនស័រ: កុំអានឲ្យស៊ិនស័រញឹកញាប់ពេក
- បង្កើតរង្វិលងារល្អ: ជៀសវាងការរង់ចាំល្បឿនខ្ពស់, ប្រើ sleep() ឬពេលពន្យាពេល
- បញ្ហាអង្គចងចាំ:
- បិទកម្មវិធីមិនចាំបាច់
- ដោះស្រាយទំហំទទេ
- តាមដានជាមួយ
topឬhtopលើ Pi
- ល្បឿនកាត SD: ប្រើកាត SD ឬ SSD លឿនសម្រាប់ Raspberry Pi
- ពន្យាពេលបណ្តាញ: ប្រើ async សម្រាប់ការហៅបណ្តាញ
បញ្ហា៖ កំហុសចេញពីអង្គចងចាំ
កំហុស៖ MemoryError ឬ កម្មវិធីរាំងស្ទះ
ដំណោះស្រាយ:
- សម្រាប់ Raspberry Pi:
- បិទកម្មវិធីមិនចាំបាច់
- បង្កើនទំហំ swap
- ប្រើប្រព័ន្ធប្រតិបត្តិការស្រាល (Lite version)
- អាប់ដេត RAM (Pi 4 មានជម្រើស 2/4/8GB)
- សម្រាប់ Wio Terminal:
- កាត់បន្ថយទំហំទុកបន្ថ័យ
- ប្រើរូបភាពតូចជាង
- បង្កើត efficiency សម្រាប់ការប្រើ string
- ពិនិត្យចេញ memory leaks (អង្គចងចាំមិនបានចេញ)
បញ្ហា៖ បាត់បង់ទិន្នន័យ ឬ បាក់បែក
រោគសញ្ញា៖ សារបាត់, ឯកសារបាក់បែក
ដំណោះស្រាយ:
- បញ្ហាកាត SD:
- ប្រើកាត SD គុណភាពល្អ (ជៀសវាងកាតថោក/ចម្លង)
- បង្កើតបម្រុងទុកចម្លងជាប្រចាំ
- បិទប្រព័ន្ធត្រឹមត្រូវ (កុំចាប់ភ្លើងភ្លោះ)
- Buffer overflow: កើនទំហំ buffer ក្នុងកូដ
- ភាពទុកចិត្តបណ្តាញ: អនុវត្តលក្ខណៈ logic retry និងដោះស្រាយកំហុស
- គុណភាពសេវា: ប្រើ MQTT QoS 1 ឬ 2 សម្រាប់សារសំខាន់ៗ
សារកំហុសទូទៅ
ModuleNotFoundError: No module named 'X'
ហេតុ៖ មិនបានដំឡើង package ឬ virtual environment មិនបានបើក
ដំណោះស្រាយ:
pip install X
ប្រាកដថា virtual environment ត្រូវបានបើកជាមុនសិន។
Permission denied លើ Linux/macOS
ហេតុ៖ ត្រូវការឥណទានដំណើរការ ឬ បញ្ហាសិទ្ធិឯកសារ
ដំណោះស្រាយ:
- សម្រាប់ប្រតិបត្តិការរដ្ឋបាល៖ ប្រើ
sudo - សម្រាប់ pip៖ កុំប្រើ sudo ជាមួយ venv, បើក venv ជាមុន
- សម្រាប់ផត់ស៊េរីយ៉ាល់៖ បញ្ជូលអ្នកប្រើទៅក្រុម dialout៖
sudo usermod -a -G dialout $USERបន្ទាប់មកចាកចេញ/ចូលវិញ
OSError: [Errno 98] Address already in use
ហេតុ: កំពង់ផែត្រូវបានប្រើរួចដោយដំណើរការផ្សេង
ដំណោះស្រាយ:
- ស្វែងរកដំណើរការដែលប្រើកំពង់ផែ:
lsof -i :<port>ឬnetstat -ano | findstr :<port> - សម្លាប់ដំណើរការ ឬប្រើកំពង់ផែផ្សេងក្នុងកូដរបស់អ្នក
SSL: CERTIFICATE_VERIFY_FAILED
ហេតុ: ការផ្ទៀងផ្ទាត់សំបុត្រ SSL បរាជ័យ
ដំណោះស្រាយ:
- ធ្វើបច្ចុប្បន្នភាពសំបុត្រ៖
pip install --upgrade certifi - ពិនិត្យម៉ោងប្រព័ន្ធ៖
date - សម្រាប់ការអភិវឌ្ឍន៍តែប៉ុណ្ណោះ (មិនធ្វើផលិតកម្ម): បិទការផ្ទៀងផ្ទាត់ក្នុងកូដ
IndentationError: unexpected indent
ហេតុ: បញ្ហាការតម្រូវសរសេរកូដ Python (ច្របល់ tabs និង spaces)
ដំណោះស្រាយ:
- ប្រើការរចនាសរសេរជារយៈស្តង់ដារសម្រាប់ Python (4 ផ្ទះ)
- កំណត់ editor ប្រើ spaces ជំនួស tabs
- VS Code: កំណត់
"editor.insertSpaces": trueនិង"editor.tabSize": 4
UnicodeDecodeError ឬ UnicodeEncodeError
ហេតុ: បញ្ហាកូដអត្ថបទ
ដំណោះស្រាយ:
# នៅពេលអានឯកសារ
with open('file.txt', 'r', encoding='utf-8') as f:
content = f.read()
# នៅពេលសរសេរឯកសារ
with open('file.txt', 'w', encoding='utf-8') as f:
f.write(content)
ទទួលបានជំនួយ
បើអ្នកបានសាកល្បងជំហានដោះស្រាយបញ្ហាទាំងនេះហើយនៅតែមានបញ្ហា៖
1. ពិនិត្យធនធានដែលមានស្រាប់
- ឯកសារណ៍៖ ពិនិត្យមើល README និងការណែនាំមេរៀន
- មេរៀនឧបករណ៍៖ ពិនិត្យ hardware.md សម្រាប់ព័ត៌មានពាក់ព័ន្ធឧបករណ៍
- Seeed Studio Wiki: Seeed Studio Wiki សម្រាប់គ្រឿងញៀន Grove
2. ស្វែងរកបញ្ហាដូចគ្នា
- GitHub Issues៖ ស្វែងរក បញ្ហាដែលមានស្រាប់
- Stack Overflow៖ ស្វែងរកសារកំហុស
- វេទិកាឧបករណ៍៖ ពិនិត្យវេទិកា Raspberry Pi ឬ Arduino
3. បង្កើតបញ្ហា GitHub
បើអ្នករកមិនឃើញដំណោះស្រាយ:
- ចូល GitHub Issues
- ចុច "New Issue"
- ផ្ដល់ព័ត៌មាន៖
- ការពិពណ៌នាបញ្ហាឲ្យច្បាស់
- ជំហានកើតឡើង
- សារកំហុស (អត្ថបទពេញលេញ)
- កំណែឧបករណ៍/កម្មវិធី
- អ្វីដែលអ្នកបានព្យាយាម
- រូបភាពអេក្រង់ ប្រសិនបើមាន
4. ចូលរួមសហគមន៍
- Discord: Microsoft Foundry Discord
- Microsoft Learn: Microsoft Learn IoT
5. ផ្ដល់របាយការណ៍បញ្ហាដែលល្អ
របាយការណ៍បញ្ហាល្អរួមមាន៖
- បរិស្ថាន៖ ប្រព័ន្ធប្រតិបត្ដិការ (OS), ជំពូក Python,ឧបករណ៍ប្រើប្រាស់
- ជំហានក្នុងការស្ទង់មើល៖ ជំហានពិតប្រាកដដែលបង្ករឲ្យមានបញ្ហា
- អ្វីដែលរំពឹងទុក៖ អ្វីដែលគួរត្រូវកើតឡើង
- អ្វីដែលកើតឡើងជាធម្មតា៖ អ្វីដែលពិតជាកើតឡើង
- សារបញ្ហា៖ អត្ថបទកំហុសពេញលេញ មិនមែនជារូបភាពថតផ្ទាំងអេក្រង់ទេ
- កូដ៖ ឧទាហរណ៍កូដតូចបំផុតដែលបង្កប់បញ្ហា
ជំនួយក្នុងការពារជំងឺ
អនុវត្តល្អប៉ុន្មានទូទៅ
- រក្សាទុកចម្លង៖ ការចម្លងទុកជាប្រចាំនៃ SD card/kod ដែលវាយតម្លៃបាន
- ចុះបញ្ជីការផ្លាស់ប្តូរ៖ កត់សម្គាល់អ្វីដែលដំណើរការនៅក្នុងមតិយោបល់
- គ្រប់គ្រងជំពូក៖ ប្រើ git ដើម្បីតាមដានការផ្លាស់ប្តូរកូដ
- សាកល្បងចាំបាច់៖ សាកល្បងការផ្លាស់ប្តូរតិចតួចមុនចូលបញ្ចូល
- អានសារកំហុស៖ ពួកវាមានពាក្យថាកំហុសដោយម៉ោង
- ធ្វើបច្ចុប្បន្នភាពជាប្រចាំ៖ រក្សាទុកកម្មវិធី/ផ្នែករឹងឲ្យទាន់សម័យ
- ប្រើធាតុជាគុណភាព៖ ជៀសវាងខ្សែថ្ម/ផ្គត់ផ្គង់ថាមពលថោក
- ថាមពលឈរជាប់៖ ប្រើប្រភពថាមពលសមរម្យ (ពិសេស Pi)
ការអភិវឌ្ឍន៍កម្មវិធី
- ចាប់ផ្តើមពីភាពសាមញ្ញ៖ ចាប់ផ្តើមជាមួយកូដឧទាហរណ៍ដែលដំណើរការ
- ផ្លាស់ប្តូរតែម្ដង៖ ง่ายសម្រាប់រកអ្វីខូចខាត
- សាកល្បងជាប្រចាំ៖ ចាប់បញ្ហា ពេលឆាប់
- រក្សារឱ្យស្អាត៖ រៀបចំឯកសារ និងកូដដោយមានហេតុផល
- បញ្ចូលមតិយោបល់កូដ៖ អ្នកនៅថ្ងៃក្រោយនឹងស្រឡាញ់វា
មេរៀនដោះស្រាយបញ្ហានេះ ត្រូវបានថែរក្សាដោយសហគមន៍។ ប្រសិនបើអ្នករកឃើញដំណោះស្រាយសម្រាប់បញ្ហាដែលមិនមាននៅទីនេះ សូមពិចារណាបានចូលរួម contributing ដើម្បីជួយអ្នកដទៃ!
ការព្រមាន៖
ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI Co-op Translator។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬអក្សរបាត់បង់ខុសខាង។ ឯកសារដើមនៅភាសាផ្ទាល់ខ្លួនគួរត្រូវបានគេសង្ស័យថា ជាអ្នកផ្តល់ព័ត៌មានដ៏ទូលំទូលាយ។ សម្រាប់ព័ត៌មានដ៏សំខាន់ សូមផ្ដល់អនុសាសន៍ឱ្យប្រើការបកប្រែដោយមនុស្សដែលមានជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ខុស ឬការពន្យល់ខុស ដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។