{"id":6520,"date":"2025-11-24T11:01:02","date_gmt":"2025-11-24T02:01:02","guid":{"rendered":"https:\/\/jfs.or.jp\/jfs-cs\/?p=6520"},"modified":"2025-11-24T11:01:24","modified_gmt":"2025-11-24T02:01:24","slug":"iot-python-nyumon-01","status":"publish","type":"post","link":"https:\/\/jfs.or.jp\/jfs-cs\/iot-python-nyumon-01\/","title":{"rendered":"IoT\u306bPython\u5229\u7528\u3059\u308b\u5834\u5408\u306e\u5165\u9580\u60c5\u5831"},"content":{"rendered":"<p>\u6700\u8fd1\u3001IoT\u304c\u88fd\u9020\u73fe\u5834\u3067\u3082\u5229\u7528\u3055\u308c\u308b\u4e8b\u4f8b\u304c\u5897\u3048\u3066\u304d\u305f\u3068\u3044\u3046\u3002<\/p>\n<p>\u305d\u306e\u7279\u5fb4\u306f\u300c\u73fe\u5834\u306e\u4eba\u304c\u300d\u3001<strong>\u4f7f\u3044\u3084\u3059\u3044\u30a2\u30d7\u30ea\u3092\u5b66\u3073\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4f5c\u3063\u3066\u5b89\u4fa1\u306b\u306a\u3063\u305f\u30bb\u30f3\u30b5\u30fc\u3092\u4f7f\u3063\u3066\u30c7\u30fc\u30bf\u3092PC\u3084\u30b5\u30fc\u30d0\u30fc\u306b\u9001\u3063\u3066\u3001\u305d\u308c\u3092DB\u3067\u5229\u7528\u3057\u3066\u30d3\u30c3\u30b0\u30c7\u30fc\u30bf\u3068\u3057\u3066\u6d3b\u7528\u3059\u308b<\/strong>\u3068\u3044\u3046\u3082\u306e\u3089\u3057\u3044\u3002\u3053\u3046\u3059\u308b\u3053\u3068\u3067\u3001\u73fe\u5834\u30fb\u73fe\u8c61\u30fb\u30cb\u30fc\u30ba\u3092\u77e5\u3089\u306a\u3044\u4ed6\u8005\u306b\u8aac\u660e\u3057\u3001\u3067\u304d\u305f\u30b7\u30b9\u30c6\u30e0\u3084\u8868\u793a\u306e\u8aac\u660e\u3092\u53d7\u3051\u3001\u691c\u8a3c\u3057\u624b\u76f4\u3057\u3092\u4f9d\u983c\u3057\u3001\u307e\u305f\u691c\u8a3c\u3059\u308b\u3001\u3068\u3044\u3046\u6642\u9593\u306e\u304b\u304b\u308b\u901a\u5e38\u306e\u958b\u767a\u904e\u7a0b\u306e\u591a\u304f\u3092\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3057\u3001\u624b\u76f4\u3057\u3084\u6539\u5584\u3082\u81ea\u5206\u305f\u3061\u3067\u884c\u3048\u3066\u8fc5\u901f\u306a\u958b\u767a\u306b\u3064\u306a\u304c\u3063\u305f\u3068\u3044\u3046\u3002<\/p>\n<p>\u5168\u90e8\u3092\u81ea\u5206\u305f\u3061\u3067\u958b\u767a\u3059\u308b\u5834\u5408\u3068\u3001\u3042\u308b\u7a0b\u5ea6\u5b66\u3093\u3060\u3053\u3068\u3067\u30b7\u30b9\u30c6\u30e0\u958b\u767a\u306e\u30d7\u30ed\u3068\u610f\u601d\u758e\u901a\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3001\u5354\u540c\u3057\u3066\u958b\u767a\u304c\u9032\u3080\u30b1\u30fc\u30b9\u304c\u3042\u308b\u3088\u3046\u3067\u3059\u3002<\/p>\n<p>\u305d\u3053\u3067\u3001Gemini\u306b\u805e\u3044\u3066\u307f\u305f\u3089\u3001\u4e0b\u8a18\u306e\u3088\u3046\u306a\u5185\u5bb9\u304c\u8fd4\u3063\u3066\u304d\u305f\u306e\u3067\u3054\u7d39\u4ecb\u3002\u5168\u4f53\u6982\u8981\u89e3\u8aac\u3068\u305d\u308c\u305e\u308c\u306e\u5206\u91ce\u306e\u7528\u8a9e\u3084\u6982\u5ff5\u304c\u4e26\u3093\u3067\u3044\u308b\u306e\u3067\u3001\u305d\u308c\u305e\u308c\u3092\u5b66\u3079\u3070\u9053\u304c\u958b\u3051\u305d\u3046\u3067\u3059\u3002<\/p>\n<p>\u6700\u8fd1\u3067\u306f\u3000\u3044\u308d\u3044\u308d\u306a\u56e3\u4f53\u3084\u5927\u5b66\u3067\u5165\u9580\u6559\u80b2\u30fb\u6307\u5c0e\u3092\u884c\u3063\u3066\u3044\u308b\u306e\u3067\u3001\u305d\u308c\u3089\u3092\u5229\u7528\u3067\u304d\u305f\u4eba\u306f\u3001\u65e9\u671f\u306e\u5229\u7528\u958b\u59cb\u306b\u3064\u306a\u304c\u3063\u3066\u3044\u308b\u3088\u3046\u3067\u3059\u3002<br \/>\n\u521d\u3081\u3066\u306e\u5206\u91ce\u3092\u5b66\u3076\u3068\u304d\u306f\u3001\u77e5\u3089\u306a\u3044\u5358\u8a9e\u3084\u30b9\u30ad\u30eb\u3084\u30e2\u30ce\u306e\u610f\u5473\u3092\u7c21\u5358\u306b\u6559\u3048\u3066\u304f\u308c\u308b\u5148\u9054\u304c\u3044\u308b\u3068\u3001\u3064\u307e\u305a\u304d\u5012\u308c\u308b\u3053\u3068\u306a\u304f\u901a\u904e\u3059\u308b\u3053\u3068\u304c\u5bb9\u6613\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-size: 20px;\"><strong>\u8cea\u554f\uff1a\u3000<\/strong><\/span><strong><span style=\"font-size: 14.08px;\">\u6700\u8fd1\u306f\u3001IoT\u3067\u3001python\u3068\u5b89\u4fa1\u30bb\u30f3\u30b5\u30fc\u5229\u7528\u3057\u88fd\u9020\u30c7\u30fc\u30bf\u53ce\u96c6\u3057\u3066DB\u306b\u3064\u306a\u3044\u3067\u3001\u30d3\u30c3\u30b0\u30c7\u30fc\u30bf\u3068\u3057\u3066\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3068\u3044\u3046\u8a71\u3092\u805e\u304f\u3053\u3068\u304c\u5897\u3048\u305f\u306e\u3067\u3001\u5165\u9580\u306e\u4ed5\u65b9\u3092\u6559\u3048\u3066\u3002<\/span><\/strong><\/p>\n<div class=\"\" data-block=\"true\" data-editor=\"92l2e\" data-offset-key=\"a3bp3-0-0\">\n<div class=\"public-DraftStyleDefault-block public-DraftStyleDefault-ltr\" data-offset-key=\"a3bp3-0-0\">\n<div class=\"response-container ng-tns-c2210524176-15 response-container-with-gpi ng-star-inserted response-container-has-multiple-responses\" data-hveid=\"1\">\n<div class=\"response-container-header ng-tns-c2210524176-15 ng-star-inserted\">\n<div class=\"response-container-header-controls ng-tns-c2210524176-15\">\n<div class=\"response-tts-container ng-star-inserted\" data-test-draft-id=\"rc_b207450f6240d8cb\">\n<div class=\"mat-mdc-tooltip-trigger tts-button-container mat-mdc-tooltip-disabled\" data-test-id=\"disabled-tooltip\"><strong style=\"font-size: 18px;\">Gemini\u306e\u56de\u7b54\uff1a<\/strong><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"presented-response-container ng-tns-c2210524176-15\" data-hveid=\"2\">\n<div class=\"avatar-gutter ng-tns-c2210524176-15 ng-star-inserted\">\n<div class=\"bard-avatar ng-tns-c1874229130-16\">\n<div class=\"avatar-container ng-tns-c1874229130-16\">\n<div class=\"avatar avatar_primary ng-tns-c1874229130-16 ng-star-inserted\">\n<div class=\"avatar_primary_model is-gpi-avatar ng-tns-c1874229130-16\">\n<div class=\"avatar_primary_animation is-gpi-avatar aurora-enabled ng-tns-c1874229130-16\" data-test-lottie-animation-status=\"completed\">\u00a0<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"response-container-content ng-tns-c2210524176-15\">\n<div class=\"response-content ng-tns-c2210524176-15\">\n<div id=\"model-response-message-contentr_6d094fa95827efe6\" class=\"markdown markdown-main-panel stronger enable-updated-hr-color\" dir=\"ltr\" aria-live=\"polite\" aria-busy=\"false\">\n<p data-path-to-node=\"0\">\u3000\u3000\u304a\u63a2\u3057\u306e<b>Python<\/b>\u3092\u4f7f\u3063\u305f<b>IoT<\/b>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306e\u5b66\u7fd2\u30ea\u30bd\u30fc\u30b9\u3084\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4f8b\u306b\u3064\u3044\u3066\u3001\u3044\u304f\u3064\u304b\u5f79\u7acb\u3064\u60c5\u5831\u304c\u3042\u308a\u307e\u3059\u306d\uff01\ud83d\ude0a<\/p>\n<p data-path-to-node=\"1\">\u3000\u3000\u30bb\u30f3\u30b5\u30fc\u30c7\u30fc\u30bf\u306e\u53ce\u96c6\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3078\u306e\u4fdd\u5b58\u3001\u305d\u3057\u3066\u30d3\u30c3\u30b0\u30c7\u30fc\u30bf\u3068\u3057\u3066\u306e\u6d3b\u7528\u3092\u76ee\u7684\u3068\u3059\u308b\u5834\u5408\u3001\u4e3b\u306b\u4ee5\u4e0b\u306e\u7d44\u307f\u5408\u308f\u305b\u3067\u5b66\u7fd2\u30b5\u30a4\u30c8\u3084\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u3059\u3002<\/p>\n<h2>\ud83d\udca1 \u4e3b\u8981\u306a\u6280\u8853\u30b9\u30bf\u30c3\u30af\u3068\u95a2\u9023\u30ea\u30bd\u30fc\u30b9<\/h2>\n<h3>1. Web\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\uff08\u30a2\u30d7\u30ea\u63d0\u4f9b\u30b5\u30a4\u30c8\u306e\u69cb\u7bc9\uff09<\/h3>\n<p data-path-to-node=\"4\">\u3000Python\u3067\u306f\u3001\u30a6\u30a7\u30d6\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u69cb\u7bc9\u3059\u308b\u305f\u3081\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3068\u3057\u3066\u3001<b>Flask<\/b>\u3084<b>Django<\/b>\u304c\u3088\u304f\u4f7f\u308f\u308c\u307e\u3059\u3002<\/p>\n<ul data-path-to-node=\"5\">\n<li>\n<p data-path-to-node=\"5,0,0\"><b>Flask<\/b>\uff1a\u8efd\u91cf\u3067\u67d4\u8edf\u6027\u304c\u9ad8\u3044\u30de\u30a4\u30af\u30ed\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3002\u5c0f\u898f\u6a21\u304b\u3089\u4e2d\u898f\u6a21\u306eIoT\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u3084API\u30b5\u30fc\u30d0\u30fc\u69cb\u7bc9\u306b\u9069\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"5,1,0\"><b>Django<\/b>\uff1a\u30d5\u30eb\u30b9\u30bf\u30c3\u30af\u3067\u5927\u898f\u6a21\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u9069\u3057\u3066\u3044\u307e\u3059\u3002\u8c4a\u5bcc\u306a\u6a5f\u80fd\uff08ORM\u3001\u7ba1\u7406\u753b\u9762\u306a\u3069\uff09\u304c\u6a19\u6e96\u3067\u63d0\u4f9b\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<\/li>\n<\/ul>\n<blockquote data-path-to-node=\"6\">\n<p data-path-to-node=\"6,0\">\u691c\u7d22\u7d50\u679c\u306b\u306f\u3001<b>Flask<\/b>\u3084<b>Django<\/b>\u3092\u4f7f\u3063\u3066IoT\u30bb\u30f3\u30b5\u30fc\u30c7\u30fc\u30bf\u3092\u53ce\u96c6\u3057\u3001Web\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3067\u53ef\u8996\u5316\u3059\u308b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4f8b\uff08\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\uff09\u304c\u591a\u304f\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002\u4f8b\u3048\u3070\u3001<a class=\"ng-star-inserted\" href=\"https:\/\/www.google.com\/search?q=https:\/\/github.com\/PhucHuwu\/IoT_Project\" target=\"_blank\" rel=\"noopener\" data-hveid=\"0\" data-ved=\"0CAAQ_4QMahcKEwjSgI7Yz4mRAxUAAAAAHQAAAAAQMA\">GitHub\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4f8b<\/a>\u3067\u306f\u3001<b>Flask<\/b>\u3068<b>MongoDB<\/b>\uff08\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\uff09\u3001<b>MQTT<\/b>\uff08\u30c7\u30fc\u30bf\u901a\u4fe1\u30d7\u30ed\u30c8\u30b3\u30eb\uff09\u3092\u7d44\u307f\u5408\u308f\u305b\u305f\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u76e3\u8996\u30b7\u30b9\u30c6\u30e0\u306e\u69cb\u7bc9\u65b9\u6cd5\u304c\u7d39\u4ecb\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<\/blockquote>\n<hr data-path-to-node=\"7\" \/>\n<h3>2. \u30c7\u30fc\u30bf\u53ce\u96c6\u3068\u30e1\u30c3\u30bb\u30fc\u30b8\u30f3\u30b0\u30d7\u30ed\u30c8\u30b3\u30eb<\/h3>\n<p data-path-to-node=\"9\">\u3000\u3000IoT\u30c7\u30d0\u30a4\u30b9\uff08\u4f8b: Raspberry Pi, ESP32\uff09\u3068\u30b5\u30fc\u30d0\u30fc\u9593\u3067\u306e\u52b9\u7387\u7684\u306a\u30c7\u30fc\u30bf\u901a\u4fe1\u306b\u306f\u3001<b>MQTT<\/b>\uff08Message Queuing Telemetry Transport\uff09\u30d7\u30ed\u30c8\u30b3\u30eb\u304c\u5e83\u304f\u5229\u7528\u3055\u308c\u307e\u3059\u3002<\/p>\n<ul data-path-to-node=\"10\">\n<li>\n<p data-path-to-node=\"10,0,0\"><b>paho-mqtt<\/b>\u306a\u3069\u306ePython\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3063\u3066\u3001\u30b5\u30fc\u30d0\u30fc\u5074\u3067MQTT\u30d6\u30ed\u30fc\u30ab\u30fc\u304b\u3089\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\uff08\u30bb\u30f3\u30b5\u30fc\u30c7\u30fc\u30bf\uff09\u3092\u53d7\u4fe1\u3057\u3001\u51e6\u7406\u3057\u307e\u3059\u3002<\/p>\n<\/li>\n<\/ul>\n<hr data-path-to-node=\"11\" \/>\n<h3>3. \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\uff08DB\uff09\u3068\u30d3\u30c3\u30b0\u30c7\u30fc\u30bf\u5bfe\u5fdc<\/h3>\n<p data-path-to-node=\"13\">\u3000\u3000\u5927\u91cf\u306e\u6642\u7cfb\u5217\u30bb\u30f3\u30b5\u30fc\u30c7\u30fc\u30bf\u3092\u52b9\u7387\u7684\u306b\u4fdd\u5b58\u30fb\u30af\u30a8\u30ea\u30fb\u5206\u6790\u3059\u308b\u305f\u3081\u306b\u306f\u3001\u901a\u5e38\u306eRDB\uff08MySQL, PostgreSQL\u306a\u3069\uff09\u3088\u308a\u3082<b>\u6642\u7cfb\u5217\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9<\/b>\uff08Time Series Database: TSDB\uff09\u304c\u7279\u306b\u9069\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<ul data-path-to-node=\"14\">\n<li>\n<p data-path-to-node=\"14,0,0\"><b>InfluxDB<\/b>\uff1aIoT\u3084\u30bb\u30f3\u30b5\u30fc\u30c7\u30fc\u30bf\u306b\u7279\u5316\u3057\u305f\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306eTSDB\u3002Python\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u63d0\u4f9b\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"14,1,0\"><b>GridDB<\/b>\u3084<b>CrateDB<\/b>\u306a\u3069\u3082IoT\/\u6642\u7cfb\u5217\u30c7\u30fc\u30bf\u5411\u3051\u306b\u6319\u3052\u3089\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"14,2,0\">\u4e00\u822c\u7684\u306aRDB\u3092\u4f7f\u3046\u5834\u5408\u3001<b>Django<\/b>\u306eORM\uff08Object-Relational Mapping\uff09\u3092\u5229\u7528\u3057\u3066\u30c7\u30fc\u30bf\u3092\u7ba1\u7406\u3067\u304d\u307e\u3059\u3002<\/p>\n<\/li>\n<\/ul>\n<blockquote data-path-to-node=\"15\">\n<p data-path-to-node=\"15,0\"><b>InfluxDB<\/b>\u3068<b>Python (Flask)<\/b>\u3001\u305d\u3057\u3066\u30c7\u30fc\u30bf\u306e\u53ef\u8996\u5316\u306e\u305f\u3081\u306e<b>Plotly\/Grafana<\/b>\u3092\u7d44\u307f\u5408\u308f\u305b\u3066IoT\u76e3\u8996\u30a2\u30d7\u30ea\u3092\u69cb\u7bc9\u3059\u308b\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u304cYouTube\u306a\u3069\u3067\u63d0\u4f9b\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<\/blockquote>\n<hr data-path-to-node=\"16\" \/>\n<h3>4. \u53ef\u8996\u5316\u30fb\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9<\/h3>\n<p data-path-to-node=\"18\">\u3000\u53ce\u96c6\u3057\u305f\u30d3\u30c3\u30b0\u30c7\u30fc\u30bf\u3068\u3057\u3066\u306e\u30bb\u30f3\u30b5\u30fc\u30c7\u30fc\u30bf\u3092\u5206\u6790\u30fb\u76e3\u8996\u3059\u308b\u305f\u3081\u306e\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u306b\u306f\u3001\u4ee5\u4e0b\u306e\u30c4\u30fc\u30eb\u304c\u4eba\u6c17\u3067\u3059\u3002<\/p>\n<ul data-path-to-node=\"19\">\n<li>\n<p data-path-to-node=\"19,0,0\"><b>Grafana<\/b>\uff1aInfluxDB\u306a\u3069\u306e\u69d8\u3005\u306a\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u306b\u5bfe\u5fdc\u3057\u305f\u3001\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u5f37\u529b\u306a\u30c7\u30fc\u30bf\u53ef\u8996\u5316\u30c4\u30fc\u30eb\u3002\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u76e3\u8996\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u3068\u3057\u3066\u975e\u5e38\u306b\u5e83\u304f\u4f7f\u308f\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"19,1,0\"><b>Plotly Dash<\/b>\uff1aPython\u3060\u3051\u3067\u30a4\u30f3\u30bf\u30e9\u30af\u30c6\u30a3\u30d6\u306aWeb\u30d9\u30fc\u30b9\u306e\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u3092\u69cb\u7bc9\u3067\u304d\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u3002<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"19,2,0\"><b>ThingSpeak<\/b>\uff1aMathWorks\u793e\u304c\u63d0\u4f9b\u3059\u308bIoT\u89e3\u6790\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3002\u30bb\u30f3\u30b5\u30fc\u30c7\u30fc\u30bf\u3092\u30af\u30e9\u30a6\u30c9\u3067\u53ce\u96c6\u30fb\u5206\u6790\u30fb\u53ef\u8996\u5316\u3067\u304d\u307e\u3059\u3002<\/p>\n<\/li>\n<\/ul>\n<blockquote data-path-to-node=\"20\">\n<p data-path-to-node=\"20,0\">\u5c02\u9580\u7684\u306a\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u6a5f\u80fd\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f\u3001<b>Flask\/Django<\/b>\u3067\u5168\u3066\u3092\u81ea\u4f5c\u3059\u308b\u3088\u308a\u3082\u3001<b>Grafana<\/b>\u306a\u3069\u306e\u5c02\u7528\u30c4\u30fc\u30eb\u3092\u4f75\u7528\u3059\u308b\u3053\u3068\u304c\u63a8\u5968\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<\/blockquote>\n<p data-path-to-node=\"21\">\u00a0<\/p>\n<h2>\ud83d\udee0\ufe0f \u304a\u3059\u3059\u3081\u306e\u5b66\u7fd2\u30a2\u30d7\u30ed\u30fc\u30c1<\/h2>\n<p data-path-to-node=\"22\">\u3000\u3000\u30bb\u30f3\u30b5\u30fc\u30c7\u30fc\u30bf\u306e\u53ce\u96c6\u304b\u3089\u30d3\u30c3\u30b0\u30c7\u30fc\u30bf\u5229\u7528\u307e\u3067\u3092\u5168\u3066\u30ab\u30d0\u30fc\u3059\u308b\u4e00\u3064\u306e\u300c\u30b5\u30a4\u30c8\u300d\u3068\u3044\u3046\u3088\u308a\u3082\u3001<b>\u7279\u5b9a\u306e\u6280\u8853\u30b9\u30bf\u30c3\u30af\u3092\u7d44\u307f\u5408\u308f\u305b\u305f\u300c\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u300d\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb<\/b>\u3092\u63a2\u3059\u306e\u304c\u52b9\u679c\u7684\u3067\u3059\u3002<\/p>\n<ol start=\"1\" data-path-to-node=\"23\">\n<li>\n<p data-path-to-node=\"23,0,0\"><b>\u30c7\u30d0\u30a4\u30b9\u306e\u9078\u629e\u3068\u30c7\u30fc\u30bf\u9001\u4fe1<\/b>: Raspberry Pi\u3084ESP32\u306a\u3069\u306e\u30c7\u30d0\u30a4\u30b9\u304b\u3089\u3001Python\uff08\u307e\u305f\u306fMicroPython\uff09\u3092\u4f7f\u3063\u3066\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u53d6\u308a\u3001<b>MQTT<\/b>\u307e\u305f\u306f<b>HTTP POST<\/b>\u3067\u30b5\u30fc\u30d0\u30fc\u306b\u9001\u4fe1\u3059\u308b\uff08\u4f8b\u3048\u3070\u3001<b>Firebase Realtime Database<\/b>\u3084\u81ea\u4f5c\u306eFlask API\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3078\uff09\u3002<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"23,1,0\"><b>\u30b5\u30fc\u30d0\u30fc\u30a2\u30d7\u30ea\u306e\u69cb\u7bc9<\/b>:\u00a0<b>Flask<\/b>\u307e\u305f\u306f<b>Django<\/b>\u3067Web API\uff08\u30c7\u30fc\u30bf\u53d7\u3051\u53d6\u308a\u53e3\uff09\u3068\u3001\u30c7\u30fc\u30bf\u8868\u793a\u7528\u306eWeb\u30b5\u30a4\u30c8\u3092\u69cb\u7bc9\u3059\u308b\u3002<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"23,2,0\"><b>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3078\u306e\u4fdd\u5b58<\/b>: \u53d7\u3051\u53d6\u3063\u305f\u30c7\u30fc\u30bf\u3092<b>InfluxDB<\/b>\u306a\u3069\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u4fdd\u5b58\u3059\u308b\u3002<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"23,3,0\"><b>\u53ef\u8996\u5316<\/b>:\u00a0<b>Grafana<\/b>\u3084<b>Plotly Dash<\/b>\u3092\u4f7f\u3063\u3066\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u3092\u4f5c\u6210\u3057\u3001\u30d3\u30c3\u30b0\u30c7\u30fc\u30bf\u3068\u3057\u3066\u84c4\u7a4d\u3055\u308c\u305f\u30c7\u30fc\u30bf\u3092\u5206\u6790\u30fb\u8868\u793a\u3059\u308b\u3002<\/p>\n<\/li>\n<\/ol>\n<p data-path-to-node=\"24\">\u3053\u306e\u52d5\u753b\u3067\u306f\u3001Python\u3068Raspberry Pi\u3092\u7528\u3044\u3066\u3001IoT\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e\u57fa\u790e\u6982\u5ff5\u3092\u5b66\u3076\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p data-path-to-node=\"24\">\u00a0<a class=\"ng-star-inserted\" href=\"https:\/\/www.youtube.com\/watch?v=Rsh2ocVkChE\" target=\"_blank\" rel=\"noopener\" data-hveid=\"0\" data-ved=\"0CAAQ_4QMahcKEwjSgI7Yz4mRAxUAAAAAHQAAAAAQMQ\">Practical Python Programming for IoT | 1. Network Security Concepts<\/a><\/p>\n<p><iframe loading=\"lazy\" title=\"Practical Python Programming for IoT | 1. Network Security Concepts\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/Rsh2ocVkChE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<div class=\"attachment-container youtube\">\n<div class=\"tool-attribution show-header hide-from-message-actions\">\n<div class=\"tool-attribution-content ng-star-inserted\">\n<div class=\"tool-attribution-header-container\">\n<div class=\"tool-attribution-header gds-title-s\"><\/p>\n<div class=\"tool-attribution-title ng-star-inserted\">Practical Python Programming for IoT | 1. Network Security Concepts &#8211; YouTube<button class=\"mdc-icon-button mat-mdc-icon-button mat-mdc-button-base disclaimer-button mat-unthemed ng-star-inserted\"><\/button><\/div>\n<\/div>\n<div class=\"tool-attribution-label gds-body-m ng-star-inserted\">Code in Action \u00b7 1\u4e07 \u56de\u306e\u8996\u8074<\/div>\n<\/div>\n<div class=\"immersive-panel-button-container ng-star-inserted\">\u00a0<\/div>\n<\/div>\n<div class=\"youtube-block ng-star-inserted\" role=\"presentation\">\n<div class=\"single-view-container\" role=\"presentation\">\n<div class=\"single-video-container\" role=\"presentation\">\u00a0<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"\u6700\u8fd1\u3001IoT\u304c\u88fd\u9020\u73fe\u5834\u3067\u3082\u5229\u7528\u3055\u308c\u308b\u4e8b\u4f8b\u304c\u5897\u3048\u3066\u304d\u305f\u3068\u3044\u3046\u3002 \u305d\u306e\u7279\u5fb4\u306f\u300c\u73fe\u5834\u306e\u4eba\u304c\u300d\u3001\u4f7f\u3044\u3084\u3059\u3044\u30a2\u30d7\u30ea\u3092\u5b66\u3073\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4f5c\u3063\u3066\u5b89\u4fa1\u306b\u306a\u3063\u305f\u30bb\u30f3\u30b5\u30fc\u3092\u4f7f\u3063\u3066\u30c7\u30fc\u30bf\u3092PC\u3084\u30b5\u30fc\u30d0\u30fc\u306b\u9001\u3063\u3066\u3001\u305d\u308c\u3092DB\u3067\u5229\u7528\u3057\u3066\u30d3\u30c3\u30b0\u30c7\u30fc\u30bf &#8230;","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"vk-ltc-link":"","vk-ltc-target":"0","footnotes":""},"categories":[24],"tags":[],"class_list":["post-6520","post","type-post","status-publish","format-standard","hentry","category-iot-it"],"_links":{"self":[{"href":"https:\/\/jfs.or.jp\/jfs-cs\/wp-json\/wp\/v2\/posts\/6520","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jfs.or.jp\/jfs-cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jfs.or.jp\/jfs-cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jfs.or.jp\/jfs-cs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jfs.or.jp\/jfs-cs\/wp-json\/wp\/v2\/comments?post=6520"}],"version-history":[{"count":7,"href":"https:\/\/jfs.or.jp\/jfs-cs\/wp-json\/wp\/v2\/posts\/6520\/revisions"}],"predecessor-version":[{"id":6527,"href":"https:\/\/jfs.or.jp\/jfs-cs\/wp-json\/wp\/v2\/posts\/6520\/revisions\/6527"}],"wp:attachment":[{"href":"https:\/\/jfs.or.jp\/jfs-cs\/wp-json\/wp\/v2\/media?parent=6520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jfs.or.jp\/jfs-cs\/wp-json\/wp\/v2\/categories?post=6520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jfs.or.jp\/jfs-cs\/wp-json\/wp\/v2\/tags?post=6520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}