ዝርዝር ሁኔታ:
ቪዲዮ: Thingsai.io Iot Cloud Platform ን በመጠቀም የእንቅስቃሴ ዳሳሽ 6 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:31
በዚህ መማሪያ ውስጥ የ PIR ዳሳሽ እና Esp32 ን ከ IOT ደመና መድረክ Thingai.io ጋር በመጠቀም ስለ እንቅስቃሴ ማወቂያን እገልጻለሁ።
ደረጃ 1: አካላት
የሃርድዌር ክፍሎች;
1.esp32 ልማት ቦርድ
2. ፒአር ዳሳሽ
3. ዝላይ ሽቦዎች
ሶፍትዌር:
1. አርዱዲኖ አይዲኢ
2. Thingsai.io ሂሳብ
ደረጃ 2 - ግንኙነቶች
ግንኙነቶቹ ጸጥ ያሉ ናቸው።
ፒር ፒን ------------ ESP32 ፒኖች
ቪሲሲ ------------------- 3V3 በ esp32 ላይ
GND ------------------ GND በ esp32 ላይ
ውጣ ------------------- D22 በ esp32 ላይ
ደረጃ 3: ኮዲንግ
በአንዳንድ ዝመናዎች ይህንን ኮድ ወደ Arduino IDE ውስጥ ይለጥፉ ፣ የእርስዎ የእንቅስቃሴ ዳሳሽ ውጤቱን ያለምንም እንከን ይሰጣል።
#ያካትቱ
#ያካትቱ
#ያካትቱ
int count = 0, i, m, j, k;
int t, t1, t2, t3;
int pin = 22;
/////////////////////////// ////////////////////////////
const char* አስተናጋጅ = "api.thingsai.io"; // ወይም አስተናጋጅ = devapi2.thethingscloud.com
const char* post_url = "/መሣሪያዎች/deviceData"; // OR/api/v2/thingscloud2/_table/data_ac
const char* time_server = "baas.thethingscloud.com"; // ይህ የጊዜ ማህተምን ለመለወጥ ነው
const int httpPort = 80;
const int httpsPort = 443;
const char* አገልጋይ = "api.thingsai.io"; // የአገልጋይ ዩአርኤል
የቻር የጊዜ ማህተም [10];
WiFiMulti WiFiMulti;
// የ TCP ግንኙነቶችን ለመፍጠር የ WiFiClient ክፍልን ይጠቀሙ
የ WiFi ደንበኛ ደንበኛ;
///////////////////////////// ///////////////////////////////
int GiveMeTimestamp ()
{
ያልተፈረመ ረጅም ጊዜ ማብቂያ = ሚሊስ ();
// የ WiFi ደንበኛ ደንበኛ;
ሳለ (ደንበኛ. ይገኛል () == 0)
{
ከሆነ (ሚሊስ () - የእረፍት ጊዜ> 50000)
{
client.stop ();
መመለስ 0;
}
}
ሳለ (ደንበኛ. ይገኛል) ()
{
ሕብረቁምፊ መስመር = ደንበኛ ።readStringUntil ('\ r'); // indexOf () smthng ን ለመፈለግ መዝናኛ ነው ፣ ካልተገኘ -1 ይመለሳል
int pos = line.indexOf ("\" timestamp / ""); // ከምላሹ መጀመሪያ ጀምሮ "\" የጊዜ ማህተም / "" ይፈልጉ እና ከዚያ በኋላ ሁሉንም ውሂብ ይቅዱ ፣ የእርስዎ የጊዜ ማህተም ይሆናል
ከሆነ (pos> = 0)
{
int j = 0;
ለ (j = 0; j <10; j ++)
{
የጊዜ ማህተም [j] = መስመር [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
ባዶነት ማዋቀር ()
{
Serial.begin (115200);
መዘግየት (10);
pinMode (ፒን ፣ ግቤት);
// ከ WiFi አውታረ መረብ ጋር በመገናኘት እንጀምራለን
WiFiMulti.addAP ("wifi_name" ፣ "Wifi_password");
Serial.println ();
Serial.println ();
Serial.print ("ለ WiFi ይጠብቁ …");
ሳለ (WiFiMulti.run ()! = WL_CONNECTED) {
Serial.print (".");
መዘግየት (500);
}
Serial.println ("");
Serial.println ("WiFi ተገናኝቷል");
Serial.println ("IP አድራሻ:");
Serial.println (WiFi.localIP ());
መዘግየት (500);
}
ባዶነት loop ()
{
int analogValue = analogRead (outputpin);
{
/////////////////////// ///////////////////////
{
bool isDetected = digitalRead (ፒን);
ከሆነ (isDetected) {
Serial.println ("መገኘት ተገኝቷል");
}
መዘግየት (500);
}
Serial.print ("ወደ ማገናኘት");
Serial.println (አስተናጋጅ); // የተገለበጠ ተገልብጦ- አስተናጋጅ = devapi2.thethingscloud.com ወይም 139.59.26.117
///////////////////////////// /////////////////
Serial.println ("ውስጡን የጊዜ ማህተም / n" ያግኙ);
ከሆነ (! client.connect (time_server ፣
{
መመለስ; //*-*-*-*-*-*-*-*-*-*
}
client.println ("GET/api/timestamp HTTP/1.1"); // ይህ ክፍል ምን እያደረገ ነው ፣ አላገኘሁም
client.println ("አስተናጋጅ: baas.thethingscloud.com");
client.println ("መሸጎጫ-መቆጣጠሪያ: ምንም መሸጎጫ");
client.println ("ፖስትማን-ማስመሰያ ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // እሱ ከአገልጋዩ የጊዜ ማህተም ምላሽ የሚያገኘውን ተግባር ይደውላል
Serial.println ("የጊዜ ማህተም የተቀበለ");
Serial.println (የጊዜ ማህተም);
Serial.println ("በ ThingsCloudPost ውስጥ");
ሕብረቁምፊ PostValue = "{" device_id / ": 61121695839, \" slave_id / ": 2";
PostValue = PostValue + ", \" dts / ":" + timestamp;
PostValue = PostValue +", \" data / ": {" PIR / ":" +pin +"}" +"}";
Serial.println (PostValue);
/ * የ WiFiClientSecure ምሳሌን ይፍጠሩ */
የ WiFiClientSecure ደንበኛ;
Serial.println ("ወደብ 443 በኩል ከአገልጋይ ጋር ይገናኙ");
ከሆነ (! client.connect (አገልጋይ ፣ 443)) {
Serial.println ("ግንኙነቱ አልተሳካም!");
} ሌላ {
Serial.println ("ከአገልጋይ ጋር ተገናኝቷል!");
/ * የኤችቲቲፒ ጥያቄን ይፍጠሩ */
client.println ( POST/devices/deviceData
client.println ("አስተናጋጅ: api.thingsai.io");
//client.println ("ግንኙነት: ዝጋ");
client.println ("የይዘት-ዓይነት: ትግበራ/json");
client.println ("መሸጎጫ-ቁጥጥር: ምንም መሸጎጫ");
ደንበኛ።
client.print ("ይዘት-ርዝመት:");
client.println (PostValue.length ());
client.println ();
client.println (PostValue);
///////////////////////// አገልጋይ ///////////////////
Serial.print ("ምላሽ በመጠባበቅ ላይ");
ሳለ (! ደንበኛ. ይገኛል ()) {
መዘግየት (50); //
Serial.print (".");
}
/ * ውሂብ የሚገኝ ከሆነ ይቀበሉ እና ወደ ተርሚናል */ያትሙ/
ሳለ (ደንበኛ. ይገኛል ()) {
char c = client.read ();
Serial.write (ሐ);
}
/ * አገልጋዩ ከተቋረጠ ደንበኛውን ያቁሙ */
ከሆነ (! client.connected ()) {
Serial.println ();
Serial.println ("አገልጋይ ተቋርጧል"); javascript;;
client.stop ();
}
}
Serial.println ("//////////////////////// መጨረሻ ///// ");
መዘግየት (3000);
}
}
ደረጃ 4: ውጽዓት
በንጥሉ ፣ በአዮ ደመና መድረክ ውስጥ ከአነፍናፊው የተነበቡ እሴቶች አሞሌ ግራፍ ውክልና ፣
ደረጃ 5 ግራፍ
ይህ ከአነፍናፊው የእሴቶቹ ግራፊክ ውክልና ነው። ከላይ ካለው ግራፍ የአነፍናፊውን ትግበራ መተንተን እንችላለን። አመሰግናለሁ
የሚመከር:
በይነተገናኝ ዳሳሽ ፣ ኤስፒኤስ -30 ፣ የ I2C ሁነታን በመጠቀም ከአርዱዲኖ ዱሚላኖቭ ጋር ልዩ የሆነ ዳሳሽ ይለያዩ -5 ደረጃዎች
በይነገጽ ዳሳሽ ፣ SPS-30 ፣ I2C ሁነታን በመጠቀም ከአርዱዲኖ ዱሚላኖቭ ጋር ልዩ ጉዳይ ዳሳሽ-እኔ የ SPS30 ዳሳሾችን በማገናኘት ላይ ሳለሁ ፣ አብዛኛዎቹ ምንጮች ለ Raspberry Pi ግን ለአርዱዲኖ ያን ያህል እንዳልሆኑ ተገነዘብኩ። አነፍናፊው ከአርዱዲኖ ጋር እንዲሠራ ለማድረግ ትንሽ ጊዜ አጠፋለሁ እናም እሱ እንዲችል የእኔን ተሞክሮ እዚህ ለመለጠፍ ወሰንኩ
DIY: በጣሪያ ላይ የተገጠመ አነስተኛ ዳሳሽ ሳጥን በትኩረት የእንቅስቃሴ ዳሳሽ 4 ደረጃዎች
DIY: ጣሪያ ላይ የተጫነ አነስተኛ ዳሳሽ ሳጥን በትኩረት የእንቅስቃሴ ዳሳሽ -ሰላም። ከተወሰነ ጊዜ በፊት ለጓደኛዬ በዘመናዊ የቤት ፅንሰ -ሀሳብ እየረዳሁ እና በጣሪያው ላይ ወደ 40x65 ሚሜ ጉድጓድ ውስጥ ሊገባ የሚችል ብጁ ዲዛይን ያለው አነስተኛ ዳሳሽ ሳጥን ፈጠርኩ። ይህ ሳጥን የሚከተሉትን ይረዳል - • የብርሃን ጥንካሬን መለካት • እርጥበትን መለካት
NodeMCU ን በመጠቀም የእንቅስቃሴ ዳሳሽ 5 ደረጃዎች
NodeMCU ን በመጠቀም የእንቅስቃሴ ዳሳሽ - በዚህ ፕሮጀክት ውስጥ በቀላሉ የእንቅስቃሴ ዳሳሽ በመጠቀም ማንኛውንም ሰው ወይም እንስሳ መኖሩን ማወቅ ይችላሉ። እና ነገሮችዮ ተብሎ በሚጠራው መድረክ ተገኝነት የተገኘበትን ቀን እና ሰዓት መከታተል ይችላሉ
IoT ሽቦ አልባ የሙቀት መጠን እና የእንቅስቃሴ ዳሳሽ 11 ደረጃዎች (ከስዕሎች ጋር)
IoT ሽቦ አልባ የሙቀት መጠን እና የእንቅስቃሴ ዳሳሽ - እኔ በአስተማሪዎች ውስጥ ባሉ ብዙ የ IoT ፕሮጄክቶች አነሳሳኝ ፣ ስለሆነም በመማር ሂደት ውስጥ ጠቃሚ የሆኑ አንዳንድ ጠቃሚ መተግበሪያዎችን ለማጣመር እሞክራለሁ። ከ IoT የሙቀት መጠን ዳሳሽ ጋር ለተያያዙት የቀድሞ አስተማሪዎቼ ቅጥያ ፣ እኔ አሁን
የአልትራሳውንድ ዳሳሽ እና የፉዱዲኖ የውሃ ዳሳሽ በመጠቀም የውሃ ደረጃ አርዱዲኖን የመለየት ዘዴዎች -4 ደረጃዎች
የአልትራሳውንድ ዳሳሽ እና የፉንድኖኖ የውሃ ዳሳሽ በመጠቀም የውሃ ደረጃ አርዱዲኖን የመመርመር ዘዴዎች -በዚህ ፕሮጀክት ውስጥ ሁለት ዘዴዎችን በመጠቀም እንዴት ርካሽ የውሃ መመርመሪያ እንደሚፈጥሩ አሳያችኋለሁ 1. ለአልትራሳውንድ ዳሳሽ (HC-SR04) .2. Funduino የውሃ ዳሳሽ