- 2025-02-15
-
回复了主题帖:
自动浇花系统制作第一帖
Jacktang 发表于 2025-2-15 10:09
执行部分建议使用常闭型电磁阀。如12V/24V,响应时间≤0.5秒,可减少开关延迟对虹吸水流量的影响
目前选用的的确是12V的电磁阀,使用的是净水器2分的电磁阀。不知道是否选用的管子太细。
另外开关延迟如何对虹吸水流产生影响,不明白。
-
回复了主题帖:
【新年点灯】ghost
不错不错!!!
-
发表了主题帖:
自动浇花系统制作第一帖
本帖最后由 serialworld 于 2025-2-15 22:07 编辑
一直想做一个自动浇花的系统,但是迟迟没有开始。最近准备开始制作。
目标:仿照图书《爱上Arduino》的自动灌溉系统的使用国内可以购买的物料进行制作,完成度在80%左右,也会改动原有的系统。
初步的构想的功能目标:
1.室内使用,自动定时浇花,支持最大5盆花,不使用水泵,使用虹吸方式供水,交流供电
2.尽量成为有点实用的东西,不能成为又增加的没有的东西
初步计划使用的物料可能包括:
1.时钟模块
2.Arduino UN开发板或其他单片机开发板
3.继电器模块
4.电磁阀 12V 2分
5.水管 2分外径约6.5mm,内径4.1mm,水桶等
6.电源 12V 1.5A
7.外盒 160X160X90
8.固定模块用底板150x150x2
9.M2,M3 等螺丝
10.开关按键
11.Arduino原型开发板
12.导线排针
计划时间:1个月
目前已经准备的物料如下图,目前还
缺少时钟模块和模块固定底板。陆续采购中...
目前制作还未开始,还请大家多提意见!!!
- 2025-02-04
-
回复了主题帖:
ESP32 S2和DTH11制作的温湿度计
lugl4313820 发表于 2025-2-3 07:52
这个是非常好的设计呀,背板是万能板吗?如果配了电池,可以跑多长时间?
背板不是万用板,是打样的pcb板,本来是其他用途的,这次拿来用了。
估计配电池是不行的,电流测量了一下大概60mA,太大了。还不知道如何降低电流。
- 2025-02-03
-
发表了主题帖:
ESP32 S2和DTH11制作的温湿度计
本帖最后由 serialworld 于 2025-2-3 07:42 编辑
使用Arduino ESP32 S2和DTH11制作的温湿度计
#define LED_PIN 15
#include <U8x8lib.h>
#include <Ticker.h>
#include <Adafruit_NeoPixel.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#define DHTTYPE DHT11 // DHT 11
#define DHTPIN 33
DHT_Unified dht(DHTPIN, DHTTYPE);
#define PIN_WS2812B 18 // The ESP32 pin GPIO16 connected to WS2812B
#define NUM_PIXELS 8 // The number of LEDs (pixels) on WS2812B LED strip
#define PIN_DHT11 33
Adafruit_NeoPixel ws2812b(NUM_PIXELS, PIN_WS2812B, NEO_GRB + NEO_KHZ800);
U8X8_SH1106_128X64_NONAME_SW_I2C u8x8(11, 12, /* reset=*/U8X8_PIN_NONE);
Ticker ticker1;
Ticker ticker2;
char temp2[20];
char hum2[20];
void led_show() {
ws2812b.clear();
for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // for each pixel
ws2812b.setPixelColor(pixel, ws2812b.Color(random(1, 15), random(1, 15), random(1, 15))); // it only takes effect if pixels.show() is called
delay(50);
ws2812b.show();
}
// delay(10);
// ws2812b.clear(); // set all pixel colors to 'off'. It only takes effect if pixels.show() is called
// ws2812b.show(); // update to the WS2812B Led Strip
// delay(10); // 1 second off time
}
void led_show2() {
ws2812b.clear();
for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // for each pixel
ws2812b.setPixelColor(pixel, ws2812b.Color(random(1, 5), random(1, 5), random(1, 5))); // it only takes effect if pixels.show() is called
}
ws2812b.show(); // update to the WS2812B Led Strip
delay(100); // 1 second off time
}
void led_show3() {
ws2812b.clear();
static int count = 0;
int index;
int position;
for (position = 0; position < NUM_PIXELS; position++) {
ws2812b.clear();
for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // for each pixel
// if (position == pixel or (position+count)%NUM_PIXELS == pixel)
if (position == pixel or (position + count) % NUM_PIXELS == pixel)
ws2812b.setPixelColor(pixel, ws2812b.Color(random(1, 20), random(1, 20), random(1, 20)));
else
ws2812b.setPixelColor(pixel, ws2812b.Color(0, 0, 0));
}
ws2812b.show();
delay(100);
}
count++;
}
void callback1() {
digitalWrite(LED_PIN, HIGH);
led_show3();
}
void callback2() {
digitalWrite(LED_PIN, LOW);
led_show3();
}
void setup() {
// put your setup code here, to run once:
sensor_t sensor;
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
u8x8.begin();
u8x8.setPowerSave(0);
ticker1.attach(5, callback1);
ticker2.attach(3, callback2);
dht.begin();
ws2812b.begin(); // initialize WS2812B strip object (REQUIRED)
}
void loop() {
// put your main code here, to run repeatedly:
// digitalWrite(LED_PIN, HIGH);
// delay(1000);
// digitalWrite(LED_PIN, LOW);
// delay(1000);
sensors_event_t event;
dht.temperature().getEvent(&event);
Serial.print(F("Temperature: "));
float temp1 = event.temperature;
Serial.print(temp1);
Serial.println(F("°C"));
dht.humidity().getEvent(&event);
Serial.print(F("Humidity: "));
float hum1 = event.relative_humidity;
Serial.print(hum1);
Serial.println(F("%"));
u8x8.refreshDisplay();
// delay(100);
// u8x8.clear();
// u8x8.setFont(u8x8_font_px437wyse700b_2x2_r);
u8x8.setFont(u8x8_font_courB18_2x3_r);
// u8x8.setFont(u8x8_font_chroma48medium8_r);
// u8x8.refreshDisplay(); // only required for SSD1606/7
dtostrf(temp1, 2, 1, temp2);
dtostrf(hum1, 2, 1, hum2);
// u8x8.setFont(u8x8_font_chroma48medium8_r);
u8x8.drawString(0, 1, "Tem:");
u8x8.drawString(8, 1, temp2);
u8x8.setInverseFont(0);
u8x8.drawString(0, 5, "Hum:");
u8x8.drawString(8, 5, hum2);
u8x8.setInverseFont(0);
//u8x8.drawString(0,8,"Line 8");
//u8x8.drawString(0,9,"Line 9");
u8x8.refreshDisplay(); // only required for SSD1606/7
// Serial.print("Hello world!\n");
// Serial.println(esp_random());
// Serial.println(random(1, 15));
Serial.print(touchRead(T1));
Serial.print("\t");
Serial.print(touchRead(T2));
Serial.print("\t");
Serial.print(touchRead(T3));
Serial.print("\t");
Serial.print(touchRead(T4));
Serial.print("\t");
Serial.println(touchRead(T5));
}
- 2025-02-01
-
回复了主题帖:
【新年花灯】STM32 F030 点亮WS2812流水灯
视频来了!!原来是操作的不对。[localvideo]bdeb9260de4d6ede6f9c7b642bc5d02f[/localvideo]
- 2025-01-28
-
回复了主题帖:
【新年花灯】STM32 F030 点亮WS2812流水灯
站内的视频实在是上传不了。来个连接吧。【STM32 F030 点亮WS2818 LED】 https://www.bilibili.com/video/BV1kgFxewEK2/?share_source=copy_web&vd_source=f8a5898a4f3328d68b9d500f3b20469c
-
回复了主题帖:
【新年花灯】STM32 F030 点亮WS2812流水灯
okhxyyo 发表于 2025-1-28 09:47
记得补上点灯的视频哦,单纯照片看不出来效果哦
视频加不上是什么原因?
- 2025-01-27
-
发表了主题帖:
【新年花灯】STM32 F030 点亮WS2812流水灯
本帖最后由 serialworld 于 2025-1-28 11:13 编辑
TM32F030F4P6开发板+8位 WS2812 5050 RGB LED 内置全彩驱动彩灯开发板 WS2812B 256色
- 2024-03-14
-
回复了主题帖:
【STM32F411Nucleo测评】驱动 1.3 寸 LCD 屏幕
谢谢分享!直接画好扩展板了。