विषयसूची:

IOT123 - I2C ब्रिक मास्टर जिग: 4 कदम
IOT123 - I2C ब्रिक मास्टर जिग: 4 कदम

वीडियो: IOT123 - I2C ब्रिक मास्टर जिग: 4 कदम

वीडियो: IOT123 - I2C ब्रिक मास्टर जिग: 4 कदम
वीडियो: Save Water || Emotional Video || #shorts 2024, जुलाई
Anonim
IOT123 - I2C ब्रिक मास्टर जिग
IOT123 - I2C ब्रिक मास्टर जिग
IOT123 - I2C ब्रिक मास्टर जिग
IOT123 - I2C ब्रिक मास्टर जिग
IOT123 - I2C ब्रिक मास्टर जिग
IOT123 - I2C ब्रिक मास्टर जिग

ASSIMILATE SENSORS और ACTORS विकसित करते समय, मैं विकसित किए जा रहे प्रोटोटाइप के लिए तदर्थ I2C कमांड भेजने के लिए UNO को संभाल कर रखता हूं। I2C BRICKS के लाभों में से एक मानकीकृत पिनआउट है। हर बार ब्रेडबोर्ड तारों का उपयोग करने के बजाय (फ्रिट्ज़िंग देखें), एक मजबूत लो-टेक शील्ड का उपयोग किया जाता है।

चरण 1: सामग्री और उपकरण

सामग्री और उपकरण
सामग्री और उपकरण
सामग्री और उपकरण
सामग्री और उपकरण
सामग्री और उपकरण
सामग्री और उपकरण
सामग्री और उपकरण
सामग्री और उपकरण
  1. 4cm x 6cm Uninersal PCB (1)
  2. हुकअप तार (~ 6)
  3. 4K7 प्रतिरोधक (2)6
  4. पुरुष हैडर (12पी, 8पी)
  5. महिला हैडर (9P, या 3P, 3P)
  6. सोल्डर और आयरन (1)

चरण 2: विधानसभा

सभा
सभा
सभा
सभा
सभा
सभा

यदि आप 1 ऑफ 9पी महिला हेडर के बजाय 2 ऑफ 3पी फीमेल हेडर का उपयोग करते हैं, तो एसिमिलेट सेंसर/एक्टर्स जेआईजी पर बिना जुदा किए फिट हो जाएंगे।

तारों के साथ, सिरों पर 10 मिमी तक पट्टी करें और बहुत सिरों को टिन करें।

  1. पीसीबी के नीचे, पुरुष हेडर (1) (2) डालें और ऊपर से सोल्डर बंद करें।
  2. पीसीबी के शीर्ष पर, महिला हेडर (3) डालें और नीचे की तरफ मिलाप करें।
  3. शीर्ष पर, RED1 और RED2 में एक लाल तार के माध्यम से छेद।
  4. तल पर, RED1 से RED3 में थ्रू-होल वायर।
  5. तल पर, RED2 से RED5 में थ्रू-होल तार, और मिलाप।
  6. शीर्ष पर, RED3 से RED4 और सोल्डर में थ्रू-होल तार।
  7. शीर्ष पर, RED6 और RED7 में एक लाल तार के माध्यम से छेद करें।
  8. तल पर, RED6 से RED8 में थ्रू-होल तार।
  9. तल पर, RED7 से RED10 में थ्रू-होल तार, और मिलाप।
  10. शीर्ष पर, RED8 से RED9 में थ्रू-होल तार, और मिलाप।
  11. शीर्ष पर, ब्लैक वायर को BLACK1 और BLACK2 में थ्रू-होल करें।
  12. तल पर, BLACK1 से BLACK3 में थ्रू-होल तार।
  13. तल पर, BLACK2 से BLACK5 में थ्रू-होल तार, और मिलाप।
  14. शीर्ष पर, BLACK3 से BLACK4 और सोल्डर में थ्रू-होल तार।
  15. शीर्ष पर, एक नीले तार को BLUE1 और BLUE2 में थ्रू-होल करें।
  16. तल पर, थ्रू-होल वायर BLUE1 से BLUE3 में।
  17. तल पर, BLUE2 से BLUE5 में थ्रू-होल तार, और मिलाप।
  18. शीर्ष पर, BLUE3 से BLUE4 और सोल्डर में थ्रू-होल तार।
  19. शीर्ष पर, हरे रंग के तार को GREEN1 और GREEN2 में छेद करें।
  20. तल पर, GREEN1 से GREEN3 में थ्रू-होल वायर।
  21. तल पर, GREEN2 से GREEN5, और सोल्डर में थ्रू-होल तार।
  22. शीर्ष पर, GREEN3 से GREEN4 और सोल्डर में थ्रू-होल तार।
  23. शीर्ष पर, SILVER3 और SILVER4 में एक 4K7 रोकनेवाला थ्रू-होल।
  24. तल पर, SILVER3 से GREEN5, और सोल्डर में थ्रू-होल तार।
  25. तल पर, SILVER4 से RED10 में थ्रू-होल तार, और मिलाप।
  26. शीर्ष पर, SILVER1 और SILVER2 में एक 4K7 रोकनेवाला थ्रू-होल।
  27. तल पर, SILVER1 से BLUE5 में थ्रू-होल तार, और मिलाप।
  28. तल पर, SILVER2 से RED10 में थ्रू-होल तार, और मिलाप।

