
Orodha ya maudhui:
- Hatua ya 1: Rasilimali Zilizotumiwa
- Hatua ya 2: CAN (Mtandao wa Eneo la Mdhibiti)
- Hatua ya 3: CAN - Vipengele
- Hatua ya 4: Mzunguko Umetumika
- Hatua ya 5: Voltages za Usafirishaji (Kugundua Tofauti)
- Hatua ya 6: Fomu ya Viwango na Muafaka ya CAN
- Hatua ya 7: Fomu ya Viwango na Muafaka ya CAN
- Hatua ya 8: Fomu ya Viwango na Muafaka ya CAN
- Hatua ya 9: Aina nne za fremu (fremu)
- Hatua ya 10: Mzunguko - Maelezo ya Uunganisho
- Hatua ya 11: Mzunguko - Kukamata Takwimu
- Hatua ya 12: Mzunguko - Kukamata Takwimu
- Hatua ya 13: Mzunguko - Kukamata Takwimu
- Hatua ya 14: Maktaba ya Arduino - CAN
- Hatua ya 15: Github
- Hatua ya 16: Msimbo wa Chanzo cha Kusambaza
- Hatua ya 17: Nambari ya Chanzo: Kitanzi (), Kutuma Pakiti ya kawaida ya CAN 2.0
- Hatua ya 18: Nambari ya Chanzo: Kitanzi (), Kutuma Kifurushi cha CAN 2.0 Iliyoongezwa
- Hatua ya 19: Nambari ya Chanzo cha Mpokeaji
- Hatua ya 20: Nambari ya Chanzo: Kitanzi (), Kupata Kifurushi na Kuangalia Umbizo
- Hatua ya 21: Chanzo: Kitanzi (), huangalia ikiwa ni Kifurushi cha mbali
- Hatua ya 22: Nambari ya Chanzo: Kitanzi (), Urefu wa Takwimu Uliombwa au Kupokelewa
- Hatua ya 23: Nambari ya Chanzo: Kitanzi (), Ikiwa Data Inapokelewa, Inachapishwa
- Hatua ya 24: Pakua faili
2025 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2025-01-23 15:11



Mada nyingine iliyopendekezwa hivi karibuni na wafuasi wa kituo changu cha YouTube ilikuwa itifaki ya CAN (Mdhibiti wa Mtandao), ambayo ndio tutazingatia leo. Ni muhimu kuelezea kuwa CAN ni itifaki ya mawasiliano ya serial inayofanana. Hii inamaanisha maingiliano kati ya moduli zilizounganishwa kwenye mtandao hufanywa kuhusiana na mwanzo wa kila ujumbe uliotumwa kwa basi. Tutaanza kwa kuanzisha dhana za kimsingi za itifaki ya CAN na kufanya mkutano rahisi na ESP32 mbili.
Katika mzunguko wetu, ESP zinaweza kutenda kama Mwalimu na Mtumwa. Unaweza kuwa na wadhibiti anuwai wengi wakipitisha wakati huo huo, kwa sababu CAN inaweza kushughulikia mgongano wa kila kitu kiatomati. Nambari ya chanzo ya mradi huu ni rahisi sana. Angalia!
Hatua ya 1: Rasilimali Zilizotumiwa
- Moduli mbili za ESP WROOM 32 NodeMcu
- Transceivers mbili za CAN kutoka WaveShare
- Kuruka kwa unganisho
- Mchambuzi wa kimantiki wa kukamata
- Kamba tatu za USB za ESPs na analyzer
- Mita 10 za jozi zilizopotoka kutumika kama basi
Hatua ya 2: CAN (Mtandao wa Eneo la Mdhibiti)

- Iliundwa na Robert Bosch GmbH miaka ya 1980 kutumikia tasnia ya magari.
- Imeenea kwa miaka mingi kutokana na uthabiti wake na kubadilika kwa utekelezaji. Inatumiwa na vifaa vya kijeshi, mashine za kilimo, mitambo ya viwanda na ujenzi, roboti, na vifaa vya matibabu.
Hatua ya 3: CAN - Vipengele


