Мазмұны:

IOT123 - I2C ЖҮРЕК КІРІШІ: 6 қадам
IOT123 - I2C ЖҮРЕК КІРІШІ: 6 қадам

Бейне: IOT123 - I2C ЖҮРЕК КІРІШІ: 6 қадам

Бейне: IOT123 - I2C ЖҮРЕК КІРІШІ: 6 қадам
Бейне: IOT123 - ICOS10: STRUCTURE 2024, Маусым
Anonim
IOT123 - I2C HEARTBATAT кірпіші
IOT123 - I2C HEARTBATAT кірпіші
IOT123 - I2C HEARTBATAT кірпіші
IOT123 - I2C HEARTBATAT кірпіші
IOT123 - I2C HEARTBATAT кірпіші
IOT123 - I2C HEARTBATAT кірпіші

IOT123 BRICKS - бұл түйінге функционалдылықты қосу немесе киюге болатын басқа IOT123 кірпіштерімен біріктіруге болатын DIY модульдік қондырғылары. Олар дюймдік шаршыға, тесіктері арқылы өзара қосылған екі жақты протоборларға негізделген.

Бұл BRICKS саны сайтта бірнеше түйіндерде болады (Master MCUs - ESP8266 немесе ATTINY84). MCU сенсорлардың мақсаты немесе бағдарламалық қамтамасыз ету қажеттілігі туралы алдын ала білуді қажет етпейді. Ол I2C түйіндерін сканерлейді, содан кейін әрбір құлдан сипаттық демпингті (сенсорлық деректерді) сұрайды. Бұл BRICKs 5.0V, 3.3V және реттелетін басқа AUX желісін береді.

Бұл I2C HEARTBEAT BRICK ATTINY құлының тірі екенін, сонымен қатар I2C трафигін көрсетеді және бір қасиетке ие:

МӘРТЕБЕСІ («ТІРІ»)

PB1 (ақ) ATTINY денсаулығын көрсетеді.

PB3 (сары) шеберден I2C сұрауларымен ауысады.

PB4 (қызғылт сары) мастерден I2C қабылдаумен ауысады.

ATTINY85-ке іргелес орналасқан тесіктер DIP8 ПХД-ге дәнекерленген кезде, пинг-пин бағдарламашысын қосу үшін пайдаланылмай қалды. D1M WIFI BLOCK хабына қосылатын, мәндерді MQTT серверіне айдайтын шағын цилиндрлерге BRICKS ораудың тағы бір абстракциясы әзірленуде.

1 -қадам: материалдар мен құралдар

Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар

Материалдар мен ресурстардың толық тізімі бар.

  1. Қағаз ПХД (7 x 7 тесік)
  2. Жарықдиодты шамдар (қызыл, жасыл, көк)
  3. Резисторлар (3K 1K)
  4. ATTINY85 20PU (1)
  5. 1 дюймдік екі жақты протободы (1)
  6. Ерлер тақырыбы 90º (3P, 3P)
  7. Ерлер тақырыбы (2P, 2P)
  8. Секіргіш шунт (1)
  9. Қосылатын сым (~ 7)
  10. Дәнекер және темір (1)

2 -қадам: ATTINY85 дайындаңыз

ATTINY85 дайындаңыз
ATTINY85 дайындаңыз
ATTINY85 дайындаңыз
ATTINY85 дайындаңыз
ATTINY85 дайындаңыз
ATTINY85 дайындаңыз
ATTINY85 дайындаңыз
ATTINY85 дайындаңыз

ЕСКЕРТПЕ: Егер Crouton интеграциясын қолданғыңыз келсе, осы жерден кітапхананы пайдаланыңыз және орнатылған «attiny_heartbeat» мысалын қолданыңыз.

Тақталар менеджерінен AttinyCore қажет. «EEPROM Retained», «8mHZ Internal» жүктеушісін жазыңыз (барлық конфигурация жоғарыда көрсетілген).

Код репозиторийін мына жерден табуға болады.

Кітапхананың индексін мына жерден табуға болады.

Мұнда «ZIP кітапханасын импорттау» бойынша нұсқаулар бар.

Кітапхана орнатылғаннан кейін «attiny_heartbeat» мысалын ашуға болады.

Микробағдарламаны ATTINY85 жүйесіне жүктеу үшін мына нұсқаулардан толығырақ біле аласыз:

www.instructables.com/id/Programming-the-….

www.instructables.com/id/How-to-Program-A…

