電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創(chuàng)作
電子發(fā)燒友網>電子資料下載>電子資料>Arduino控制的智能水培模塊化系統(tǒng)

Arduino控制的智能水培模塊化系統(tǒng)

2022-11-17 | zip | 0.09 MB | 次下載 | 2積分

資料介紹

描述

我們熱愛電子和植物,因此我們在 Juan de Lanuza 學校的“家庭機器人”活動中創(chuàng)建了一個水培系統(tǒng)。我們想創(chuàng)建一個便攜式系統(tǒng),以便向所有學校展示它并在一年中種植區(qū)域植物。

水培法

對我們來說,水培不僅是一種愉快的愛好,也是一種綠色的愛好。

水培法僅使用在泥土中生長的植物所需的 10% 的水,并且由于植物在需要時總能獲得必要的養(yǎng)分,因此產量更高。

作為一個封閉系統(tǒng),這也意味著肥料不會進入地下水位,這對環(huán)境非常有益。

第 1 步:項目

我們的項目是水培,一種基于水培的室內種植,一種使用礦物質溶液代替土壤來種植植物的方法。一般結構由鋁制成。水循環(huán)的結構由手工切割和粘合的 PVC 管組成,由 6 層水通過。每個級別都已鉆孔以放置花盆。還設計了 3D 部件,使花盆不會移動并支持照明。在下部有一個水箱,系統(tǒng)的水落入其中,通過該水箱可以將不同的成分添加到水中。如果必須排空水箱,我們有一個手動排水。

我們的平臺由三個不同的部分組成:

  • 模塊化結構:PVC 和鋁框架,以支持所有的水培系統(tǒng)。
  • 電子電路:我們系統(tǒng)數(shù)字“大腦”的主控
  • 傳感器/執(zhí)行器:測量和控制我們系統(tǒng)的所有數(shù)據(jù)和參數(shù)。

該設備允許通過感應幾個參數(shù)來控制植物的狀態(tài):

  • 空氣溫度和濕度
  • 水溫
  • 酸堿度
  • 電導率
  • 時間

然后它使用不同類型的執(zhí)行器通過灌溉、激活燈光或釋放養(yǎng)分來改變植物的狀態(tài):

  • 水泵
  • 成長之光
  • 營養(yǎng)喂食器

該設備使用 WiFi 定期將信息發(fā)送到網絡服務器。我們還設計了一個應用程序,允許從 Android 設備可視化這些數(shù)據(jù)。我們已將其作為開源代碼發(fā)布。

第 2 步:材料

結構材料:

  • 100mm直徑PVC管x6米
  • 40mm直徑PVC管x2米
  • 40-10mm PVC接頭 x1
  • 90o 40mm 連接器 x12
  • 水壓克力沉積物(或 5l 瓶)
  • 靈活的 10 毫米管 x 2 米
  • 2m木桌2x1x1米
  • 鋁框 x 16 米
  • 鋁制 3 框架連接器 x8
  • 鋁制 4 框架連接器 x8
  • 鋁制 5 框架連接器 x2
  • 輪子 x4
  • PVC膠

電子/電工材料:

  • 阿杜諾巨型
  • 原型板 MEGA
  • 連接器原型板 MEGA:
  • 中繼模塊:
  • HC05模塊:
  • 溫濕度環(huán)境傳感器:
  • 水泵:
  • PH/電導板:
  • PH 傳感器:
  • 電導率傳感器:
  • 生長燈:
  • 喂魚器:

其他:

  • 花盆

工具:

  • 旋轉手動工具
  • 手鉆
  • 烙鐵
  • 剝線機
  • 熱膠槍
  • 孔鋸

第 3 步:模塊化框架

為該項目設計了一個模塊化的低成本水培系統(tǒng)。使用不同尺寸的連接器連接 PVC 管道,如主圖所示。

施工步驟

  • PVC的切割長度
  • 把所有東西放在一起
  • 鉆孔

支撐架

我們需要一個框架來支撐我們的管道。框架由鋁制成,具有模塊化特性(易于將多個模塊安裝在一起)和易于使用的尺寸(易于使用基本工具直接切割)。

模塊化底座