- Mawasiliano ya serial waya mbili
- Upeo wa ka 8 za habari muhimu kwa kila fremu, na kugawanyika kunawezekana
- Anwani iliyoelekezwa kwa ujumbe na sio kwa nodi
- Kupeana kipaumbele kwa ujumbe na kupeleka tena ujumbe wa "subiri"
- Uwezo mzuri wa kugundua na kuashiria makosa
- Uwezo wa bwana-anuwai (nodi zote zinaweza kuomba ufikiaji wa basi)
- Uwezo wa multicast (ujumbe mmoja kwa wapokeaji wengi kwa wakati mmoja)
- Viwango vya kuhamisha hadi 1Mbit / s kwenye basi ya mita 40 (kupunguzwa kwa kiwango na ongezeko la urefu wa busbar)
- Kubadilika kwa usanidi na kuanzishwa kwa nodi mpya (hadi nodi 120 kwa kila basi)
- Vifaa vya kawaida, gharama nafuu, na upatikanaji mzuri
- Itifaki iliyodhibitiwa: ISO 11898
Hatua ya 4: Mzunguko Umetumika

Hapa, nina Transceivers. Kuna moja kwa kila upande, na wameunganishwa na jozi ya waya. Moja ni jukumu la kutuma na nyingine kupokea data.
Hatua ya 5: Voltages za Usafirishaji (Kugundua Tofauti)

Katika CAN, kubwa zaidi ni Zero.
Utambuzi wa Tofauti ya Mstari Hupunguza Usikivu wa Kelele (EFI)
Hatua ya 6: Fomu ya Viwango na Muafaka ya CAN

Muundo wa kawaida na kitambulisho cha 11-bit
Hatua ya 7: Fomu ya Viwango na Muafaka ya CAN

Muundo uliopanuliwa na kitambulisho cha 29-bit
Hatua ya 8: Fomu ya Viwango na Muafaka ya CAN
Ni muhimu kutambua kwamba itifaki tayari inahesabu CRC na hutuma ishara za ACK na EOF, ambazo ni vitu ambavyo tayari vinafanywa na itifaki ya CAN. Hii inahakikishia kuwa ujumbe uliotumwa hautafika kwa njia isiyofaa. Hii ni kwa sababu ikiwa inatoa shida katika CRC (Redundant Cyclic Check au Redundancy Check), ambayo ni sawa na nambari ya kukagua habari, itajulikana na CRC.
Hatua ya 9: Aina nne za fremu (fremu)

Ni muhimu kutambua kwamba itifaki tayari inahesabu CRC na hutuma ishara za ACK na EOF, ambazo ni vitu ambavyo tayari vinafanywa na itifaki ya CAN. Hii inahakikishia kuwa ujumbe uliotumwa hautafika kwa njia isiyofaa. Hii ni kwa sababu ikiwa inatoa shida katika CRC (Redundant Cyclic Check au Redundancy Check), ambayo ni sawa na nambari ya kukagua habari, itajulikana na CRC.
Aina nne za muafaka (muafaka)
Uhamisho na upokeaji wa data katika CAN unategemea aina nne za muafaka. Aina za fremu zitatambuliwa na tofauti katika vipande vya kudhibiti au hata kwa mabadiliko katika sheria za uandishi wa fremu kwa kila kesi.
- Sura ya Takwimu: Inayo data ya kusambaza ya mpokeaji
- Fremu ya mbali: Hili ni ombi la data kutoka kwa moja ya nodi
- Sura ya Hitilafu: Ni fremu iliyotumwa na nodi yoyote wakati wa kugundua hitilafu kwenye basi na inaweza kugunduliwa na nodi zote
- Sura ya Kupakia: Inatumika kuchelewesha trafiki kwenye basi kwa sababu ya kupakia data au kuchelewesha kwenye nodi moja au zaidi.
Hatua ya 10: Mzunguko - Maelezo ya Uunganisho

Hatua ya 11: Mzunguko - Kukamata Takwimu

Mawimbi yaliyopatikana kwa CAN ya kawaida na kitambulisho cha 11-bit
Hatua ya 12: Mzunguko - Kukamata Takwimu

Wavelengths zilizopatikana kwa CAN iliyopanuliwa na ID ya 29-bit
Hatua ya 13: Mzunguko - Kukamata Takwimu

Takwimu zilizopatikana na analyzer ya mantiki
Hatua ya 14: Maktaba ya Arduino - CAN

Ninaonyesha hapa chaguzi mbili ambapo unaweza kusanikisha Maktaba ya Dereva ya CAN
Meneja wa Maktaba ya Arduino IDE
Hatua ya 15: Github