www.instructables.com/id/Programming-the-…

www.instructables.com/id/How-to-Program-A…

www.instructables.com/id/Programming-the-…

Жалғастырмас бұрын нан тақтасы арқылы тест жасаған дұрыс.

Егер сізде ASSIMILATE SENSORS бар болса, SENSOR/MCU хост комбинациясында қосалқы мекенжайдың басқаша екеніне көз жеткізіңіз. Егер сізде MCU/түйінде тек бір релелік актер болса, барлық эстафеталық актерлер бірдей мекен -жайға ие бола алады.

3 -қадам: индикаторларды жинау

Көрсеткіштерді жинау
Көрсеткіштерді жинау
Көрсеткіштерді жинау
Көрсеткіштерді жинау
Көрсеткіштерді жинау
Көрсеткіштерді жинау

Көрсеткіштер толығымен бейімделуге арналған. Бұл жүрек соғысы ретінде көрінетін негізгі тізбектегі оқиға сигналдары. Бұл құрылыста біз жарықдиодты индикаторларды қолданамыз; сіздің құрылғы реле (иә, VCC бұзылған) немесе басқа визуалды/сигналға негізделген индикаторды қолдана алады. Резистордың мәндері олардың қалауына байланысты болады.

  1. Үстіңгі жағында RED1 (+) және BLACK1 (G) ішіне көк жарықдиодты, ал астына дәнекерлегішті салыңыз.
  2. Төменгі жағында, қорғасынды RED1 -ден бүгіңіз, ол SILVER8 -дегі мыс жастыққа тиіп, кесіңіз.
  3. Төменгі жағында дәнекерлеу үстіндегі BLACK1 қорғасын кесіңіз.
  4. Үстіңгі жағына RED2 (+) және BLACK2 (G) ішіне жасыл жарықдиодты, ал астына дәнекерлегішті салыңыз.
  5. Төменгі жағында, қорғасынды RED2 -ден бүгіңіз, ол SILVER9 -дегі мыс жастыққа тиіп, кесіңіз.
  6. Төменгі жағында дәнекерлеу үстіндегі BLACK2 қорғасын кесіңіз.
  7. Үстіңгі жағында қызыл жарықдиодты RED3 (+) және BLACK3 (G) ұяшықтарына, ал астына дәнекерлегішті салыңыз.
  8. Төменгі жағында, қорғасынды RED3 -тен бүгіңіз, ол SILVER10 -дегі мыс жастыққа тиіп, кесіңіз.
  9. Төменгі жағында дәнекерлеу үстіндегі BLACK3 қорғасын кесіңіз.
  10. Жоғарғы жағында SILVER1 және SILVER4 тесіктеріне 1K резисторды салыңыз.
  11. Төменгі жағында қорғасынды SILVER1 -ден BLACK1 -ге қарай салыңыз, кесіңіз және дәнекерлеңіз.
  12. Жоғарғы жағында SILVER2 және SILVER4 тесіктеріне 1K резисторды салыңыз.
  13. Төменгі жағында SILVER2 -ден BLACK2 -ге қорғасын ізін салыңыз, кесіңіз және дәнекерлеңіз.
  14. Жоғарғы жағында SILVER3 және SILVER4 тесіктеріне 1K резисторды салыңыз.
  15. Төменгі жағында қорғасынды SILVER3 -тен BLACK3 -ке дейін салыңыз, кесіңіз және дәнекерлеңіз.
  16. Төменгі жағында SILVER4 дәнекерлеу сымдары бар және ұзындығы шамамен 5 мм.
  17. Төменгі жағында қара сымды SILVER4 -ге дәнекерлеңіз.
  18. Төменгі жағында ақ сымды SILVER5 -ке дәнекерлеңіз, бұл RED1 -ден өткізгіштің үздіксіздігін қамтамасыз етеді.
  19. Төменгі жағында сары сымды SILVER6 -ге дәнекерлеңіз, бұл RED2 -ден өткізгіштің үздіксіздігін қамтамасыз етеді.
  20. Төменгі жағында қызғылт сары сымды SILVER7 -ге дәнекерлеңіз, бұл RED3 -тен өткізгіштің үздіксіздігін қамтамасыз етеді.

4 -қадам: Негізгі тізбекті жинау

Негізгі тізбекті жинау
Негізгі тізбекті жинау
Негізгі тізбекті жинау
Негізгі тізбекті жинау
Негізгі тізбекті жинау
Негізгі тізбекті жинау

