Getting garbage output in serial monitor while communicating with OBD using CAN interface (MCP2515) and nodemcu
Regarding your speculations:


As mentioned by @Alexander von Wernherr in his comment, there is not one CAN ID related to your car, but a number of different CAN Frames with individual CAN ID. However, the loop part of your program already takes care to read all of them and prints them out. So this is not the Problem here.
Do you see the printout Initialized successfully or Initializing is failed on your serial terminal? If not, your baudrate of 38400 is wrong. Please consult the documentation of the MCP2515 for the correct value.
The frequency you set needs to fit to the Hardware you use. In the link you shared, they are talking about using MCP_16MHZ for the MCP2515. So maybe this is the issue. Again, please check the documentation of the MCP2515.
The bitrate of the CAN interface is determined by the car manufacturer. Either you have to get this number from some documentation or you simply try the most common bitrate values , e.g. CAN_125KBPS, CAN_250KBPS, CAN_500KBPS.


Finally, if all of those are set correctly, you will see the individual bytes of each CAN frame. However, then you still need to reverse engineer yourself, which CAN frame contains what information and how is it encoded inside the data bytes.