[{"title":"( 63 个子文件 1.15MB ) 自动灌溉系统:这是开源自动灌溉系统的软件。 包括硬件在内的完整设置可在自述文件中找到","children":[{"title":"automated-irrigation-system-master","children":[{"title":"docs","children":[{"title":"draw.io","children":[{"title":"software-architecture.drawio <span style='color:#111;'> 2.57KB </span>","children":null,"spread":false}],"spread":true},{"title":"images","children":[{"title":"app-dark.png <span style='color:#111;'> 200.42KB </span>","children":null,"spread":false},{"title":"software-architecture.png <span style='color:#111;'> 47.43KB </span>","children":null,"spread":false},{"title":"hardware-architecture.png <span style='color:#111;'> 446.98KB </span>","children":null,"spread":false},{"title":"app-light.png <span style='color:#111;'> 208.56KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"package.json <span style='color:#111;'> 797B </span>","children":null,"spread":false},{"title":"arduino-code","children":[{"title":"ESP8622_moisture.ino","children":[{"title":"ESP8622_moisture.ino.ino <span style='color:#111;'> 2.13KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"Dockerfile <span style='color:#111;'> 100B </span>","children":null,"spread":false},{"title":"package-lock.json <span style='color:#111;'> 561.79KB </span>","children":null,"spread":false},{"title":"src","children":[{"title":"index.js <span style='color:#111;'> 389B </span>","children":null,"spread":false},{"title":"shared","children":[{"title":"Card","children":[{"title":"Card.js <span style='color:#111;'> 420B </span>","children":null,"spread":false},{"title":"Card.css <span style='color:#111;'> 348B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"assets","children":[{"title":"watering.svg <span style='color:#111;'> 696B </span>","children":null,"spread":false},{"title":"moon.svg <span style='color:#111;'> 1.81KB </span>","children":null,"spread":false},{"title":"logo.svg <span style='color:#111;'> 1.68KB </span>","children":null,"spread":false},{"title":"sun.svg <span style='color:#111;'> 1.34KB </span>","children":null,"spread":false},{"title":"IBM_Plex_Mono","children":[{"title":"IBMPlexMono-Bold.ttf <span style='color:#111;'> 109.91KB </span>","children":null,"spread":false},{"title":"IBMPlexMono-Medium.ttf <span style='color:#111;'> 108.92KB </span>","children":null,"spread":false}],"spread":false}],"spread":true},{"title":"components","children":[{"title":"SensorPicker","children":[{"title":"SensorPicker.css <span style='color:#111;'> 267B </span>","children":null,"spread":false},{"title":"SensorPicker.js <span style='color:#111;'> 571B </span>","children":null,"spread":false}],"spread":true},{"title":"Header","children":[{"title":"Header.css <span style='color:#111;'> 465B </span>","children":null,"spread":false},{"title":"Header.js <span style='color:#111;'> 434B </span>","children":null,"spread":false},{"title":"ThemePicker","children":[{"title":"ThemePicker.css <span style='color:#111;'> 0B </span>","children":null,"spread":false},{"title":"ThemePicker.js <span style='color:#111;'> 614B </span>","children":null,"spread":false}],"spread":false}],"spread":true},{"title":"IotButton","children":[{"title":"IotButton.js <span style='color:#111;'> 1.19KB </span>","children":null,"spread":false},{"title":"IotButton.css <span style='color:#111;'> 832B </span>","children":null,"spread":false}],"spread":true},{"title":"Preferences","children":[{"title":"Preferences.css <span style='color:#111;'> 711B </span>","children":null,"spread":false},{"title":"Preferences.js <span style='color:#111;'> 4.32KB </span>","children":null,"spread":false}],"spread":false},{"title":"LineChart","children":[{"title":"LineChart.css <span style='color:#111;'> 876B </span>","children":null,"spread":false},{"title":"LineChart.js <span style='color:#111;'> 3.53KB </span>","children":null,"spread":false}],"spread":false}],"spread":true},{"title":"Main.js <span style='color:#111;'> 1.70KB </span>","children":null,"spread":false},{"title":"theme.js <span style='color:#111;'> 454B </span>","children":null,"spread":false},{"title":"style.css <span style='color:#111;'> 1.76KB </span>","children":null,"spread":false}],"spread":true},{"title":"docker-compose.yml <span style='color:#111;'> 837B </span>","children":null,"spread":false},{"title":".gitignore <span style='color:#111;'> 38B </span>","children":null,"spread":false},{"title":".dockerignore <span style='color:#111;'> 23B </span>","children":null,"spread":false},{"title":"public","children":[{"title":"vendor","children":[{"title":"bootstrap.css <span style='color:#111;'> 145.07KB </span>","children":null,"spread":false}],"spread":true},{"title":"manifest.json <span style='color:#111;'> 302B </span>","children":null,"spread":false},{"title":"index.html <span style='color:#111;'> 1.64KB </span>","children":null,"spread":false},{"title":"logo.svg <span style='color:#111;'> 1.75KB </span>","children":null,"spread":false}],"spread":true},{"title":"README.md <span style='color:#111;'> 10.92KB </span>","children":null,"spread":false},{"title":"backend","children":[{"title":"models","children":[{"title":"irrigations.js <span style='color:#111;'> 427B </span>","children":null,"spread":false},{"title":"preferences.js <span style='color:#111;'> 587B </span>","children":null,"spread":false},{"title":"measurements","children":[{"title":"hourly-measurement.js <span style='color:#111;'> 475B </span>","children":null,"spread":false},{"title":"secondly-measurement.js <span style='color:#111;'> 477B </span>","children":null,"spread":false},{"title":"daily-measurement.js <span style='color:#111;'> 446B </span>","children":null,"spread":false},{"title":"minutely-measurement.js <span style='color:#111;'> 479B </span>","children":null,"spread":false}],"spread":false}],"spread":true},{"title":"bin","children":[{"title":"www <span style='color:#111;'> 1.56KB </span>","children":null,"spread":false}],"spread":false},{"title":"package.json <span style='color:#111;'> 602B </span>","children":null,"spread":false},{"title":"routes","children":[{"title":"index.js <span style='color:#111;'> 1.63KB </span>","children":null,"spread":false}],"spread":false},{"title":"Dockerfile <span style='color:#111;'> 88B </span>","children":null,"spread":false},{"title":"package-lock.json <span style='color:#111;'> 103.35KB </span>","children":null,"spread":false},{"title":"views","children":[{"title":"error.jade <span style='color:#111;'> 117B </span>","children":null,"spread":false}],"spread":false},{"title":".gitignore <span style='color:#111;'> 565B </span>","children":null,"spread":false},{"title":"controller","children":[{"title":"measurement-controller.js <span style='color:#111;'> 2.46KB </span>","children":null,"spread":false},{"title":"preference-controller.js <span style='color:#111;'> 359B </span>","children":null,"spread":false},{"title":"irrigation-controller.js <span style='color:#111;'> 207B </span>","children":null,"spread":false},{"title":"sensor-controller.js <span style='color:#111;'> 816B </span>","children":null,"spread":false}],"spread":false},{"title":"app.js <span style='color:#111;'> 1.73KB </span>","children":null,"spread":false},{"title":"services","children":[{"title":"irrigation-service.js <span style='color:#111;'> 1.56KB </span>","children":null,"spread":false},{"title":"measurement-service.js <span style='color:#111;'> 1.89KB </span>","children":null,"spread":false},{"title":"preference-service.js <span style='color:#111;'> 1.29KB </span>","children":null,"spread":false},{"title":"sensor-service.js <span style='color:#111;'> 825B </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":true}]