Жинау:

  1. Алдыңғы жағына ATTINY85 (1), 3P 90deg (2) (3), 3P (4) (5) ерлердің үстіңгі бөліктерін және артқы жағына дәнекерлеуді салыңыз.
  2. Артқы жағында САРЫ 1 -ден САРЫ2 -ге дейінгі сары сымды және дәнекерлеуді қадағалаңыз.
  3. Артқы жағында ORANGE1 -ден ORANGE2 -ге дейінгі қызғылт сары сымды және дәнекерлеуді қадағалаңыз.
  4. Артқы жағында көк сымды BLUE1 -ден BLUE2 -ге дейін және дәнекерлеңіз.
  5. Артқы жағында GREEN1 -ден GREEN2 -ге дейінгі жасыл сымды және дәнекерлеуді қадағалаңыз.
  6. Артқы жағында ақ сымды WHITE1 -ден WHITE2 -ге дейін және дәнекерлеуді қадағалаңыз.
  7. Артқы жағында BLACK1 -ден BLACK2 -ге дейінгі қара сымды және дәнекерлеуді қадағалаңыз.
  8. Артқы жағында BLACK3 -тен BLACK4 -ке дейінгі қара сымды және дәнекерлеуді қадағалаңыз.
  9. Артқы жағында қызыл сымнан RED1 -ден RED2 -ге дейін және дәнекерлеңіз.
  10. Артқы жағында RED3 -тен RED4 -ке дейінгі жалаңаш сымды және дәнекерлеуді қадағалаңыз.
  11. Артқы жағында SILVER1 мен SILVER2 арасындағы жалаңаш сымды және дәнекерлеуді қадағалаңыз.
  12. 5V немесе 3V3 желісінде секіргішті қосыңыз.

Егер жоғарыдағы индикаторларды қолдансаңыз (түйін диаграммасын қараңыз):

  1. Артқы жағында ақ сымды PB1 -ге дәнекерлеңіз.
  2. Артқы жағында сары сымды PB3 -ге дәнекерлеңіз.
  3. Артқы жағында қызғылт сары сымды PB4 -ке дәнекерлеңіз.
  4. Артқы жағында қара сымды GND -ге дәнекерлеңіз.

5 -қадам: тестілеу

Сынақ
Сынақ
Сынақ
Сынақ
Сынақ
Сынақ
Сынақ
Сынақ

Бұл BRICKS саны қоршаған ортада бірнеше түйіндерде (MCU - ESP8266 немесе ATTINY84) болады деп күтілуде. Бұл бірлік сынағы: UNO -дан I2C пәрмендерін ATTINY -ге жібереді, ол Жарық диодты қосады. ATTINY ALIVE жарық диоды жанып тұрады.

Біз бұрын Arduino үшін I2C SHIELD құрдық.

Егер сіз оны тақтаға алғыңыз келсе:

  1. БҰҰ -дағы 5.0В -ты BRICK -тегі VCC -ге қосыңыз.
  2. UNO -дағы GND -ді BRICK -тегі GND -ге қосыңыз.
  3. A5 -ті UNO -да SCL -ге BRICK -ке қосыңыз.
  4. A4 -ті БҰҰ -дағы SDA -ға BRICK -те қосыңыз.
  5. SDA-дан VCC-ге 4K7 тартылатын резисторды қосыңыз.
  6. SCL-ден VCC-ге 4K7 тартылатын резисторды қосыңыз.

Сынақтан өту

  1. БҰҰ -ды USB көмегімен Dev компьютеріне қосыңыз.
  2. БҰҰ -ға кодты жүктеңіз.
  3. Arduino консолін ашыңыз.
  4. 9600 baud таңдаңыз (БҰҰ -ны қайта іске қосыңыз және қажет болса консольді қайта ашыңыз).
  5. Құлдың мекенжайы консольге басып шығарылады.
  6. Қашан жіберу жолағына 2 1 енгізіңіз (осылайша 16 2 1), ал Қабылдау диодты шамы қосылады.
  7. Қашан жіберу жолағына 2 0 енгізіңіз (осылайша 16 2 0), ал Қабылдау диоды өшеді.

I2C BRICK БҰҰ шеберінің құлдарға арналған арнайы командалары

