688716524f5f45417d0a28cb0d0d687e10b4519c
Board-dat/DAS/DAS1075-dat/2025-10-18-13-44-49.png
| ... | ... | Binary files /dev/null and b/Board-dat/DAS/DAS1075-dat/2025-10-18-13-44-49.png differ |
Board-dat/DAS/DAS1075-dat/DAS1075-dat.md
| ... | ... | @@ -0,0 +1,45 @@ |
| 1 | +# DAS1075-dat |
|
| 2 | + |
|
| 3 | + |
|
| 4 | +## Info |
|
| 5 | + |
|
| 6 | +[product url - Arduino Sensor Interactive Wireless MISC Utility Shield](https://www.electrodragon.com/product/arduino-misc-basic-extension-shield/) |
|
| 7 | + |
|
| 8 | + |
|
| 9 | +### Board Map, Dimension, Pins, chip info, Use Guide, Setup Jumper, etc. |
|
| 10 | + |
|
| 11 | + |
|
| 12 | + |
|
| 13 | +| Function | Pin | |
|
| 14 | +| ------------------------------------------------- | ---------- | |
|
| 15 | +| Trim pot | A0 | |
|
| 16 | +| Buttons | A1, A2, A3 | |
|
| 17 | +| DS18B20, LM35 | A4 | |
|
| 18 | +| IO (3-pin header, VCC GND IO) | A5 | |
|
| 19 | +| Serial port (supports APC220, Bluetooth, etc) | D1, D0 | |
|
| 20 | +| Infrared receiver (SFH506) | D2 | |
|
| 21 | +| Buzzer | D3 | |
|
| 22 | +| IO (3-pin header, VCC GND IO) | D5, D6, D9 | |
|
| 23 | +| SDI, CLK, Latch → 2× 74HC595 (4× segment display) | D8, D7, D4 | |
|
| 24 | +| LEDs | D13–D10 | |
|
| 25 | + |
|
| 26 | + |
|
| 27 | + |
|
| 28 | +## Applications, category, tags, etc. |
|
| 29 | + |
|
| 30 | +## Demo Code and Video |
|
| 31 | + |
|
| 32 | + |
|
| 33 | + |
|
| 34 | + |
|
| 35 | +## ref |
|
| 36 | + |
|
| 37 | +- [[DAS1075]] |
|
| 38 | + |
|
| 39 | +- [legacy wiki page ](https://w.electrodragon.com/w/Arduino_MISC_Shield) |
|
| 40 | + |
|
| 41 | +- broken link - https://github.com/Edragon/Arduino_sketch/tree/master/MISC%20board%20demo%20code |
|
| 42 | + |
|
| 43 | +- demo code please find repos at [[arduino-dat]] |
|
| 44 | + |
|
| 45 | +- [[shields-dat]] - [[arduino-shields-dat]] - [[RPI-shields-dat]] |
|
| ... | ... | \ No newline at end of file |
Board-dat/NWI/NWI1066-dat/2025-10-18-13-38-31.png
| ... | ... | Binary files /dev/null and b/Board-dat/NWI/NWI1066-dat/2025-10-18-13-38-31.png differ |
Board-dat/NWI/NWI1066-dat/NWI1066-dat.md
| ... | ... | @@ -5,6 +5,10 @@ https://www.electrodragon.com/product/d1wifi-arduino-based-board-arduino-nodemcu |
| 5 | 5 | - legacy wiki page - https://w.electrodragon.com/w/Arduino-ESP8266 |
| 6 | 6 | - legacy wiki page 2 - https://w.electrodragon.com/w/Category:ESP8266_Boards |
| 7 | 7 | |
| 8 | + |
|
| 9 | + |
|
| 10 | + |
|
| 11 | + |
|
| 8 | 12 | ## Pins |
| 9 | 13 | |
| 10 | 14 | | 引腳 | 說明 | IC 內部引腳 | |
| ... | ... | @@ -31,6 +35,221 @@ https://www.electrodragon.com/product/d1wifi-arduino-based-board-arduino-nodemcu |
| 31 | 35 | |
| 32 | 36 |  |
| 33 | 37 | |
| 38 | + |
|
| 39 | +## relay control |
|
| 40 | + |
|
| 41 | +``` |
|
| 42 | +#include <ESP8266WiFi.h> |
|
| 43 | +#include <ESP8266WebServer.h> |
|
| 44 | +#include <EEPROM.h> |
|
| 45 | +#include <Ticker.h> |
|
| 46 | + |
|
| 47 | +Ticker tickerflash; |
|
| 48 | + |
|
| 49 | +// EEPROM helpers (write/read a struct/variable to EEPROM) |
|
| 50 | +#define EEPROM_write(address, p) { \ |
|
| 51 | + int i = 0; \ |
|
| 52 | + byte *pp = (byte*)&(p); \ |
|
| 53 | + for (; i < sizeof(p); i++) EEPROM.write(address + i, pp[i]); \ |
|
| 54 | +} |
|
| 55 | +#define EEPROM_read(address, p) { \ |
|
| 56 | + int i = 0; \ |
|
| 57 | + byte *pp = (byte*)&(p); \ |
|
| 58 | + for (; i < sizeof(p); i++) pp[i] = EEPROM.read(address + i); \ |
|
| 59 | +} |
|
| 60 | + |
|
| 61 | +/* Set these to your desired credentials. */ |
|
| 62 | +static char Apid[9] = "NETGEAR"; // according to your router settings |
|
| 63 | +static char softAPID[] = "KYSMART"; |
|
| 64 | +static char ApPass[10] = "zjky61448"; // according to your router settings |
|
| 65 | + |
|
| 66 | +byte APip[] = { 192, 168, 20, 221 }; // according to your router settings |
|
| 67 | +byte APGateWay[] = { 192, 168, 20, 254 }; // according to your router settings |
|
| 68 | +byte APSubNet[] = { 255, 255, 255, 0 }; |
|
| 69 | + |
|
| 70 | +// Modbus-like commands to open relays |
|
| 71 | +unsigned char openc[5][8] = { |
|
| 72 | + { 0x01, 0x06, 0x00, 0x01, 0x01, 0x01, 0x18, 0x5a}, // Relay 1 ON |
|
| 73 | + { 0x01, 0x06, 0x00, 0x01, 0x02, 0x01, 0x18, 0xaa}, // Relay 2 ON |
|
| 74 | + { 0x01, 0x06, 0x00, 0x01, 0x03, 0x01, 0x19, 0x3a}, // Relay 3 ON |
|
| 75 | + { 0x01, 0x06, 0x00, 0x01, 0x04, 0x01, 0x1b, 0x0a}, // Relay 4 ON |
|
| 76 | + { 0x01, 0x06, 0x00, 0x01, 0xff, 0xff, 0xd9, 0xba} // All ON |
|
| 77 | +}; |
|
| 78 | + |
|
| 79 | +// Modbus-like commands to close relays |
|
| 80 | +unsigned char closec[5][8] = { |
|
| 81 | + { 0x01, 0x06, 0x00, 0x01, 0x01, 0x00, 0xd9, 0x9a}, // Relay 1 OFF |
|
| 82 | + { 0x01, 0x06, 0x00, 0x01, 0x02, 0x00, 0xd9, 0x6a}, // Relay 2 OFF |
|
| 83 | + { 0x01, 0x06, 0x00, 0x01, 0x03, 0x00, 0xd8, 0xfa}, // Relay 3 OFF |
|
| 84 | + { 0x01, 0x06, 0x00, 0x01, 0x04, 0x00, 0xda, 0xca}, // Relay 4 OFF |
|
| 85 | + { 0x01, 0x06, 0x00, 0x01, 0x00, 0x00, 0xd8, 0x0a} // All OFF |
|
| 86 | +}; |
|
| 87 | + |
|
| 88 | +byte TSwitch[] = { 0, 0, 0, 0 }; |
|
| 89 | +byte StatSave[] = { 0xff, 0xff, 0xff, 0xff }; // power-fail protection (retain state) |
|
| 90 | + |
|
| 91 | +byte Switchnum = 10; // number of switches (was 13) |
|
| 92 | +const byte SwitchIO[] = { |
|
| 93 | + D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D14, D15 |
|
| 94 | +}; // list of switch pins |
|
| 95 | + |
|
| 96 | +byte flashLed = D13; // breathing LED |
|
| 97 | +int ledState = LOW; |
|
| 98 | +char funcstr[800]; |
|
| 99 | + |
|
| 100 | +byte aptype = 0; // mode: 1 = AP, 0 = CLIENT |
|
| 101 | + |
|
| 102 | +const char pageS[] PROGMEM = |
|
| 103 | + "<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\">\r\n" |
|
| 104 | + "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\">\r\n" |
|
| 105 | + "<style type=\"text/css\">" |
|
| 106 | + "*{margin:3;padding:3;}" |
|
| 107 | + "input{width:90%;height:40px;font-size:20px;background:#999;}" |
|
| 108 | + "</style>" |
|
| 109 | + "<center><h2>欢迎使用 electrodragon 智能家居<br></h2><h3>%s<br><a href=\"http://www.it15168.com\">ZJKEYOU SMART HOME</a></center></h3>"; |
|
| 110 | + |
|
| 111 | +const char LineS[] PROGMEM = "%s<br><br><a href=\"/\">返回</a><br>"; |
|
| 112 | + |
|
| 113 | +// Create an instance of the server |
|
| 114 | +ESP8266WebServer server(80); |
|
| 115 | + |
|
| 116 | +// Toggle bit B of value v |
|
| 117 | +int RevB(int v, byte b) { |
|
| 118 | + return (v ^= 1 << b); // toggle the POS bit of Number |
|
| 119 | +} |
|
| 120 | + |
|
| 121 | +void SaveSta() { |
|
| 122 | + EEPROM.begin(512); |
|
| 123 | + EEPROM_write(30, StatSave); |
|
| 124 | + EEPROM.commit(); |
|
| 125 | + EEPROM.end(); |
|
| 126 | +} |
|
| 127 | + |
|
| 128 | +void setSta(byte Aswitch, byte Sta) { |
|
| 129 | + byte i = Aswitch / 8; |
|
| 130 | + byte j = Aswitch % 8; |
|
| 131 | + bitWrite(TSwitch[3 - i], j, Sta); |
|
| 132 | +} |
|
| 133 | + |
|
| 134 | +void flash() { |
|
| 135 | + digitalWrite(flashLed, ledState); |
|
| 136 | + ledState = !ledState; |
|
| 137 | +} |
|
| 138 | + |
|
| 139 | +void handleRoot() { |
|
| 140 | + sprintf_P(funcstr, pageS, |
|
| 141 | + "<form action=/op1><input type=submit value=k1 开></form>" |
|
| 142 | + "<form action=/op2><input type=submit value=k1 关></form>" |
|
| 143 | + "<form action=/op3><input type=submit value=k2 开></form>" |
|
| 144 | + "<form action=/op4><input type=submit value=k2 关></form>" |
|
| 145 | + "<form action=/op5><input type=submit value=k3 开></form>" |
|
| 146 | + "<form action=/op6><input type=submit value=k3 关></form>" |
|
| 147 | + "<form action=/op7><input type=submit value=k4 开></form>" |
|
| 148 | + "<form action=/op8><input type=submit value=k4 关></form>" |
|
| 149 | + "<form action=/op9><input type=submit value=全 开></form>" |
|
| 150 | + "<form action=/op10><input type=submit value=全 关></form>" |
|
| 151 | + ); |
|
| 152 | + server.send(200, "text/html", funcstr); |
|
| 153 | +} |
|
| 154 | + |
|
| 155 | +void op1() { opoper(0, 1, "k1 已开"); } |
|
| 156 | +void op2() { opoper(0, 0, "k1 已关"); } |
|
| 157 | +void op3() { opoper(1, 1, "k2 已开"); } |
|
| 158 | +void op4() { opoper(1, 0, "k2 已关"); } |
|
| 159 | +void op5() { opoper(2, 1, "k3 已开"); } |
|
| 160 | +void op6() { opoper(2, 0, "k3 已关"); } |
|
| 161 | +void op7() { opoper(3, 1, "k4 已开"); } |
|
| 162 | +void op8() { opoper(3, 0, "k4 已关"); } |
|
| 163 | +void op9() { opoper(4, 1, "全已开"); } |
|
| 164 | +void op10(){ opoper(4, 0, "全已关"); } |
|
| 165 | + |
|
| 166 | +void opoper(byte port, byte oper, char *str) { |
|
| 167 | + char funcstr1[100]; |
|
| 168 | + if (oper == 1) { |
|
| 169 | + Serial.write(openc[port], 8); |
|
| 170 | + } else { |
|
| 171 | + Serial.write(closec[port], 8); |
|
| 172 | + } |
|
| 173 | + if (port < 4) { |
|
| 174 | + digitalWrite(SwitchIO[port], oper); |
|
| 175 | + setSta(port, oper); |
|
| 176 | + } |
|
| 177 | + funcstr[0] = 0; |
|
| 178 | + sprintf_P(funcstr1, LineS, str); |
|
| 179 | + sprintf_P(funcstr, pageS, funcstr1); |
|
| 180 | + server.send(200, "text/html", funcstr); |
|
| 181 | +} |
|
| 182 | + |
|
| 183 | +void handleNotFound() { |
|
| 184 | + String message = "File Not Found\n\n"; |
|
| 185 | + message += "URI: "; |
|
| 186 | + message += server.uri(); |
|
| 187 | + message += "\nMethod: "; |
|
| 188 | + message += (server.method() == HTTP_GET) ? "GET" : "POST"; |
|
| 189 | + message += "\nArguments: "; |
|
| 190 | + message += server.args(); |
|
| 191 | + message += "\n"; |
|
| 192 | + for (uint8_t i = 0; i < server.args(); i++) { |
|
| 193 | + message += " " + server.argName(i) + ": " + server.arg(i) + "\n"; |
|
| 194 | + } |
|
| 195 | + server.send(404, "text/plain", message); |
|
| 196 | +} |
|
| 197 | + |
|
| 198 | +void setup(void) { |
|
| 199 | + Serial.begin(9600); |
|
| 200 | + pinMode(flashLed, OUTPUT); |
|
| 201 | + for (int i = 0; i < Switchnum / 8; i++) { |
|
| 202 | + for (int j = 0; j < 8; j++) { |
|
| 203 | + pinMode(SwitchIO[i * 8 + j], OUTPUT); |
|
| 204 | + digitalWrite(SwitchIO[i * 8 + j], |
|
| 205 | + (bitRead(TSwitch[3 - i], j) > 0) && (bitRead(StatSave[3 - i], j) > 0)); |
|
| 206 | + } |
|
| 207 | + } |
|
| 208 | + |
|
| 209 | + Serial.print("Conn to:"); |
|
| 210 | + Serial.println(Apid); |
|
| 211 | + |
|
| 212 | + if (aptype == 1) { |
|
| 213 | + WiFi.softAP(softAPID, ApPass); |
|
| 214 | + IPAddress myIP = WiFi.softAPIP(); |
|
| 215 | + Serial.print("AP IP address:"); |
|
| 216 | + Serial.println(myIP); |
|
| 217 | + } else { |
|
| 218 | + WiFi.config(APip, APGateWay, APSubNet); |
|
| 219 | + WiFi.begin(Apid, ApPass); |
|
| 220 | + while (WiFi.status() != WL_CONNECTED) { |
|
| 221 | + delay(500); |
|
| 222 | + Serial.print("."); |
|
| 223 | + } |
|
| 224 | + Serial.println("server started:"); |
|
| 225 | + Serial.println(WiFi.localIP()); |
|
| 226 | + } |
|
| 227 | + |
|
| 228 | + server.on("/", handleRoot); |
|
| 229 | + server.on("/op1", op1); |
|
| 230 | + server.on("/op2", op2); |
|
| 231 | + server.on("/op3", op3); |
|
| 232 | + server.on("/op4", op4); |
|
| 233 | + server.on("/op5", op5); |
|
| 234 | + server.on("/op6", op6); |
|
| 235 | + server.on("/op7", op7); |
|
| 236 | + server.on("/op8", op8); |
|
| 237 | + server.on("/op9", op9); |
|
| 238 | + server.on("/op10", op10); |
|
| 239 | + server.onNotFound(handleNotFound); |
|
| 240 | + server.begin(); |
|
| 241 | + tickerflash.attach_ms(800, flash); |
|
| 242 | +} |
|
| 243 | + |
|
| 244 | +void loop(void) { |
|
| 245 | + server.handleClient(); |
|
| 246 | + WiFiClient client = server.client(); |
|
| 247 | + client.flush(); |
|
| 248 | +} |
|
| 249 | +``` |
|
| 250 | + |
|
| 251 | + |
|
| 252 | + |
|
| 34 | 253 | ## ref |
| 35 | 254 | |
| 36 | 255 |
Board-dat/PSO/PSO1030-dat/PSO1030-dat.md
| ... | ... | @@ -9,7 +9,7 @@ |
| 9 | 9 | |
| 10 | 10 | - [[PSO1030]] |
| 11 | 11 | |
| 12 | -- [[PCBA-dat]] - [[soldering-dat]] |
|
| 13 | - |
|
| 12 | +- [[fab-PCBA-dat]] - [[PCB-soldering-dat]] |
|
| 14 | 13 | |
| 14 | +- [[fab-dat]] |
|
| 15 | 15 |
Board-dat/STH/STH1052-dat/STH1052-dat.md
| ... | ... | @@ -4,7 +4,11 @@ |
| 4 | 4 | ## Info |
| 5 | 5 | |
| 6 | 6 | [product url](https://www.electrodragon.com/product/soildust-humiditywatermoisture-sensor/) |
| 7 | - |
|
| 7 | + |
|
| 8 | + |
|
| 9 | + |
|
| 10 | + |
|
| 11 | + |
|
| 8 | 12 | ## Applications, category, tags, etc. |
| 9 | 13 | |
| 10 | 14 | - [[home-plant-dat]] |
| ... | ... | @@ -21,6 +25,8 @@ Pin definitiions: |
| 21 | 25 | |
| 22 | 26 |  |
| 23 | 27 | |
| 28 | + |
|
| 29 | + |
|
| 24 | 30 | ## SCH |
| 25 | 31 | |
| 26 | 32 |  |
| ... | ... | @@ -32,4 +38,6 @@ Pin definitiions: |
| 32 | 38 | |
| 33 | 39 | - comparator - [[LM393-dat]] |
| 34 | 40 | |
| 41 | +- [[sensor-moisture-dat]] - [[sensor-dat]] |
|
| 42 | + |
|
| 35 | 43 | - [[STH1052]] |
| ... | ... | \ No newline at end of file |
Chip-dat/bosch-dat/BME280-dat/BME280-dat.md
| ... | ... | @@ -1,7 +1,7 @@ |
| 1 | 1 | |
| 2 | 2 | # BME280-dat |
| 3 | 3 | |
| 4 | -- [[humidity-sensor-dat]] - [[sensor-pressure-dat]] - [[sensor-temperature-dat]] |
|
| 4 | +- [[sensor-humidity-dat]] - [[sensor-pressure-dat]] - [[sensor-temperature-dat]] |
|
| 5 | 5 | |
| 6 | 6 | - [[temp-hum-sensor-dat]] |
| 7 | 7 |
PCB-dat/PCB-design-dat/test-point-dat/2025-10-15-21-08-05.png
| ... | ... | Binary files /dev/null and b/PCB-dat/PCB-design-dat/test-point-dat/2025-10-15-21-08-05.png differ |
PCB-dat/PCB-design-dat/test-point-dat/test-point-dat.md
| ... | ... | @@ -7,6 +7,10 @@ add points like |
| 7 | 7 | |
| 8 | 8 | |
| 9 | 9 | |
| 10 | +## pre-designed test hook |
|
| 11 | + |
|
| 12 | + |
|
| 13 | + |
|
| 10 | 14 | ## press test rig V3 |
| 11 | 15 | |
| 12 | 16 |  |
SDK-dat/arduino-dat/arduino-dat.md
| ... | ... | @@ -37,6 +37,11 @@ |
| 37 | 37 | |
| 38 | 38 | |
| 39 | 39 | |
| 40 | +- [[arduino-shields-dat]] |
|
| 41 | + |
|
| 42 | + |
|
| 43 | + |
|
| 44 | + |
|
| 40 | 45 | ## ref |
| 41 | 46 | |
| 42 | 47 | - [[mcu-dat]] - [[dev-board-dat]] |
| ... | ... | \ No newline at end of file |
Tech-dat/SBC-dat/RPI-dat/RPI-HDK-dat/RPI-shields-dat/RPI-shields-dat.md
| ... | ... | @@ -1,4 +0,0 @@ |
| 1 | - |
|
| 2 | -# RPI-shields-dat |
|
| 3 | - |
|
| 4 | -- [[MPC1101-dat]] |
|
| ... | ... | \ No newline at end of file |
Tech-dat/Sensor-dat/liquid-sensor-dat/liquid-sensor-dat.md
| ... | ... | @@ -1,19 +0,0 @@ |
| 1 | - |
|
| 2 | -# liquid-sensor-dat |
|
| 3 | - |
|
| 4 | -- turbidity [[STH1074-dat]] |
|
| 5 | - |
|
| 6 | -- TDS sensor [[STH1078-dat]] - [[TDS-sensor-dat]] |
|
| 7 | - |
|
| 8 | -- non-contact Liquid Level Sensor - [[SMO1095-dat]] |
|
| 9 | - |
|
| 10 | -- flow speed sensor - [[STH1000-dat]] |
|
| 11 | - |
|
| 12 | -- rain drop sensor - [[STH1049-dat]] |
|
| 13 | - |
|
| 14 | -- liquid pressure == XGZP040 |
|
| 15 | - |
|
| 16 | - |
|
| 17 | -## ref |
|
| 18 | - |
|
| 19 | -- [[sensor-dat]] |
|
| ... | ... | \ No newline at end of file |
Tech-dat/Sensor-dat/sensor-dat.md
| ... | ... | @@ -23,8 +23,6 @@ |
| 23 | 23 | |
| 24 | 24 | - [[hall-sensor-dat]] - [[angle-encoder-dat]] |
| 25 | 25 | |
| 26 | -- [[liquid-sensor-dat]] |
|
| 27 | - |
|
| 28 | 26 | - [[sensor-pressure-dat]] |
| 29 | 27 | |
| 30 | 28 | |
| ... | ... | @@ -35,6 +33,13 @@ |
| 35 | 33 | - [[SVC1010-dat]] |
| 36 | 34 | |
| 37 | 35 | |
| 36 | +## objection sensors |
|
| 37 | + |
|
| 38 | +- [[sensor-objection-dat]] |
|
| 39 | + |
|
| 40 | +- [[sensor-moisture-dat]] - [[liquid-sensor-dat]] - [[sensor-TDS-dat]] - [[TDS-dat]] |
|
| 41 | + |
|
| 42 | + |
|
| 38 | 43 | |
| 39 | 44 | ## 30 commonly used types of sensors |
| 40 | 45 |
Tech-dat/Sensor-dat/sensor-objection-dat/sensor-liquid-dat/sensor-liquid-dat.md
| ... | ... | @@ -0,0 +1,19 @@ |
| 1 | + |
|
| 2 | +# liquid-sensor-dat |
|
| 3 | + |
|
| 4 | +- turbidity [[STH1074-dat]] |
|
| 5 | + |
|
| 6 | +- TDS sensor [[STH1078-dat]] - [[TDS-sensor-dat]] |
|
| 7 | + |
|
| 8 | +- non-contact Liquid Level Sensor - [[SMO1095-dat]] |
|
| 9 | + |
|
| 10 | +- flow speed sensor - [[STH1000-dat]] |
|
| 11 | + |
|
| 12 | +- rain drop sensor - [[STH1049-dat]] |
|
| 13 | + |
|
| 14 | +- liquid pressure == XGZP040 |
|
| 15 | + |
|
| 16 | + |
|
| 17 | +## ref |
|
| 18 | + |
|
| 19 | +- [[sensor-dat]] |
|
| ... | ... | \ No newline at end of file |
Tech-dat/Sensor-dat/sensor-objection-dat/sensor-moisture-dat/sensor-moisture-dat.md
| ... | ... | @@ -0,0 +1,93 @@ |
| 1 | + |
|
| 2 | +# sensor-moisture-dat |
|
| 3 | + |
|
| 4 | +## board |
|
| 5 | + |
|
| 6 | +- [[STH1052-dat]] - soil moisture sensor board |
|
| 7 | + |
|
| 8 | + |
|
| 9 | + |
|
| 10 | + |
|
| 11 | + |
|
| 12 | + |
|
| 13 | +## working principles |
|
| 14 | + |
|
| 15 | +The principle of detecting soil moisture is mainly **based on measuring how the presence of water affects the electrical or physical properties of the soil**. The most common types are as follows: |
|
| 16 | + |
|
| 17 | +--- |
|
| 18 | + |
|
| 19 | +### 🌱 1. Resistive (Conductivity-Based) Principle |
|
| 20 | +**Principle:** |
|
| 21 | +The more water in the soil, the higher its conductivity (lower resistance) because water contains electrolytes. When the soil is dry, resistance increases. |
|
| 22 | + |
|
| 23 | +**How it works:** |
|
| 24 | +- Two metal probes are inserted into the soil. |
|
| 25 | +- A small voltage is applied across them. |
|
| 26 | +- The resulting current or resistance is measured and converted to moisture content. |
|
| 27 | + |
|
| 28 | +**Advantages:** Simple, inexpensive, fast response. |
|
| 29 | +**Disadvantages:** Electrodes corrode easily, affected by soil salinity, limited long-term stability. |
|
| 30 | + |
|
| 31 | +--- |
|
| 32 | + |
|
| 33 | +### 🌾 2. Capacitive Principle |
|
| 34 | +**Principle:** |
|
| 35 | +The dielectric constant of water (~80) is much higher than that of dry soil (~4) or air (~1). |
|
| 36 | +As soil moisture increases, the dielectric constant of the soil rises, and the sensor’s capacitance increases. |
|
| 37 | + |
|
| 38 | +**How it works:** |
|
| 39 | +- The sensor forms a capacitor (with metal probes or plates). |
|
| 40 | +- The capacitance change is measured and calibrated to indicate moisture level. |
|
| 41 | + |
|
| 42 | +**Advantages:** |
|
| 43 | +- No direct electrical contact with soil (non-corrosive). |
|
| 44 | +- High stability, suitable for long-term monitoring. |
|
| 45 | + |
|
| 46 | +**Disadvantages:** |
|
| 47 | +- Slightly higher cost. |
|
| 48 | +- Requires high-frequency measurement circuitry. |
|
| 49 | + |
|
| 50 | +--- |
|
| 51 | + |
|
| 52 | +### 🌿 3. Time Domain Reflectometry (TDR) |
|
| 53 | + |
|
| 54 | + |
|
| 55 | +**Principle:** |
|
| 56 | + |
|
| 57 | +The propagation speed of an electromagnetic pulse in soil depends on the soil’s dielectric constant, which varies with moisture content. |
|
| 58 | +More water → higher dielectric constant → slower signal propagation. |
|
| 59 | + |
|
| 60 | +**How it works:** |
|
| 61 | +- A high-frequency pulse is sent along probes. |
|
| 62 | +- The reflection time or waveform change is measured. |
|
| 63 | +- The dielectric constant is calculated and converted into volumetric water content. |
|
| 64 | + |
|
| 65 | +**Advantages:** Very accurate, measures volumetric water content. |
|
| 66 | +**Disadvantages:** Expensive and complex equipment. |
|
| 67 | + |
|
| 68 | +--- |
|
| 69 | + |
|
| 70 | +### 🍂 4. Neutron Scattering Method (Scientific Use) |
|
| 71 | +**Principle:** |
|
| 72 | +Fast neutrons are slowed down when they collide with hydrogen atoms (mainly from water molecules). |
|
| 73 | +The number of slow neutrons detected indicates the soil water content. |
|
| 74 | + |
|
| 75 | +**Advantages:** Extremely accurate. |
|
| 76 | +**Disadvantages:** Very expensive, requires radioactive sources, strict safety requirements. |
|
| 77 | + |
|
| 78 | +--- |
|
| 79 | + |
|
| 80 | +### ✅ Comparison Table |
|
| 81 | + |
|
| 82 | +| Type | Measurement Basis | Accuracy | Cost | Stability | Characteristics | |
|
| 83 | +|------|--------------------|----------|------|------------|----------------| |
|
| 84 | +| Resistive | Conductivity | ★★ | Low | ★ | Simple but corrodes easily | |
|
| 85 | +| Capacitive | Dielectric constant | ★★★ | Medium | ★★★ | Stable, most commonly used | |
|
| 86 | +| TDR | Electromagnetic wave velocity | ★★★★★ | High | ★★★★★ | High precision, research use | |
|
| 87 | +| Neutron | Hydrogen atom count | ★★★★★ | Very High | ★★★★ | Laboratory / scientific use | |
|
| 88 | + |
|
| 89 | + |
|
| 90 | + |
|
| 91 | +## ref |
|
| 92 | + |
|
| 93 | +- [[sensor-dat]] |
|
| ... | ... | \ No newline at end of file |
Tech-dat/Sensor-dat/sensor-objection-dat/sensor-objection-dat.md
| ... | ... | @@ -0,0 +1,5 @@ |
| 1 | + |
|
| 2 | +# sensor-objection-dat |
|
| 3 | + |
|
| 4 | +- [[sensor-moisture-dat]] - [[liquid-sensor-dat]] |
|
| 5 | + |
Tech-dat/Sensor-dat/sensor-temp-hum-dat/sensor-humidity-dat/humidity-sensor-dat.md
| ... | ... | @@ -1,9 +0,0 @@ |
| 1 | - |
|
| 2 | -# humidity-sensor-dat |
|
| 3 | - |
|
| 4 | -- [[BME280-dat]] |
|
| 5 | - |
|
| 6 | -- [[SHT4x-dat]] |
|
| 7 | - |
|
| 8 | -- [[sensirion-dat]] |
|
| 9 | - |
Tech-dat/Sensor-dat/sensor-temp-hum-dat/sensor-humidity-dat/sensor-humidity-dat.md
| ... | ... | @@ -0,0 +1,15 @@ |
| 1 | + |
|
| 2 | +# humidity-sensor-dat |
|
| 3 | + |
|
| 4 | +- [[BME280-dat]] |
|
| 5 | + |
|
| 6 | +- [[SHT4x-dat]] |
|
| 7 | + |
|
| 8 | +- [[sensirion-dat]] |
|
| 9 | + |
|
| 10 | + |
|
| 11 | + |
|
| 12 | + |
|
| 13 | +## ref |
|
| 14 | + |
|
| 15 | +- [[sensor-dat]] |
|
| ... | ... | \ No newline at end of file |
app-dat/home-plant-dat/home-plant-dat.md
| ... | ... | @@ -3,6 +3,7 @@ |
| 3 | 3 | |
| 4 | 4 | - [[humidifier]] |
| 5 | 5 | |
| 6 | + |
|
| 6 | 7 | ## type |
| 7 | 8 | |
| 8 | 9 | ### Mushroom |
| ... | ... | @@ -22,15 +23,22 @@ The water will slowly evaporate, increasing the humidity. You can add a small fa |
| 22 | 23 | |
| 23 | 24 | ### sensing |
| 24 | 25 | |
| 25 | -sening by [[sensor-dat]] - [[sensor-temperature-dat]] and [[humidity-sensor-dat]] |
|
| 26 | +sening by [[sensor-dat]] - [[sensor-temperature-dat]] and [[sensor-humidity-dat]] |
|
| 26 | 27 | |
| 27 | 28 | [[actuator-dat]] to generate [[humidity-dat]] |
| 28 | 29 | |
| 30 | +- [[sensor-moisture-dat]] |
|
| 31 | + |
|
| 32 | + |
|
| 33 | + |
|
| 29 | 34 | #### cooling and warming |
| 30 | 35 | |
| 31 | 36 | - [[Peltier-dat]] - [[fan-dat]] - [[thermostat-dat]] |
| 32 | 37 | |
| 33 | 38 | |
| 39 | + |
|
| 40 | + |
|
| 41 | + |
|
| 34 | 42 | ### Air Flow |
| 35 | 43 | |
| 36 | 44 | The term "fresh air" for plants, in a technical sense, generally refers to an optimal supply of oxygen (O₂) and carbon dioxide (CO₂), along with proper air circulation, which are essential for the healthy growth and metabolism of plants. |
board-series-dat/arduino-shields-dat/arduino-shields-dat.md
| ... | ... | @@ -1,17 +0,0 @@ |
| 1 | - |
|
| 2 | -# arduino-shields-dat |
|
| 3 | - |
|
| 4 | -- [[SCU1090-dat]] |
|
| 5 | - |
|
| 6 | -motor drive shields |
|
| 7 | - |
|
| 8 | -- [[SDR1060-dat]] |
|
| 9 | - |
|
| 10 | - |
|
| 11 | -pin header: - [[CCO3507-dat]] - [[CCO3509-dat]] - [[CCO3510-dat]] - [[arduino-pin-headers-dat]] |
|
| 12 | - |
|
| 13 | - |
|
| 14 | - |
|
| 15 | -## ref |
|
| 16 | - |
|
| 17 | -- [[arduino-dat]] |
|
| ... | ... | \ No newline at end of file |
board-series-dat/shields-dat/RPI-shields-dat/RPI-shields-dat.md
| ... | ... | @@ -0,0 +1,4 @@ |
| 1 | + |
|
| 2 | +# RPI-shields-dat |
|
| 3 | + |
|
| 4 | +- [[MPC1101-dat]] |
|
| ... | ... | \ No newline at end of file |
board-series-dat/shields-dat/arduino-shields-dat/arduino-shields-dat.md
| ... | ... | @@ -0,0 +1,19 @@ |
| 1 | + |
|
| 2 | +# arduino-shields-dat |
|
| 3 | + |
|
| 4 | +- [[SCU1090-dat]] |
|
| 5 | + |
|
| 6 | +motor drive shields |
|
| 7 | + |
|
| 8 | +- [[SDR1060-dat]] |
|
| 9 | + |
|
| 10 | + |
|
| 11 | +pin header: - [[CCO3507-dat]] - [[CCO3509-dat]] - [[CCO3510-dat]] - [[arduino-pin-headers-dat]] |
|
| 12 | + |
|
| 13 | + |
|
| 14 | + |
|
| 15 | +## ref |
|
| 16 | + |
|
| 17 | +https://w.electrodragon.com/w/Category:Arduino_Shields |
|
| 18 | + |
|
| 19 | +- [[arduino-dat]] |
|
| ... | ... | \ No newline at end of file |
board-series-dat/shields-dat/shields-dat.md
| ... | ... | @@ -0,0 +1,8 @@ |
| 1 | + |
|
| 2 | + |
|
| 3 | +# shields-dat.md |
|
| 4 | + |
|
| 5 | +- [[arduino-shields-dat]] - [[RPI-shields-dat]] |
|
| 6 | + |
|
| 7 | + |
|
| 8 | + |