$30 off During Our Annual Pro Sale. View Details »

obnizを制御するChatGPT自作プラグイン #iotlt #chatgpt

n0bisuke
September 21, 2023

obnizを制御するChatGPT自作プラグイン #iotlt #chatgpt

IoTLT vol103 at ソフトバンクでの発表 https://iotlt.connpass.com/event/294281/

n0bisuke

September 21, 2023
Tweet

More Decks by n0bisuke

Other Decks in How-to & DIY

Transcript

  1. *P5-5
    $IBU(15ͷPCOJ[ϓϥάΠϯ
    ੁݪͷͼ͚͢
    !OCJTVLF

    View Slide

  2. ੁݪͷͼ͚͢
    ɾϓϩτλΠϐϯάઐ໳εΫʔϧʮϓϩτΞ΢τελδΦʯ
    σδλϧϋϦ΢ουେֶେֶӃඇৗۈߨࢣϓϩμΫτϓϩτλΠϐϯά*
    ɾݸਓ׆ಈ
    *P5-5ʢࠃ಺࠷େͷ*P5ίϛϡχςΟʣ
    -*/&"1*&YQFSU.JDSPTPGU.71*#.$IBNQJPO
    ࡢ೥·ͰࣾձษڧͰډञ԰ཆ࿝೫୍ͰΞϧόΠτ
    OPCJTVLFTVHBXBSB

    View Slide

  3. ϋΠίϯςΫετͳωλΛ΍Δ͜ͱ͕ଟ͍
    .6TFS(SPVQγϟτϧϥϯͰരࢮͨ͠
    ڈ೥ͷ(8

    View Slide

  4. ϓϩτΞ΢τελδΦظੜืूத
    OPCJTVLFTVHBXBSB
    ձࣾͷਓͱ͔ۙ͘ͷਓͰڵຯ͋Γͦ͏ͳਓ͍ͨΒڭ͍͑ͯͩ͘͞
    ʮ·͡Ͱ͍͢͝ʯ

    View Slide

  5. Έͳ͞ΜμΠεΩ$IBU(15
    ݴޠϞσϧ(15Λ૊ΈࠐΜͩ$IBU"*αʔϏε
    ৭ʑݴ༿ղऍͯ͘͠ΕΔ͚Ͳܭࢉऑ͔ͬͨΓɺ
    ࠷৽ͷ৘ใ͸ର৅֎ͳͲऑ఺ଟ͠
    ༗ྉ൛ͩͱϓϥάΠϯͱ͍͏࢓૊Έ͕࢖͑ɺ
    αʔυύʔςΟͷϓϩάϥϜΛ૊ΈࠐΊΔ
    a࢖ͬͯ·͔͢ʔʁ

    View Slide

  6. $IBU(151MVHJO
    ৭ʑ͋Δ͚Ͳࠃ಺ϕϯμʔͩͱ৯΂ϩάϓϥάΠϯ͕༗໊

    View Slide

  7. l$IBU(15͔Β-νΧΛͯ͠Έ͍ͨz
    ࠷ۙतۀͰ$IBU(15ͷϓϥάΠϯ։ൃΛࢼͯ͠·ͨ͠ɻ
    ;ͱࢥ͏

    View Slide

  8. ྨࣅͷऔΓ૊Έ
    ͨͳ͔͍ͤ͝͞Μ
    0QFO"*ͷ"1*Λܦ༝ͯ͠-νΧΛ͍ͯͨ͠ɻ

    View Slide

  9. Կ͕ҧ͏ͷʁ
    (15͸࢖ͬͯΔ͚Ͳɺ$IBU(15͔Β-νΧͰ͸ͳ͍
    $IBU(15ʺ(15͸0,

    View Slide

  10. 0QFO"*ͷ(15"1*։ൃWT$IBU(151MVHJO։ൃ
    $IBU(15ͷதʹ࢖ΘΕ͍ͯΔ(15΍(15ͱ͍ͬͨϞσϧΛ௚઀ར༻
    l֎૷z͸-*/&#PUͩͬͨΓɺ8FCαΠτͩͬͨΓͰ$IBU(51͸ར༻͠ͳ͍
    "1*ͷར༻Ͱैྔ՝ۚ
    0QFO"*ͷ"1*։ൃ
    $IBU(15ͷϓϥάΠϯ։ൃ ࠓճͬͪ͜ω

    $IBU(15ࣗମΛΧελϚΠζ͢Δ͜ͱ͕ग़དྷΔ࢓૊Έ
    l֎૷z͸$IBU(15Λͦͷ··ར༻
    ϓϥάΠϯར༻ʹ͸$IBU(151MVTʢ༗ঈ൛ʣ͕ඞཁ

    View Slide

  11. ϓϥάΠϯ։ൃΠϝʔδ
    ϓϥάΠϯ

    ࣗ࡞ϓϩάϥϜ
    Ϣʔβʔ
    $IBU(15ར༻

    ʜͱ͍͏ײ͡Ͱ։ൃελʔτ

    View Slide

  12. ։ൃݴޠࣗମ͸8FCαʔόʔΛ࡞ΕͨΒͳΜͰ΋0,
    OQNJDPSTFYQSFTT
    /PEFKTFYQSFTTͰ࡞੒
    ࠷௿ݶͩͱͭͷϑΝΠϧ͕͋Ε͹࡞੒Մೳ
    ϚχϡϑΣετͷ+40/ϑΝΠϧ
    "1*ͷఆٛ:".-ϑΝΠϧ
    ϓϩάϥϜຊମʢNBJOKTͩͬͨΓNBJOQZͩͬͨΓʣ

    View Slide

  13. ඞཁͳϚχϡϑΣετϑΝΠϧXFMMLOPXOBJQMVHJOKTPO
    \
    TDIFNB@WFSTJPOW
    OBNF@GPS@IVNBOPCOJ[ͷ੍ޚϓϥάΠϯ
    OBNF@GPS@NPEFMPCOJ[@DPOUSPM@QMVHJO
    EFTDSJQUJPO@GPS@IVNBOPCOJ[Λ੍ޚͯ͠*P5Λ࣮ݱ͠·͢ɻ
    EFTDSJQUJPO@GPS@NPEFM5IJTQMVHJODPOUSPMTPCOJ[UPSFBMJ[FBTNBSUIPNF*USFDPHOJ[FTMJHIUJOHPOP
    ff
    BOEDPMPS
    JOGPSNBUJPOBOEDPOWFSUTJUUP3(#WBMVFTGPSDPOUSPM
    BVUI\
    UZQFOPOF
    ^
    BQJ\
    UZQFlPQFOBQJ
    VSMIUUQTϗετ໊PQFOBQJZBNM
    ^
    MPHP@VSMIUUQTϗετ໊MPHPQOH
    DPOUBDU@FNBJMTVQQPSU!FYBNQMFDPN
    MFHBM@JOGP@VSMIUUQTFYBNQMFDPNMFHBM
    ^
    EFTDSJQUJPO@GPS@NPEFMʹͲΜͳจষॻ͔͕͘ॏཁ

    View Slide

  14. OBNF@GPS@NPEFMͷ໋໊نଇ͸஫ҙ
    OBNF@GPS@NPEFMPCOJ[@DPOUSPM@QMVHJO ͜Ε͸μϝ
    OBNF@GPS@NPEFMPCOJ[@DPOUSPM@QMVHJO
    ͜Ε͸0,
    ه߸͸@ʢΞϯμʔείΞʣͷΈͬΆ͍

    View Slide

  15. Πϯετʔϧ

    View Slide

  16. ͏·͍͘͘ͱʜ ׂͱԿճ͔ϛεͬͯΔ

    +40/ܗࣜͰPOP
    ff
    ͱ͔஋͕͘Δ

    View Slide

  17. View Slide

  18. σόοάͰΊΜͲ͍͘͞ͱ͜Ζ
    BJQMVHJOKTPOͱPQFOBQJZBNMʹؔͯ͠͸มߋ͕͋Δ৔߹͸࠶
    ౓Πϯετʔϧ͠ͳ͓͢͠Δඞཁ͕͋Δ
    ˞࣮ࡍͷϓϩάϥϜʹؔͯ͠͸ϓϩάϥϜ࠶ىಈ͚ͩͰ0,
    ࠶Πϯετʔϧ͸৽͘͠νϟοτ։͍ͯϓϥάΠϯ։͍ͯΛ΍Β
    ͳ͍ͱ͍͚ͣ਺ΫϦοΫͱಡΈࠐΈ͕࣌ؒԯ߷

    PQFOBQJZBNM͕ฆΒΘ͍͠ɺPQFOBJZBNMͰ͸ͳ͍

    View Slide

  19. ͔ͤͬ͘ͳͷͰ(15ͬΆ͍ػೳ΋࢖ͬͯΈΔ

    View Slide

  20. View Slide

  21. Ωλʔʔʔʔ

    View Slide

  22. ࣗવݴޠͰ৭Λࢦఆ͢Δͱ಺෦ม׵Λউखʹ΍ͬͯ͘ΕΔ
    app.post('/colorLED/:rgb', (req, res) => {


    console.log(`color LED..!!`)


    const rgb = req.params.rgb;


    const [r, g, b] = rgb.split(',');


    rgbled.rgb(r,g,b);


    // console.log(req.params, rgb, req.body, rgb.split(','))


    res.status(200).send('OK');


    });
    ʮਫ৭ʹͯ͠ʯ಺෦తʹ
    ʮ୶͍੨ʹͯ͠ʯ಺෦తʹ
    NBJOKT
    DPMPS-&%SHCͷؔ਺಺෦
    -JLF'VODUJPO$BMMJOH

    View Slide

  23. $IBU(15ͷར༻͕ࠓޙ૿͍͑ͯ͘ͱɺʮ$IBU(15ͷΠϯλʔϑΣʔεͰ
    ৭ʑ΍ΕΔͱخ͍͠ʯ͕૿͖͑ͯͦ͏
    ελʔτظͷ-*/&#PUͷΑ͏ͳײ͡ɻ
    -*/&#PUͷར఺ʢΠϯλʔϑΣʔεߟ͑ͳ͍͍͘ΑͶΈ͍ͨͳʣ΋಺
    แ͍ͯ͠Δ໘͕ଟ͍
    ؔ਺ݺͼग़͠ͷ෦෼͸ײಈ͕͋ΔͷͰମݧ͓ͯ͘͠ͷྑ͍͔΋ɻ
    ͜Εخ͍͠ʁ

    View Slide

  24. ࠶ܝؔ਺ݺͼग़͠ͷΩϞ
    \
    TDIFNB@WFSTJPOW
    OBNF@GPS@IVNBOPCOJ[ͷ੍ޚϓϥάΠϯ
    OBNF@GPS@NPEFMPCOJ[@DPOUSPM@QMVHJO
    EFTDSJQUJPO@GPS@IVNBOPCOJ[Λ੍ޚͯ͠*P5Λ࣮ݱ͠·͢ɻ
    EFTDSJQUJPO@GPS@NPEFM5IJTQMVHJODPOUSPMTPCOJ[UPSFBMJ[FBTNBSUIPNF*USFDPHOJ[FTMJHIUJOHPOP
    ff
    BOEDPMPS
    JOGPSNBUJPOBOEDPOWFSUTJUUP3(#WBMVFTGPSDPOUSPM
    BVUI\
    UZQFOPOF
    ^
    BQJ\
    UZQFlPQFOBQJ
    VSMIUUQTϗετ໊PQFOBQJZBNM
    ^
    MPHP@VSMIUUQTϗετ໊MPHPQOH
    DPOUBDU@FNBJMTVQQPSU!FYBNQMFDPN
    MFHBM@JOGP@VSMIUUQTFYBNQMFDPNMFHBM
    ^

    View Slide

  25. ࠶ܝؔ਺ݺͼग़͠ͷײಈ෦෼
    5IJTQMVHJODPOUSPMTPCOJ[UPSFBMJ[FBTNBSUIPNF*USFDPHOJ[FTMJHIUJOHPOP
    ff
    BOEDPMPSJOGPSNBUJPO
    BOEDPOWFSUTJUUP3(#WBMVFTGPSDPOUSPM
    %FFQ-຋༁

    PCOJ[Λ੍ޚͯ͠εϚʔτϗʔϜΛ࣮ݱ͢ΔϓϥάΠϯɻর໌ͷ0/0''
    ΍৭৘ใΛೝࣝ͠ɺ3(#஋ʹม׵੍ͯ͠ޚ͠·͢ɻ
    ͜Ε͚ͩͰzͦ͏͍͏ڍಈzΛͯ͘͠Ε·͢ɻ

    View Slide

  26. Զ͸PCOJ[ίϯτϩʔϧ͔͠΍ΒΜͷ͡Όͱ஄͔ΕΔ
    ఆٛͯ͠Δػೳ͸͍͍ײ͡ʹ
    ۭؾಡΜͰ͘ΕΔ
    lSHC
    ʹͯ͠zͱ͔Ͱ͸ͳ͍

    View Slide

  27. ·ͱΊ
    $IBU(15ͷϓϥάΠϯͰPCOJ[ͭͳ͕ͬͯ*P5΍ΕͨΑ
    ࠓޙΠϯλʔϑΣΠεͷҰݸʹͳΔ͔΋ͳͷͰࢼͯ͠ΈΔͱྑͦ͞͏
    -*/&#PUͬΆ͍ϙδγϣϯʁ

    ৽ײ֮ͳͷͰָ͍͠

    View Slide