我們集成了一個帶有 4 個輪子的模塊化木底座,以創(chuàng)建一個便攜式系統(tǒng)。

第 4 步:PVC 組裝

我們將各個腿部組件粘合在一起以增加穩(wěn)定性。

結構的尺寸決定了水培系統(tǒng)的大小和系統(tǒng)可以支持的行數(shù)。

我們當前的模型包括 6 個級別。可以通過減小行間距來修改間距以支持更多的生長區(qū)域。

注意:該項目的 PVC 管最好使用斜切鋸切割。這些很容易以兩種類型獲得:便宜的手動鋸或省時的電動鋸。

第5步:植物洞

我們在每根管子上鉆了 5 到 7 個孔。首先,標記每個孔的點。用磨頭獲取您的 dremel 工具并清理孔,直到杯子符合您的預期。我們使用塑料玻璃作為植物地塊。如果您也使用它們,請在底部和邊緣鉆孔,以便根部可以接觸玻璃外的水。

用杯子量出粘土球放入一桶水中。水會洗掉球中可能存在的任何灰塵。

第6步:水培結構

在水培中,這一切都是為了將??富含營養(yǎng)的水輸送到植物的根部,同時確保水中仍有足夠的氧氣。我們創(chuàng)建了 NFT(營養(yǎng)膜技術)系統(tǒng)。為此,我們需要植物根部可以接觸到的少量但恒定的水流。

水含有植物所需的所有營養(yǎng)物質,而恒定的流量確保水中有足夠的氧氣。

植物需要一些東西來支撐它們,雖然我們沒有土壤來支撐它們,但這就是水培介質的用武之地。我們使用了上面提到的膨脹粘土球。這些給植物提供支持,并提供一個小的緩沖來保持水分。

第 7 步:電氣連接

我們使用鋁框架作為支撐連接所有電纜和電氣系統(tǒng)。它使用 3A 12V 電源連接到 220V。在結構頂部,我們連接了生長燈。我們的是 12V LED 燈條,每米長度消耗大約 0.5A。在底部,我們連接了使用 1A 的水泵。

主電路消耗在0.5A左右。

第 8 步:3D 打印支撐

我們設計了不同的 3D 打印部件以支持不同的元素:

  • 花盆/塑料玻璃杯:我們制作了圓形支架,將它們安裝在管道頂部。
  • 生長燈:我們創(chuàng)建了支架以將它們放置在鋁制框架上。

我們使用了 Tinkercad,這是一個非常簡單的在線 3D CAD 程序,您可以在此處使用:www.tinkercad.com

?
?

第 9 步:電子電路

在這里您可以找到水培電路的主圖和項目的引腳排列。

第 10 步:水泵

我們使用防水泵將水從地板的水箱中提升到結構的頂部。

第 11 步:營養(yǎng)喂食器

水培需要特殊的養(yǎng)分,因為普通肥料的配方是與土壤一起使用的,不應該用于水培。根據(jù)植物生長的不同階段和作物類型,水培肥料可以有不同的類型。

我們破解了一個“喂魚器”,以便用 Arduino 控制它。這是我們的個性化營養(yǎng)喂食器。我們在需要的時候控制它,以便我們可以向水箱釋放更多的營養(yǎng)。然后我們重新打開水泵,讓植物獲得營養(yǎng)。

第 12 步:水培傳感器

必須定期添加營養(yǎng)物質,很難說何時需要添加。人們每周一次到每月一次,這取決于您每次添加多少肥料。另一種選擇是控制 pH 值和電導率水平以相應地調整肥料量。

我們?yōu)樗嘞到y(tǒng)集成了 2 個特定傳感器。

PH傳感器

pH 傳感器探頭有一個 BNC 連接器,它集成了傳感器的所有不同電線。

特征:

  • 測量范圍:0~14pH
  • 適用溫度:0~60°
  • CBNC 連接器
  • 電纜:2.9 米

校準傳感器

為了校準 pH 傳感器,需要一個 pH 校準套件。

電導率傳感器

電導率傳感器探頭有兩個非極化觸點,因此可以互換。

特征:

  • 適用溫度:0~60°
  • CBNC 連接器
  • 電纜:2.9 米
  • 模擬輸出