चरण 3: यूएनओ के लिए कोड

यूएनओ के लिए कोड
यूएनओ के लिए कोड

यहां का स्केच अल्पविकसित है। यह आपको कंसोल इनपुट का उपयोग करने की अनुमति देता है, ताकि यूएनओ I2C संदेशों को I2C ATTINY85 BRICK पर भेज सके।

समर्थित विकल्पों के साथ सभी निर्देश स्क्रीन पर मुद्रित होते हैं।

I2C ब्रिक एडहॉक यूएनओ मास्टर से दासों के लिए आदेश देता है।

#शामिल
कॉन्स्ट बाइट _num_chars = 32;
चार _received_chars[_num_chars]; // प्राप्त डेटा को संग्रहीत करने के लिए एक सरणी
बूलियन _has_new_data = झूठा;
व्यर्थ व्यवस्था() {
सीरियल.बेगिन (९६००);
सीरियल.प्रिंट्लन ();
Serial.println ("IOT अभिनेता / सेंसर EEPROM संपादक को आत्मसात करें");
Serial.println ("कंसोल विंडो में चयनित न्यूलाइन सुनिश्चित करें");
सीरियल.प्रिंट्लन ();
Serial.println ("पता 1 मेटाडेटा रसीद की पुष्टि करें N/A (M2M के लिए)");
Serial.println ("पता 2 अभिनेता कमांड");
सीरियल.प्रिंट्लन ();
Serial.println ("बस में पता:");
स्कैन_i2c_addresses ();
सीरियल.प्रिंट्लन ();
सीरियल.प्रिंट्लन ("");
}
voidscan_i2c_addresses(){
इंट डिवाइस_काउंट = 0;
के लिए (बाइट पता = 8; पता <127; पता ++)
{
Wire.beginTransmission (पता);
कॉन्स्ट बाइट त्रुटि = Wire.endTransmission ();
अगर (त्रुटि == 0)
{
Serial.println (पता);
}
}
}
शून्य लूप () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker() {
स्थिर बाइट एनडीएक्स = 0;
चार एंड_मार्कर = '\ n';
चार आर सी;
जबकि (सीरियल.उपलब्ध ()>0 && _has_new_data == असत्य) {
आरसी = सीरियल.रीड ();
अगर (आरसी! = एंड_मार्कर) {
_received_chars [ndx] = आरसी;
एनडीएक्स++;
अगर (एनडीएक्स>= _num_chars) {
एनडीएक्स = _num_chars - 1;
}
}
अन्यथा {
_received_chars[ndx] = '\0'; // स्ट्रिंग को समाप्त करें
एनडीएक्स = 0;
_has_new_data = सच;
}
}
}
voidsend_to_i2c() {
चार परम_बफ [16];
कॉन्स्ट स्ट्रिंग प्राप्त_स्ट्रिंग = स्ट्रिंग (_received_chars);
अगर (_has_new_data == सच) {
int idx1 = get_string.indexOf ('');
स्ट्रिंग पता = प्राप्त_स्ट्रिंग। सबस्ट्रिंग (0, idx1);
int address_int = address.toInt ();
अगर (address_int <8 || address_int >127){
Serial.println ("अमान्य पता इनपुट:");
Serial.println (पता);
वापसी;
}
int idx2 = get_string.indexOf ('', idx1+1);
स्ट्रिंग कोड;
अगर (idx2 == -1) {
कोड = प्राप्त_स्ट्रिंग। सबस्ट्रिंग (idx1 + 1);
}अन्यथा{
कोड = प्राप्त_स्ट्रिंग। सबस्ट्रिंग (idx1+1, idx2+1);
}
int code_int = code.toInt ();
अगर (code_int <0 || code_int >5){
Serial.println ("अमान्य कोड इनपुट:");
Serial.println (कोड);
वापसी;
}
बूल has_parameter = idx2 > -1;
स्ट्रिंग पैरामीटर;
अगर (है_पैरामीटर) {
पैरामीटर = प्राप्त_स्ट्रिंग। सबस्ट्रिंग (idx2 + 1, idx2 + 17); // 16 वर्ण अधिकतम
अगर (पैरामीटर। लंबाई () <1) {
Serial.println ("पार्टमेटर मिन। लंबाई 1");
_has_new_data = झूठा;
वापसी;
}
}अन्यथा{
अगर (कोड_इंट> 1) {
Serial.println ("पैरामीटर आवश्यक!");
_has_new_data = झूठा;
वापसी;
}
}
सीरियल.प्रिंट्लन ();
सीरियल.प्रिंट ("इनपुट मूल =");
Serial.println (प्राप्त_स्ट्रिंग);
सीरियल.प्रिंट ("पता =");
Serial.println (पता);
सीरियल.प्रिंट ("कोड =");
Serial.println (कोड);
सीरियल.प्रिंट ("पैरामीटर =");
Serial.println (पैरामीटर);
// I2C के माध्यम से भेजें
Wire.beginTransmission (address_int);
वायर.राइट (कोड_इंट);
अगर (है_पैरामीटर) {
पैरामीटर। ट्रिम ();
strcpy (param_buf, पैरामीटर.c_str ());
वायर.राइट (param_buf);
}
वायर.एंडट्रांसमिशन ();
सीरियल.प्रिंट्लन ();
Serial.println ("I2C के माध्यम से भेजा गया!");
सीरियल.प्रिंट्लन ();
सीरियल.प्रिंट्लन ("");
_has_new_data = झूठा;
}
}

देखें rawuno_i2c_command_input.ino ❤ के साथ GitHub द्वारा होस्ट किया गया

चरण 4: अगले चरण

प्रस्तुत किए गए बिल्ड से, आपके लिए अपना स्वयं का ASSIMILATE IOT नेटवर्क बनाने के लिए पर्याप्त मूविंग पार्ट्स हैं।

नोड्स (सेंसर और अभिनेता) के प्रत्येक व्यक्तिगत कार्य विकेन्द्रीकृत तरीके से नियंत्रित होते हैं, समर्थित सुविधाओं के किसी भी ज्ञान के लिए एमसीयू मास्टर पर निर्भर नहीं होते हैं।

एमक्यूटीटी ब्रोकर से जुड़ने वाला कोई भी ऐप आईओटी नोड की हर सुविधा को नियंत्रित/निरीक्षण कर सकता है। वह है M2M, वेब एप्लिकेशन, IFTTT वगैरह। आपकी IOT दुनिया के लिए बहुत सरल (या यदि आप चाहें तो अधिक समृद्ध) इंटरफेस।

सिफारिश की: