許多高樓窗台很多鴿子大便,造成我們的困擾,像
觀感不佳
很難清理
帶有疾病
於是我們想用市面常見的防鴿網加上電擊,來驅趕鴿子。
電池1.5V
背板
Arduino.
背蓋
掀蓋
單主機MK2
單主機MK3
電池蓋
主機背板
鑽孔立柱
sd卡支架
pp電擊部件
pp萬用板支架
繼電支架
聲波支架
SD caad
SP- M3
SP- M6
SP- 短釘
HCSR04
萬用板
91電池
電池盒
電蚊拍電路
組合圖
直網
繼電器
1.加裝超音波感測,有物體才通電。或換成鋰電池。2.架高下面有漏水孔。3.主要是跟網子有關,網子選定適當大小就可以適應多種地形。
/////////////////////////////////////套入函式庫///////////////////////////////////////////
#include
//////////////////////////////////WIFI相關設定////////////////////////////////////////
const char* ssid = "Wi-Fi Name";
const char* password = "Password";
WiFiServer server(80);
////////////////////////////////////宣告超音波變數///////////////////////////////////
double dura;
double dist;
double disori;
double times=0;
String webstring;
///////////////////////////////////宣告腳位/////////////////////////////////////////////
int trig = 13;
int echo = 15;
///////////////////////////////////測定函式//////////////////////////////////////////////
double measure(){
digitalWrite(7,HIGH);
delayMicroseconds(5);
digitalWrite(7,LOW);
dura=pulseIn(8,HIGH);
disori=((340*100)*dura*0.000001/2);
dist=sqrt((disori*disori)-1.3*1.3);
return dist;
}
////////////////////////////////////////////////////設定///////////////////////////////////////////
void setup()
{
Serial.begin(115200);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
Serial.print("Connecting to the Newtork");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println(“””);
Serial.println("WiFi connected");
server.begin();
Serial.println(“Sever started”) ;
Serial.println(WiFi.localIP());
}
//////////////////////////////////////////////程式執行/////////////////////////////////////////////////////////
void loop()
{
if ( measure()>0){
Serial.println("Dove is Cominig");
times++;
}
WiFiClient client = server.available();
if (!client) {
return;
{
Serial.println(“New client”);
while(client.available()){
delay(1);
}
String req=client.readStringUntil(‘\r’);
Serial.println(req);
client.flush();
////////////////////////////////////HTML/////////////////////////////////////////////
client.println("HTTP/1.1 200 OK"); //
client.println("Content-Type: text/html");
client.println("");
client.println("");
client.println("");
client.print(" CONTROL LED: ");
client.println("");
client.println("");
client.println(" ");
client.println("");
client.println(" ");
client.println("");
client.println(" ");
client.println(" 防飛禽駐留電網");
client.println("
飛禽停駐距離
");
client.println("
");
client.println(" 飛禽停駐次數
");
client.println(" 0
");
client.println("通電按鈕
");
client.println("");
client.println("");
client.println(" ");
client.println("");
delay(1);
Serial.println("Client disonnected");
Serial.println("");
}
Automatically animate matching elements across slides with Auto-Animate.
Presentations look great on touch devices, like mobile phones and tablets. Simply swipe through your slides.
You can select from different transitions, like:
None -
Fade -
Slide -
Convex -
Concave -
Zoom
Hit the next arrow...
... to step through ...
... a fragmented slide.
There's different types of fragments, like:
grow
shrink
fade-out
fade-right, up, down, left
fade-in-then-out
fade-in-then-semi-out
Highlight red blue green
reveal.js comes with a few themes built in:
Black (default) -
White -
League -
Sky -
Beige -
Simple
Serif -
Blood -
Night -
Moon -
Solarized
Set data-background="#dddddd"
on a slide to change the background color. All CSS color formats are supported.
<section data-background="image.png">
<section data-background="image.png" data-background-repeat="repeat" data-background-size="100px">
<section data-background-video="video.mp4,video.webm">
Different background transitions are available via the backgroundTransition option. This one's called "zoom".
Reveal.configure({ backgroundTransition: 'zoom' })
You can override background transitions per-slide.
<section data-background-transition="zoom">
Since reveal.js runs on the web, you can easily embed other web content. Try interacting with the page in the background.
Item | Value | Quantity |
---|---|---|
Apples | $1 | 7 |
Lemonade | $2 | 18 |
Bread | $3 | 2 |
These guys come in two forms, inline: The nice thing about standards is that there are so many to choose from
and block:
“For years there has been a theory that millions of monkeys typing at random on millions of typewriters would reproduce the entire works of Shakespeare. The Internet has proven this theory to be untrue.”
You can link between slides internally, like this.
There's a speaker view. It includes a timer, preview of the upcoming slide as well as your speaker notes.
Press the S key to try it out.
Presentations can be exported to PDF, here's an example:
Set data-state="something"
on a slide and "something"
will be added as a class to the document element when the slide is open. This lets you
apply broader style changes, like switching the page background.
Additionally custom events can be triggered on a per slide basis by binding to the data-state
name.
Reveal.on( 'customevent', function() {
console.log( '"customevent" has fired' );
} );
Press B or . on your keyboard to pause the presentation. This is helpful when you're on stage and want to take distracting slides off the screen.