校準傳感器

為了校準 EC 傳感器,您需要一個電導率校準套件

第 13 步:主代碼

目標是使用 Arduino MEGA 實現(xiàn)自動化。這包括:

  • 通過計時器進行水循環(huán)
  • 計時器點亮
  • 數(shù)據(jù)測量
  • 通過測量營養(yǎng)(電導率)和通過營養(yǎng)劑量進行校正
  • 泵控制
  • 測量的水質 (pH)
  • 數(shù)據(jù)采集
  • 記錄傳感器測量和動作

我們附上了項目的主要 Arduino 代碼。如果您使用不同的 pH 或電導率傳感器,則可能需要更改計算以獲得真實值。

Arduino程序

  • 保持時間
  • 讀取傳感器
  • 通過藍牙與應用程序通信:- 發(fā)送數(shù)據(jù)(pH、電導率、水溫、空氣溫度、空氣濕度、arduino 時間、泵狀態(tài)和燈狀態(tài))- 從應用程序接收時間更新
  • 每小時打開/關閉泵數(shù)分鐘
  • 打開/關閉燈
  • 每隔 15 分鐘將數(shù)據(jù)傳輸?shù)?ThingSpeak(pH、電導率、水溫、氣溫、空氣濕度)

圖書館:

我們已經包含了所有使用的庫。

代碼:

// HidroponicoCole_v5.8 NO CLAVES//
// bluetooht RX3-TX3
// DALLAS pin 3
// DHT pin 2
// Bomba pin 6
// Luz pin 7
// Shield ESP 8266 con comandos AT
// Utiliza libreria TimeLib para la fecha y hora
// Envia datos cada 15 minutos
// LCD con ALARMAS
// Invierte salida Bomba y Luz 0= activo, 1= inactivo
// -----------------------------------------------------------

#define DEBUG 0 // change value to 1 to enable debuging using serial monitor String network = "SSID NAME"; // your access point SSID String password = "PASSWORD"; // your wifi Access Point password #define IP "184.106.153.149" // IP address of thingspeak.com 184.106.153.149 String GET = "GET /update?key=CHANNEL_KEY"; // replace with your channel key

#include "OpenGarden.h" #include #include #include #include #include

// initialize the library by associating any needed LCD interface pin // with the arduino pin number it is connected to const int rs = 51, en = 53, d4 = 39, d5 = 37, d6 = 35, d7 = 33; LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

// Establece valores inicio de fecha y hora int hora = 9; int minuto = 0; int segundo = 0; int dia = 1; int mes = 1; int ano = 17;

bool nuevoSegundo; int viejoSegundo = 0;

bool nuevoMinuto; int viejoMinuto = 0;

bool nuevaHora; int viejaHora = 0;

// variables telegrama recibido de bluethooh // cabecera, cuerpo1, cuerpo2, cuerpo3, fin int cabecera = 0; int cuerpo1 = 0; int cuerpo2 = 0; int cuerpo3 = 0; int fin = 0;

// Sensores PH y EC #define calibration_point_4 2246 //Write here your measured value in mV of pH 4 #define calibration_point_7 2080 //Write here your measured value in mV of pH 7 #define calibration_point_10 1894 //Write here your measured value in mV of pH 10

#define point_1_cond 40000 // Write here your EC calibration value of the solution 1 in μS/cm #define point_1_cal 40 // Write here your EC value measured in resistance with solution 1 #define point_2_cond 10500 // Write here your EC calibration value of the solution 2 in μS/cm #define point_2_cal 120 // Write here your EC value measured in resistance with solution 2

/* SENSOR DHT22 (AIRE) */ #define DHTPIN 2 #define DHTTYPE DHT22

float TemperaturaAire; float HumedadAire; DHT dht(DHTPIN, DHTTYPE);

/* SENSOR Temperatura DALLAS (TemperaturaAgua) */ #define ONE_WIRE_BUS 3 OneWire oneWireBus (ONE_WIRE_BUS); DallasTemperature sensors (&oneWireBus); float TemperaturaAgua;