#қосу
const байт _num_chars = 32;
char _received_chars [_num_chars]; // алынған мәліметтерді сақтауға арналған массив
логикалық _has_new_data = жалған;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println («IOT ACTOR/SENSOR EEPROM EDITOR РЕДАКТОРЫН ҚҰРУ»);
Serial.println («консоль терезесінде жаңа жолды таңдауды қамтамасыз ету»);
Serial.println ();
Serial.println («АДРЕС 1 METADATA ҚАБЫЛДАУЫН ЖОҚ (M2M үшін) РАҚСАТТАҢЫЗ»);
Serial.println («АДРЕС 2 АКТОР ПАРДАМЕНТІ»);
Serial.println ();
Serial.println («АВТОБУСТАРДАҒЫ АДРЕСТЕР:»);
scan_i2c_addresses ();
Serial.println ();
Serial.println («»);
}
voidscan_i2c_addresses () {
int device_count = 0;
үшін (байт адрес = 8; адрес <127; адрес ++)
{
Wire.beginTransmission (мекенжай);
const байт қателігі = Wire.endTransmission ();
егер (қате == 0)
{
Serial.println (мекен -жайы);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
статикалық байт ndx = 0;
char end_marker = '\ n';
char rc;
while (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read ();
егер (rc! = end_marker) {
_received_chars [ndx] = rc;
ndx ++;
егер (ndx> = _num_chars) {
ndx = _нөмір_шарлар - 1;
}
}
басқа {
_received_chars [ndx] = '\ 0'; // жолды тоқтатыңыз
ndx = 0;
_has_new_data = ақиқат;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const Жол қабылданды_жол = Жол (_қабылданған_шарлар);
егер (_has_new_data == ақиқат) {
int idx1 = алынды_string.indexOf ('');
Жол мекенжайы = алынды_string.substring (0, idx1);
int address_int = address.toInt ();
if (address_int <8 || address_int> 127) {
Serial.println («ADRESS INPUT INVALID:»);
Serial.println (мекен -жайы);
қайтару;
}
int idx2 = алынды_string.indexOf ('', idx1+1);
Жол коды;
егер (idx2 == -1) {
код = алынған_стринг.substring (idx1+1);
} басқа {
код = алынған_стринг.substring (idx1+1, idx2+1);
}
int code_int = code.toInt ();
if (code_int <0 || code_int> 5) {
Serial.println («КОД КІРІСІ ЖАҚСЫ:»);
Serial.println (код);
қайтару;
}
bool has_parameter = idx2> -1;
Жол параметрі;
if (has_parameter) {
параметр = алынды_string.substring (idx2 + 1, idx2 + 17); // максимум 16 таңба
if (paramet.length () <1) {
Serial.println («PARTAMETER MIN. LENGTH 1»);
_has_new_data = жалған;
қайтару;
}
} басқа {
егер (code_int> 1) {
Serial.println («ПАРАМЕТР КЕРЕК!»);
_has_new_data = жалған;
қайтару;
}
}
Serial.println ();
Serial.print («кіріс ориг =»);
Serial.println (алынған_жол);
Serial.print («мекен -жай =»);
Serial.println (мекен -жайы);
Serial.print («код =»);
Serial.println (код);
Serial.print («параметр =»);
Serial.println (параметр);
// I2C арқылы жіберу
Wire.beginTrmission (address_int);
Wire.write (code_int);
if (has_parameter) {
parameter.trim ();
strcpy (param_buf, parameter.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Serial.println ();
Serial.println («ЖІБЕРІЛДІ I2C!»);
Serial.println ();
Serial.println («»);
_has_new_data = жалған;
}
}

rawuno_i2c_command_input.ino -ды GitHub ❤ арқылы орналастыруды қараңыз

6 -қадам: Келесі қадамдар

Келесі қадамдар
Келесі қадамдар
Келесі қадамдар
Келесі қадамдар

Бұл кірпішті қолданатын ASSIMILATE ACTOR: HEARTBEAT келесі ATTINY85-те орнатылған метадеректер арқылы Crouton үшін автоматты конфигурацияға ие. Crouton -ға жіберілген JSON пакеті ICOS10 үшін соңғы микробағдарлама арқылы жіберіледі. Егер конструкция қазір тым көп болса, сіз қарапайым ESP8266-де тұжырымдаманы дәлелдей аласыз.

Тестілеуде қолданылатын UNO эскизінде ATTINY85 -те EEPROM жаңа құл мекенжайын сақтау функциясы бар, егер сіздің мақсатты I2C шинаңызда қақтығыс болса.

Ұсынылған: