Values of created_tmp_disk_tables increases
Created_tmp_disk_tables is an indication of poorly written queries.  Especially when Created_tmp_disk_tables/Created_tmp_tables is a high percentage.

The settings cannot necessarily prevent it.  You already have tmp_table_size and max_heap_table_size as high as the should be for 32GB of RAM.

The issue may not be a real issue -- If the tmp table is only a few rows long, you probably won't notice an issue.

The real issue is whether queries are running "too slow".  That is best judged by turning on the slowlog.

When a query is too complex, it needs to generate a tmp table.  The first choice is to make a MEMORY.  But that cannot be done if any referenced columns are TEXT or BLOB.  The second choice is MyISAM, which implies "disk tmp table", although it may stay cached in RAM and never actually touch the disk.  Another cause for it is when the MEMORY table exceeds those two max... settings, it will be converted to MyISAM.  This is unlikely in your case because of how big they are.

So, once you have discovered which queries are slow, we can discuss how to add composite indexes and/or reformulate the queries to avoid the need for disk tmp tables.  Or, at least try to speed them up.