/* BOMBA y LUZ */ #define PinBombaAgua 6 // Bomba en pin 6 #define PinLuz 7 // Luces en pin 7 #define Amanece 8 // Hora de encendido Luz #define Anochece 20 // Hora apagado Luz #define MinutosBomba 20 // Minutos funcionando bomba bool BombaAgua = 0; // 0=parada , 1= marcha bool Luz = 0; // 0= apagada , 1= encendida

// VALORES DE ALARMAS #define PhAlto 10 // Valor alto alarma Ph #define PhBajo 5 // Valor bajo alarma Ph #define EcAlto 3000 // Valor alto alarma Ec #define EcBajo 900 // Valor bajo alarma Ec // Valor EcMuyBajo activa "Falta de agua". NO PERMITE FUNCIONAMIENTO BOMBA #define EcMuyBajo 200 #define TempAguaAlto 40 // Valor alto alama Temp Agua #define TempAguaBajo 5 // Valor bajo alama Temp Agua int AlarmaPH; // alarma Ph int AlarmaTempAgua; // alarma Temp int AlarmaEC; // alarma Ec

float pH; float EC;

void setup() { lcd.begin(16, 2); // Inicia LCD 16 caracteres, 2 filas // Mensaje de arranque en LCD borrarLCD(); lcd.setCursor(0, 0); // posiciona cursor linea 0, columna 0 lcd.print("INICIANDO"); lcd.setCursor(0, 1); lcd.print("ESPERE .....");

setupEsp8266(); // inicia conexión WiFi

pinMode(PinBombaAgua, OUTPUT); pinMode(PinLuz, OUTPUT);

Serial3.begin(9600); Serial.begin(115200);

// establece fecha y hora al arrancar setTime(hora, minuto, segundo, dia, mes, ano);

// Start up the libraries sensors.begin(); // DALLAS dht.begin(); // DHT

OpenGarden.initSensors(); //Initialize sensors power OpenGarden.sensorPowerON();//Turn On the sensors OpenGarden.calibratepH(calibration_point_4, calibration_point_7, calibration_point_10); OpenGarden.calibrateEC(point_1_cond, point_1_cal, point_2_cond, point_2_cal); delay(500); }

void loop() {

// Read DALLAS // call sensors.requestTemperatures() to issue a global temperature // request to all devices on the bus sensors.requestTemperatures(); // Send the command to get temperatures TemperaturaAgua = (sensors.getTempCByIndex(0)); // Why "byIndex"? // You can have more than one IC on the same bus. // 0 refers to the first IC on the wire

// Lee DHT 22 HumedadAire = dht.readHumidity(); TemperaturaAire = dht.readTemperature();

//Read the pH sensor int mvpH = OpenGarden.readpH(); //Value in mV of pH pH = OpenGarden.pHConversion(mvpH); //Calculate pH value if ( pH < 0 || pH > 14) { pH = 0 ; }

//Read the conductivity sensor in μS/cm float resistanceEC = OpenGarden.readResistanceEC(); //EC Value in resistance EC = OpenGarden.ECConversion(resistanceEC); //EC Value in μS/cm

// Alarmas datos Agua AlarmaPH = 0; // Resetea el valor de la alarma Ph if ( pH > PhAlto ) { AlarmaPH = 2 ; } if ( pH < PhBajo ) { AlarmaPH = 1 ; }

AlarmaTempAgua = 0; // Resetea el valor de la alarma Temp Agua if ( TemperaturaAgua > TempAguaAlto ) { AlarmaTempAgua = 2 ; } if ( TemperaturaAgua < TempAguaBajo ) { AlarmaTempAgua = 1 ; }

AlarmaEC = 0; // Resetea el valor de la alarma EC if ( EC > EcAlto ) { AlarmaEC = 2 ; } if ( EC < EcBajo ) { AlarmaEC = 1 ; } if ( EC < EcMuyBajo ) { AlarmaEC = 3 ; }

// Construye y envia a ESP 8266 if (viejoMinuto != minute()) { nuevoMinuto = true; viejoMinuto = minute(); } else { nuevoMinuto = false; }

if (minute() % 15 == 0 && nuevoMinuto) { // 5= cada 5 minutos, 15= cada 15 minutos updateTemp(String(pH) , String(EC), String(TemperaturaAgua), String(TemperaturaAire), String(HumedadAire)); }

// comprobar recepción datos desde bluetooth if (Serial3.available () > 10) { cabecera = Serial3.parseInt (); cuerpo1 = Serial3.parseInt (); cuerpo2 = Serial3.parseInt (); cuerpo3 = Serial3.parseInt (); fin = Serial3.parseInt (); String basura = Serial3.readString(); // vacía el buffer de lectura }

if (cabecera == fin && cabecera == 20) { // si cabecera=fin=20 actualiza hora setTime(cuerpo1, cuerpo2, cuerpo3, dia, mes, ano); cabecera = 0; // borra cabecera y fin para no repetir fin = 0; }

// Envía datos por Bluetooth Serial3.print("<"); Serial3.print(pH); Serial3.print(", "); Serial3.print(EC); Serial3.print(", "); Serial3.print(TemperaturaAgua); Serial3.print(", "); Serial3.print(HumedadAire); Serial3.print(", "); Serial3.print(TemperaturaAire); Serial3.print(", "); Serial3.print(hour()); // envia hora actual Serial3.print(", "); Serial3.print(minute()); // envia minuto actual Serial3.print(", "); Serial3.print(second()); // envia segundo actual Serial3.print(", "); Serial3.print(BombaAgua); //envia estado BombaAgua Serial3.print(", "); Serial3.print(Luz); // envia estado Luz Serial3.print(">");

// control bomba de agua minutos cada hora if (minute() < MinutosBomba && EC > EcMuyBajo) { // EC muy bajo implica riego de falta de agua digitalWrite (PinBombaAgua, LOW); // LOW = Bomba on BombaAgua = 1; } else { digitalWrite (PinBombaAgua, HIGH); // HIGH = Bomba off BombaAgua = 0; }

// control luz encendida de Amanece a Anochece if (hour() > Amanece && hour() < Anochece) { digitalWrite (PinLuz, LOW); // LOW = Luz on Luz = 1; } else { digitalWrite (PinLuz, HIGH); // HIGH = Luz off Luz = 0; }

// refresca LCD cada segundo if (viejoSegundo != second()) { nuevoSegundo = true; viejoSegundo = second(); } else { nuevoSegundo = false; }

if (nuevoSegundo == true) { visualiza (); }

}

//------------------------------------------------------------------- // Following function setup the esp8266, put it in station mode and // connect to wifi access point. //------------------------------------------------------------------ void setupEsp8266() { if (DEBUG) { //Serial3.println("Reseting esp8266"); } Serial.flush(); Serial.println(F("AT+RST")); delay(7000);

if (Serial.find("OK")) { if (DEBUG) { Serial3.println("Found OK"); Serial3.println("Changing espmode"); } Serial.flush(); changingMode(); delay(5000); Serial.flush(); connectToWiFi(); } else { if (DEBUG) { Serial3.println("OK not found"); } } }

//------------------------------------------------------------------- // Following function sets esp8266 to station mode //------------------------------------------------------------------- bool changingMode() { Serial.println(F("AT+CWMODE=1")); if (Serial.find("OK")) { if (DEBUG) { Serial3.println("Mode changed"); } return true; } else if (Serial.find("NO CHANGE")) { if (DEBUG) { Serial3.println("Already in mode 1"); } return true; } else { if (DEBUG) { Serial3.println("Error while changing mode"); } return false; } }

//------------------------------------------------------------------- // Following function connects esp8266 to wifi access point //------------------------------------------------------------------- bool connectToWiFi() { if (DEBUG) { Serial3.println("inside connectToWiFi"); } String cmd = F("AT+CWJAP=""); cmd += network; cmd += F("",""); cmd += password; cmd += F("""); Serial.println(cmd); delay(15000);

if (Serial.find("OK")) { if (DEBUG) { Serial3.println("Connected to Access Point"); } return true; } else { if (DEBUG) { Serial3.println("Could not connect to Access Point"); } return false; } }

//------------------------------------------------------------------- // Following function sends sensor data to thingspeak.com //------------------------------------------------------------------- void updateTemp(String valor1, String valor2, String valor3, String valor4, String valor5) { String cmd = "AT+CIPSTART="TCP",""; cmd += IP; cmd += "",80"; Serial.println(cmd); if (DEBUG) { Serial3.println (cmd); }

delay(5000); if (Serial.find("Error")) { if (DEBUG) { Serial3.println("ERROR while SENDING"); } return; } cmd = GET + "&field1=" + valor1 + "&field2=" + valor2 + "&field3=" + valor3 + "&field4=" + valor4 + "&field5=" + valor5 + "\r\n"; if (DEBUG) { Serial3.println (valor1); Serial3.println (valor2); Serial3.println (valor3); Serial3.println (valor4); Serial3.println (valor5); Serial3.println (cmd); }

Serial.print("AT+CIPSEND="); Serial.println(cmd.length()); delay(15000); if (Serial.find(">")) { Serial.print(cmd); if (DEBUG) { Serial3.println("Data sent"); } } else { Serial.println("AT+CIPCLOSE"); if (DEBUG) { Serial3.println("Connection closed"); } } }

