Talaan ng mga Nilalaman:
- Hakbang 1: Mga Bahagi
- Hakbang 2: Mga koneksyon
- Hakbang 3: CODING
- Hakbang 4: OUTPUT
- Hakbang 5: Grap
- Hakbang 6: Narito ang isang Video ng Breif Explanation
Video: Motion Detector Gamit ang Thingsai.io Iot Cloud Platform: 6 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Sa tutorial na ito ipapaliwanag ko ang tungkol sa pagtuklas ng paggalaw sa pamamagitan ng paggamit ng isang sensor ng PIR at Esp32 kasama ang isang IOT cloud platform na Thingai.io
Hakbang 1: Mga Bahagi
HARDWARE KOMPONENSA;
1.esp32 Development Board
2. Sensor ng Pir
3. Jumper Wires
SOFTWARE:
1. Arduino IDE
2. Thingsai.io account
Hakbang 2: Mga koneksyon
Ang mga koneksyon ay tahimik na simple.
PIR PINS ------------ ESP32 PINS
VCC ----------------- 3V3 sa esp32
GND ----------------- GND sa esp32
OUT ------------------- D22 sa esp32
Hakbang 3: CODING
I-paste ang code na ito sa iyong Arduino IDE na may ilang pag-update, ang iyong Motion sensor ay magbibigay ng output nang walang kapintasan.
# isama
# isama
# isama
int count = 0, i, m, j, k;
int t, t1, t2, t3;
int pin = 22;
// ///. // ///.
const char * host = "api.thingsai.io"; // OR host = devapi2.thethingscloud.com
const char * post_url = "/ aparato / aparatoData"; // OR / api / v2 / thingscloud2 / _table / data_ac
const char * time_server = "baas.thethingscloud.com"; // ito ay upang i-convert ang timestamp
const int httpPort = 80;
const int httpsPort = 443;
const char * server = "api.thingsai.io"; // Server URL
timestamp ng char [10];
WiFiMulti WiFiMulti;
// Gumamit ng klase ng WiFiClient upang lumikha ng mga koneksyon sa TCP
Client ng WiFiClient;
// ///. // ///.
int GiveMeTimestamp ()
{
unsigned long timeout = millis ();
// client ng WiFiClient;
habang (client.available () == 0)
{
kung (millis () - timeout> 50000)
{
client.stop ();
ibalik ang 0;
}
}
habang (client.available ())
{
String line = client.readStringUntil ('\ r'); // indexOf () ay isang funtion upang maghanap para sa smthng, nagbabalik ito ng -1 kung hindi nahanap
int pos = line.indexOf ("\" timestamp / ""); // search for "\" timestamp / "" mula sa simula ng pagtanggap nakuha at kopyahin ang lahat ng data pagkatapos nito, ito ang magiging timestamp mo
kung (pos> = 0)
{
int j = 0;
para sa (j = 0; j <10; j ++)
{
timestamp [j] = linya [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
walang bisa ang pag-setup ()
{
Serial.begin (115200);
antala (10);
pinMode (pin, INPUT);
// Nagsisimula kami sa pamamagitan ng pagkonekta sa isang WiFi network
WiFiMulti.addAP ("wifi_name", "Wifi_password");
Serial.println ();
Serial.println ();
Serial.print ("Maghintay para sa WiFi …");
habang (WiFiMulti.run ()! = WL_CONNected) {
Serial.print (".");
pagkaantala (500);
}
Serial.println ("");
Serial.println ("Konektado sa WiFi");
Serial.println ("IP address:");
Serial.println (WiFi.localIP ());
pagkaantala (500);
}
walang bisa loop ()
{
int analogValue = analogRead (outputpin);
{
// ///. // ///.
{
bool isDetected = digitalRead (pin);
kung (ay Natukoy) {
Serial.println ("Nakita ang presensya");
}
pagkaantala (500);
}
Serial.print ("pagkonekta sa");
Serial.println (host); // tinukoy nang paitaas: - host = devapi2.thethingscloud.com o 139.59.26.117
// ///. // ///.
Serial.println ("sa loob makakuha ng timestamp / n");
kung (! client.connect (time_server, {
bumalik; // * - * - * - * - * - * - * - * - * - *
}
client.println ("GET / api / timestamp HTTP / 1.1"); // Ano ang ginagawa ng bahaging ito, hindi ko nakuha
client.println ("Host: baas.thethingscloud.com");
client.println ("Cache-Control: no-cache");
client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // tatawagan nito ang pagpapaandar na makakakuha ng tugon ng timestamp mula sa server
Serial.println ("natanggap ang timestamp");
Serial.println (timestamp);
Serial.println ("sa loob ng ThingsCloudPost");
String PostValue = "{" device_id / ": 61121695839, \" slave_id / ": 2";
PostValue = PostValue + ", \" dts / ":" + timestamp;
PostValue = PostValue + ", \" data / ": {" PIR / ":" + pin + "}" + "}";
Serial.println (PostValue);
/ * Lumikha ng isang halimbawa ng WiFiClientSecure * /
Client ng WiFiClientSecure;
Serial.println ("Kumonekta sa server sa pamamagitan ng port 443");
kung (! client.connect (server, 443)) {
Serial.println ("Nabigo ang koneksyon!");
} iba pa {
Serial.println ("Nakakonekta sa server!");
/ * lumikha ng kahilingan sa HTTP * /
client.println ("POST / aparato / aparatoData HTTP / 1.1");
client.println ("Host: api.thingsai.io");
//client.println("Connection: close ");
client.println ("Uri ng Nilalaman: application / json");
client.println ("cache-control: no-cache");
client.println ( Awtorisasyon: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNT6X79f9)
client.print ("Haba ng Nilalaman:");
client.println (PostValue.length ());
client.println ();
client.println (PostValue);
// ///. server // ///.
Serial.print ("Naghihintay para sa tugon");
habang (! client.available ()) {
antala (50); //
Serial.print (".");
}
/ * kung ang data ay magagamit pagkatapos ay tumanggap at mag-print sa Terminal * /
habang (client.available ()) {
char c = client.read ();
Serial.write (c);
}
/ * kung naka-disconnect ang server, itigil ang client * /
kung (! client.connected ()) {
Serial.println ();
Serial.println ("Nakakonekta ang server"); javascript:;
client.stop ();
}
}
Serial.println ("// ///. /// ");
pagkaantala (3000);
}
}
Hakbang 4: OUTPUT
Ito ang representasyon ng grap ng bar ng mga halagang binasa mula sa sensor sa bagay, platform ng cloud,
Hakbang 5: Grap
Ito ang grapikong representasyon ng mga halaga mula sa sensor. Mula sa nasa itaas na grap maaari naming pag-aralan ang aplikasyon ng sensor. Salamat
Inirerekumendang:
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: 4 na Hakbang
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: " Push-It " Interactive na laro gamit ang isang hubad na Arduino board, walang mga panlabas na bahagi o mga kable na kinakailangan (gumagamit ng isang capacitive 'touch' input). Ipinapakita sa itaas, ipinapakita ang pagtakbo nito sa dalawang magkakaibang board. Push-Mayroon itong dalawang layunin. Upang mabilis na maipakita / v
Pagsubaybay sa Temperatura at Humidity ng DHT Gamit ang ESP8266 at ang AskSensors IoT Platform: 8 Hakbang
Pagsubaybay sa Temperatura at Humidity ng DHT Gamit ang ESP8266 at ang AskSensors IoT Platform: Sa isang nakaraang itinuro, nagpakita ako ng isang sunud-sunod na gabay upang makapagsimula sa ESP8266 nodeMCU at ang AskSensors IoT platform. Sa tutorial na ito, kumokonekta ako sa isang sensor ng DHT11 sa node MCU. Ang DHT11 ay isang karaniwang ginagamit na Temperatura at humidi
Internet Clock: Ipakita ang Petsa at Oras Gamit ang isang OLED Gamit ang ESP8266 NodeMCU Sa NTP Protocol: 6 na Hakbang
Internet Clock: Display Date and Time With an OLED Gamit ang ESP8266 NodeMCU With NTP Protocol: Kumusta mga tao sa mga itinuturo na ito na magtatayo kami ng isang orasan sa internet na magkakaroon ng oras mula sa internet kaya't ang proyektong ito ay hindi mangangailangan ng anumang RTC upang tumakbo, kakailanganin lamang nito ang isang nagtatrabaho koneksyon sa internet At para sa proyektong ito kailangan mo ng isang esp8266 na magkakaroon ng
Motion Detector Gamit ang NodeMCU: 5 Hakbang
Motion Detector Paggamit ng NodeMCU: Sa proyektong ito, sa pamamagitan lamang ng paggamit ng isang sensor ng paggalaw maaari mong makita ang pagkakaroon ng sinumang tao o hayop. At sa pamamagitan ng platform na tinatawag na bagay ay maaari mong subaybayan ang petsa at oras kung saan nakita ang presensya
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c