github.com/sandeepmistry/arduino-CAN
Hatua ya 16: Msimbo wa Chanzo cha Kusambaza
Nambari ya Chanzo: Inajumuisha na Kuweka ()
Tutajumuisha maktaba ya CAN, anza mfululizo wa utatuzi, na uanze basi la CAN kwa 500 kbps.
# pamoja na // Inclui biblioteca INAWEZA kubatilisha usanidi () {Serial.begin (9600); // inicia serial kwa utatuzi wakati (! Serial); Serial.println ("Transmissor CAN"); // Inicia o barramento UNAWEZA kukopa 500 ikiwa (! CAN.begin (500E3)) {Serial.println ("Falha ao iniciar o controlador CAN"); // caso não seja possível iniciar o controlador wakati (1); }}
Hatua ya 17: Nambari ya Chanzo: Kitanzi (), Kutuma Pakiti ya kawaida ya CAN 2.0
Kutumia kiwango cha CAN 2.0, tunatuma kifurushi. Kitambulisho cha 11-bit kinatambulisha ujumbe. Kizuizi cha data lazima iwe na hadi 8 ka. Inaanza pakiti na ID 18 kwa hexadecimal. Inachukua kaiti 5 na inafunga kazi.
kitanzi cha utupu … "); Anza. Packet (0x12); // id 18 em hexadecimal CAN. andika ('h'); // 1 byte CAN.write ('e'); // 2º byte CAN. Andika ('l'); // 3º byte CAN.write ('l'); // 4º byte CAN. Andika ('o'); // 5º byte CAN.endPacket (); // encerra o pacote para envio Serial.println ("Enviado."); kuchelewesha (1000);
Hatua ya 18: Nambari ya Chanzo: Kitanzi (), Kutuma Kifurushi cha CAN 2.0 Iliyoongezwa
Katika hatua hii, kitambulisho kina bits 29. Inaanza kutuma bits 24 za kitambulisho na, kwa mara nyingine tena, ina pakiti 5 na huacha.
// Usando CAN 2.0 Estendido // Envia um pacote: o id 29 bits and identifica a mensagem (preidade, evento) // o bloco de dados deve possuir atte 8 by Serial Serial.println ("Enviando pacote estendido…"); ANGANZA KuongezaPacket (0xabcdef); // id 11259375 decimal (abcdef em hexa) = 24 bits preenchidos até aqui CAN.write ('w'); // 1 byte CAN. Andika ('o'); // 2º byte CAN.write ('r'); // 3º byte CAN.write ('l'); // 4º byte CAN.write ('d'); // 5º byte CAN.endPacket (); // encerra o pacote para envio Serial.println ("Enviado."); kuchelewesha (1000); }
Hatua ya 19: Nambari ya Chanzo cha Mpokeaji
Nambari ya Chanzo: Inajumuisha na Kuweka ()
Tena, tutajumuisha maktaba ya CAN, anza mfululizo wa utatuzi, na uanze basi la CAN kwa 500 kbps. Ikiwa kosa linatokea, kosa hili litachapishwa.
# pamoja na // Inclui biblioteca INAWEZA kubatilisha usanidi () {Serial.begin (9600); // inicia serial kwa utatuzi wakati (! Serial); Serial.println ("Mpokeaji ANAWEZA"); // Inicia o barramento UNAWEZA kukopa 500 ikiwa (! CAN.begin (500E3)) {Serial.println ("Falha ao iniciar o controlador CAN"); // caso não seja possível iniciar o controlador wakati (1); }}
Hatua ya 20: Nambari ya Chanzo: Kitanzi (), Kupata Kifurushi na Kuangalia Umbizo
Tulijaribu kuangalia saizi ya pakiti iliyopokelewa. Njia ya CAN.parsePacket () inanionesha ukubwa wa kifurushi hiki. Kwa hivyo ikiwa tuna kifurushi, tutaangalia ikiwa imepanuliwa au la.
kitanzi batili () {// Tenta verificar o tamanho do acote recebido int packetSize = CAN.parsePacket (); ikiwa (packetSize) {// Se temos um pacote Serial.println ("Recebido pacote."); ikiwa (CAN.packetExtended ()) {// verifica se o pacote is estendido Serial.println ("Estendido"); }
Hatua ya 21: Chanzo: Kitanzi (), huangalia ikiwa ni Kifurushi cha mbali
Hapa, tunaangalia ikiwa pakiti iliyopokea ni ombi la data. Katika kesi hii, hakuna data.
ikiwa (CAN.packetRtr ()) {// Verifica se o pacote é um pacote remoto (Requisição de dados), inajulikana kama serial Serial.print ("RTR"); }
Hatua ya 22: Nambari ya Chanzo: Kitanzi (), Urefu wa Takwimu Uliombwa au Kupokelewa
Ikiwa pakiti iliyopokelewa ni ombi, tunaonyesha urefu ulioombwa. Kisha tunapata Msimbo wa Urefu wa Takwimu (DLC), ambayo inaonyesha urefu wa data. Mwishowe, tunaonyesha urefu uliopokelewa.
Serial.print ("Pacote com id 0x"); Serial.print (CAN.packetId (), HEX); ikiwa (CAN.packetRtr ()) {// se o pacote recebido é de requisição, indicamos o comprimento solicitado Serial.print ("e reus to you comprimento"); Serial.println (CAN.packetDlc ()); // obtem o DLC (Msimbo wa Urefu wa Takwimu, ikiwa ni pamoja na kanuni za baba)} mwingine {Serial.print ("e comprimento"); // aqui somente indica o comprimento recebido Serial.println (packetSize);
Hatua ya 23: Nambari ya Chanzo: Kitanzi (), Ikiwa Data Inapokelewa, Inachapishwa
Tunachapisha (kwenye mfuatiliaji wa serial) data, lakini ikiwa tu pakiti iliyopokea sio ombi.
// Imprime os dados somente se o pacote recebido não foi de requisição while (CAN.available ()) {Serial.print ((char) CAN.read ()); } Serial.println (); } Serial.println (); }}
Hatua ya 24: Pakua faili
INO
Ilipendekeza:
RC5 Kidhibiti cha Itifaki ya Kudhibiti Kijijini Bila Maktaba: Hatua 4

RC5 Remoder Itifaki ya Udhibiti wa Kijijini Bila Maktaba: kabla ya kusimbua rc5 kwanza tunajadili ni nini amri ya rc5 na muundo wake ni nini. kwa hivyo kimsingi amri ya rc5 inayotumiwa katika vidhibiti vya mbali ambavyo hutumiwa kwenye runinga, vicheza cd, d2h, mifumo ya ukumbi wa nyumbani nk ina vifungu 13 au 14 vilivyopangwa katika
Saa ya Mtandaoni: Tarehe ya Kuonyesha na Wakati na OLED Kutumia ESP8266 NodeMCU Na Itifaki ya NTP: Hatua 6

Saa ya Mtandaoni: Tarehe ya Kuonyesha na Wakati na OLED Kutumia ESP8266 NodeMCU Pamoja na Itifaki ya NTP: Halo jamani katika maagizo haya tutaunda saa ya mtandao ambayo itapata wakati kutoka kwa mtandao ili mradi huu hautahitaji RTC yoyote kuendesha, itahitaji tu kufanya kazi unganisho la mtandao Na kwa mradi huu unahitaji esp8266 ambayo itakuwa na
Uonyesho wa Nextion - Maingiliano na Itifaki Imeelezewa na PIC na Arduino: Hatua 10

Uonyesho wa Nextion | Maingiliano na Itifaki Imeelezewa na PIC na Arduino: Onyesho la Nextion ni rahisi sana kutumia na kiolesura rahisi na mdhibiti mdogo. Kwa msaada wa mhariri wa Nextion tunaweza kusanidi onyesho na tunaweza kubuni UI kwenye onyesho. Kwa hivyo kulingana na hafla au amri Maonyesho ya Nextion. itachukua hatua juu ya kuonyesha
Bodi ya Arifa ya Dijiti Kutumia Raspberry Pi na Itifaki ya MQTT: Hatua 8

Bodi ya Arifa ya Dijiti Kutumia Itifaki ya Raspberry Pi na MQTT: Bodi za Ilani zinatumika karibu kila mahali, kama ofisi, shule, hospitali, na hoteli. Wanaweza kutumiwa tena na tena kuonyesha matangazo muhimu au kutangaza hafla zinazokuja au mikutano. Lakini ilani au matangazo hayana budi kuwa mahiri
Kuelewa Itifaki ya IR ya Maoni ya Kondaktaji wa Hewa: Hatua 9 (na Picha)

Kuelewa Itifaki ya IR ya Maoni ya Kondaktaji wa Hewa: Nimekuwa nikijifunza juu ya itifaki za IR kwa muda mrefu sasa. Jinsi ya kutuma na kupokea ishara za IR. Kwa wakati huu, kitu pekee kilichobaki ni itifaki ya IR ya vifaa vya mbali vya AC