// ------------------------------------- // Muetra datos LCD // ------------------------------------- void visualiza() {

// visualiza fecha y hora if (second() % 30 >= 0 && second() % 30 < 7) { borrarLCD(); lcd.setCursor(0, 0); // posiciona cursor linea 0, columna 0 lcd.print("HORA ACTUAL");

lcd.setCursor(0, 1); lcd.print(format(hour())); lcd.print(":"); lcd.print(format(minute())); lcd.print(":"); lcd.print(format(second())); }

// visualiza datos AGUA if (second() % 30 >= 7 && second() % 30 < 14) { borrarLCD(); lcd.setCursor(0, 0); // posiciona cursor linea 0, columna 0 lcd.print("AGUA: "); lcd.print((int)EC); lcd.print(" uS/cm");

lcd.setCursor(0, 1); lcd.print("pH="); lcd.print(pH); lcd.print("; "); lcd.print(TemperaturaAgua); lcd.print(" C");

}

// visualiza datos AIRE if (second() % 30 >= 14 && second() % 30 < 21) { borrarLCD(); lcd.setCursor(0, 0); // posiciona cursor linea 0, columna 0 lcd.print(" AIRE ");

lcd.setCursor(0, 1); // posiciona cursor linea 0, columna lcd.print((int)TemperaturaAire); lcd.print(" C ; "); lcd.print((int)HumedadAire); lcd.print("%");

}

// visualiza ALARMAS if (second() % 30 >= 21 && second() % 30 < 30) { borrarLCD(); lcd.setCursor(0, 0); // posiciona cursor linea 0, columna 0 lcd.print(" ALARMAS ");

lcd.setCursor(0, 1); // posiciona cursor linea 0, columna if (AlarmaPH == 0 && AlarmaTempAgua == 0 && AlarmaEC == 0) { // verifica si hay alarmas lcd.print("NO HAY ALARMAS"); } else { if (AlarmaPH > 0) { lcd.print("pH;"); } if (AlarmaTempAgua > 0) { lcd.print("Temp Agua;"); } if (AlarmaEC > 0 && AlarmaEC < 3 ) { lcd.print("EC"); } if (AlarmaEC == 3 ) { lcd.print("No Agua"); } } } }

void borrarLCD() { lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 1); lcd.print(" "); }

String format(int info) { String infoEditada; if (info < 10) { infoEditada += 0; } infoEditada += info;

return infoEditada; }

?
?

第 14 步:數(shù)據(jù)可視化

我們集成了一個 LCD 顯示屏,以便查看所有傳感器數(shù)據(jù),而無需無線連接到水培栽培。

第 15 步:安卓應用程序

我們使用 App Inventor 創(chuàng)建了一個特定的應用程序。在這里您可以找到源文件。

應用程序

  • 接收和查看來自傳感器的數(shù)據(jù)。
  • 發(fā)送手機的當前時間以更新 Arduino 的時間。
?
?

第 16 步:網絡服務器

我們使用 ESP8266 模塊將系統(tǒng)連接到 Thingspeak(提供數(shù)據(jù)存儲和分析的服務)。

第17步:水培工作!

最后!我們在學校創(chuàng)建了一個可工作的模塊化水培系統(tǒng)!:)

?

?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費